Is there a reason to interpret the DSL for this run? with specific setting for some environment there is no reason the dsl should be interpreted (e.g. no validations and doc from cache)
# File lib/apipie/application.rb, line 212 def active_dsl? Apipie.configuration.validate? || ! Apipie.configuration.use_cache? || Apipie.configuration.force_dsl? end
# File lib/apipie/application.rb, line 54 def add_example(example) @last_examples << example.strip_heredoc end
# File lib/apipie/application.rb, line 50 def add_method_description_args(method, path, desc) @last_api_args << MethodDescription::Api.new(method, path, desc) end
# File lib/apipie/application.rb, line 198 def api_controllers_paths Dir[Apipie.configuration.api_controllers_matcher] end
check if there is some saved description
# File lib/apipie/application.rb, line 59 def apipie_provided? true unless last_api_args.blank? end
Clear all apis in this application.
# File lib/apipie/application.rb, line 99 def clear @resource_descriptions.clear @method_descriptions.clear end
clear all saved data
# File lib/apipie/application.rb, line 105 def clear_last @last_api_args = [] @last_errors = [] @last_params = [] @last_description = nil @last_examples = [] @last_see = nil @last_formats = [] end
create new method api description
# File lib/apipie/application.rb, line 26 def define_method_description(controller, method_name) # create new or get existing api resource_name = get_resource_name(controller) key = [resource_name, method_name].join('#') # add method description key to resource description resource = define_resource_description(controller) method_description = Apipie::MethodDescription.new(method_name, resource, self) @method_descriptions[key] ||= method_description @method_descriptions[key] end
create new resource api description
# File lib/apipie/application.rb, line 41 def define_resource_description(controller, &block) resource_name = get_resource_name(controller) # puts "defining api for #{resource_name}" @resource_descriptions[resource_name] ||= Apipie::ResourceDescription.new(controller, resource_name, &block) end
# File lib/apipie/application.rb, line 128 def get_api_args api_args = @last_api_args.clone @last_api_args.clear api_args end
Return the current description, clearing it in the process.
# File lib/apipie/application.rb, line 116 def get_description desc = @last_description @last_description = nil desc end
# File lib/apipie/application.rb, line 122 def get_errors errors = @last_errors.clone @last_errors.clear errors end
# File lib/apipie/application.rb, line 152 def get_examples examples = @last_examples.clone @last_examples.clear examples end
# File lib/apipie/application.rb, line 140 def get_formats formats = @last_formats @last_formats = nil formats end
get api for given method
There are two ways how this method can be used: 1) Specify both parameters
resource_name: controller class or string with resource name (plural) method_name: name of the method (string or symbol)
2) Specify only first parameter:
resource_name: string containing both resource and method name joined with # (eg. "users#create")
# File lib/apipie/application.rb, line 72 def get_method_description(resource_name, method_name = nil) resource_name = get_resource_name(resource_name) key = method_name.blank? ? resource_name : [resource_name, method_name].join('#') @method_descriptions[key] end
# File lib/apipie/application.rb, line 146 def get_params params = @last_params.clone @last_params.clear params end
get api for given resource
# File lib/apipie/application.rb, line 80 def get_resource_description(resource_name) resource_name = get_resource_name(resource_name) @resource_descriptions[resource_name] end
# File lib/apipie/application.rb, line 134 def get_see see = @last_see @last_see = nil see end
# File lib/apipie/application.rb, line 158 def recorded_examples return @recorded_examples if @recorded_examples tape_file = File.join(Rails.root,"doc","apipie_examples.yml") if File.exists?(tape_file) @recorded_examples = YAML.load_file(tape_file) else @recorded_examples = {} end @recorded_examples end
# File lib/apipie/application.rb, line 202 def reload_documentation reload_examples api_controllers_paths.each do |f| load_controller_from_file f end end
# File lib/apipie/application.rb, line 169 def reload_examples @recorded_examples = nil end
# File lib/apipie/application.rb, line 86 def remove_method_description(resource_name, method_name) resource_name = get_resource_name(resource_name) @method_descriptions.delete [resource_name, method_name].join('#') end
# File lib/apipie/application.rb, line 92 def remove_resource_description(resource_name) resource_name = get_resource_name(resource_name) @resource_descriptions.delete resource_name end
# File lib/apipie/application.rb, line 173 def to_json(resource_name, method_name) _resources = if resource_name.blank? # take just resources which have some methods because # we dont want to show eg ApplicationController as resource resource_descriptions.inject({}) do |result, (k,v)| result[k] = v.to_json unless v._methods.blank? result end else [@resource_descriptions[resource_name].to_json(method_name)] end { :docs => { :name => Apipie.configuration.app_name, :info => Apipie.configuration.app_info, :copyright => Apipie.configuration.copyright, :doc_url => Apipie.full_url(""), :api_url => Apipie.configuration.api_base_url, :resources => _resources } } end
# File lib/apipie/application.rb, line 18 def initialize super @method_descriptions = Hash.new @resource_descriptions = Hash.new clear_last end