Sha256: 0ae23843d6b98df0fcfe4bf75ad1842bfcfefdfd1bb6c61746e05ab72f61b86a
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
require 'traxis/controller_helpers' require 'traxis/controller_actions' module Traxis module Controller extend ::ActiveSupport::Concern include ::Praxis::Controller include ::Traxis::ControllerHelpers include ::Traxis::ControllerActions included do class_attribute :collection_options class_attribute :resource_options self.collection_options = ::ActiveSupport::OrderedOptions.new self.resource_options = ::ActiveSupport::OrderedOptions.new self.collection_options.merge!({ :json_root => name.demodulize.underscore.pluralize }) self.resource_options.merge!({ :finder_param => :id, :finder => :find, :json_root => name.demodulize.underscore.singularize }) end module ClassMethods def handles(resource_klass, collection:, resource:) resource_options.merge!(class: resource_klass) collection_options.merge!(collection) resource_options.merge!(resource) end def resource_class resource_options[:class] end end def collection_options self.class.collection_options end def resource_options self.class.resource_options end def resource_class self.class.resource_class end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
traxis-0.0.2 | lib/traxis/controller.rb |
traxis-0.0.1 | lib/traxis/controller.rb |