lib/exposure/configuration.rb in exposure-0.0.6 vs lib/exposure/configuration.rb in exposure-0.0.7
- old
+ new
@@ -1,62 +1,44 @@
module Exposure
- module Configuration
+ module Configuration
# options
# :nested => false or symbol or array of symbols
# defaults to false
# :only => array of REST methods names as symbols to only include
- # defaults to [:show, :new, :create, :edit, :update, :destroy]
- # :except => array of REST methods to exclude
- # defaults to [ ]
- # :formats => array of
- # defaults to [ :html, :xml, :json ]
- def expose_one(resource_name, options = {})
- include ActiveSupport::Callbacks
- extend Exposure::Common
- self.resource_name = resource_name
- self.member_nesting = [ [self.resource_name.to_sym] ]
-
- extend Patterns::Resource
- include Patterns::Resource::Actions
-
- define_callbacks(*Patterns::Resource::Callbacks)
- end
-
- # options
- # :nested => false or symbol or array of symbols
- # defaults to false
- # :only => array of REST methods names as symbols to only include
# defaults to [:index, :show, :new, :create, :edit, :update, :destroy]
# :except => array of REST methods to exclude
# defaults to [ ]
# :formats => array of
- # defaults to [ :html, :xml, :json ]
+ # defaults to [ :html, :xml]
#
def expose_many(name, options = {})
- include ActiveSupport::Callbacks
- extend Exposure::Common
+ @_exposed_resource_name = name
+ @_exposed_resource_options = options
- self.resource_name = name.to_s.singularize
- self.resources_name = name.to_s
+ extend Configuration::Options
- if nesting = options[:nested]
-
- self.parent_model = nesting.shift.to_s.singularize.camelize.constantize
-
- build_default_finders(self.resources_name, nesting)
-
- nesting.collect! {|sym| [sym.to_s.singularize.to_sym, sym]}
- self.member_nesting = nesting + [ [self.resource_name.to_sym] ]
- self.collection_nesting = nesting + [ [self.resources_name.to_sym] ]
- else
- self.parent_model = self.resource_name.camelize.constantize
- build_default_finders(self.resource_name, [])
- self.member_nesting = [ [self.resource_name.to_sym] ]
- self.collection_nesting = [ [self.resources_name.to_sym] ]
+ class << self
+ attr_accessor :resource_name, :resources_name,
+ :resource_chain, :resources_chain,
+ :collection_nesting, :member_nesting,
+ :parent_model
end
+ include ActiveSupport::Callbacks
+ include Exposure::Finding
+ include Exposure::Flashing
+ include Exposure::Responding
+ include Exposure::Callbacks
+
+ self.name!
+ self.build_default_finders!
+ self.build_default_builders!
+
extend Patterns::Resources
include Patterns::Resources::Actions
+
+ self.allow_actions!
+ self.allow_formats!
define_callbacks(*Patterns::Resources::Callbacks)
end
alias :expose :expose_many
end
\ No newline at end of file