diff --git a/lib/apipie/application.rb b/lib/apipie/application.rb index c70b6722..f63e4bac 100644 --- a/lib/apipie/application.rb +++ b/lib/apipie/application.rb @@ -121,7 +121,7 @@ def define_resource_description(controller, version, dsl_data = nil) # resource_description? It's used to derivate the default value of # versions for methods. def controller_versions(controller) - ret = @controller_versions[controller] + ret = @controller_versions[controller.to_s] return ret unless ret.empty? if controller == ActionController::Base || controller.nil? return [Apipie.configuration.default_version] @@ -131,7 +131,7 @@ def controller_versions(controller) end def set_controller_versions(controller, versions) - @controller_versions[controller] = versions + @controller_versions[controller.to_s] = versions end def add_param_group(controller, name, &block) @@ -205,7 +205,7 @@ def get_resource_description(resource, version = nil) return nil end resource_description = get_resource_description(resource_name) - if resource_description && resource_description.controller == resource + if resource_description && resource_description.controller.to_s == resource.to_s return resource_description end end @@ -236,12 +236,12 @@ def remove_method_description(resource, versions, method_name) # initialize variables for gathering dsl data def init_env - @resource_descriptions = HashWithIndifferentAccess.new { |h, version| h[version] = {} } - @controller_to_resource_id = {} - @param_groups = {} + @resource_descriptions ||= HashWithIndifferentAccess.new { |h, version| h[version] = {} } + @controller_to_resource_id ||= {} + @param_groups ||= {} # what versions does the controller belong in (specified by resource_description)? - @controller_versions = Hash.new { |h, controller| h[controller] = [] } + @controller_versions ||= Hash.new { |h, controller| h[controller.to_s] = [] } end def recorded_examples @@ -385,7 +385,7 @@ def valid_search_args?(version, resource_name, method_name) end def version_prefix(klass) - version = controller_versions(klass).first + version = controller_versions(klass.to_s).first base_url = get_base_url(version) return "/" if base_url.blank? base_url[1..-1] + "/" diff --git a/spec/dummy/app/controllers/extended_controller.rb b/spec/dummy/app/controllers/extended_controller.rb index 81ab6e7d..8a14cd08 100644 --- a/spec/dummy/app/controllers/extended_controller.rb +++ b/spec/dummy/app/controllers/extended_controller.rb @@ -7,6 +7,4 @@ class ExtendedController < ApplicationController end def create end - - include Concerns::ExtendingConcern end diff --git a/spec/dummy/config/application.rb b/spec/dummy/config/application.rb index 694f5787..3c4e53b4 100644 --- a/spec/dummy/config/application.rb +++ b/spec/dummy/config/application.rb @@ -41,5 +41,9 @@ class Application < Rails::Application # Configure sensitive parameters which will be filtered from the log file. config.filter_parameters += [:password] + + config.to_prepare do + ExtendedController.send(:include, Concerns::ExtendingConcern) + end end end diff --git a/spec/dummy/config/initializers/apipie.rb b/spec/dummy/config/initializers/apipie.rb index 763a3f81..6aeab37f 100644 --- a/spec/dummy/config/initializers/apipie.rb +++ b/spec/dummy/config/initializers/apipie.rb @@ -1,6 +1,8 @@ Apipie.configure do |config| config.app_name = "Test app" config.copyright = "© 2012 Pavel Pokorny" + config.languages = ['en'] + config.default_locale = 'en' # set default API version # can be overriden in resource_description