class ActiveEndpoint::Routes::Constraints
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/active_endpoint/routes/constraints.rb, line 6 def initialize super(Hash) end
Public Instance Methods
add(options)
click to toggle source
Calls superclass method
# File lib/active_endpoint/routes/constraints.rb, line 10 def add(options) super(options) do |options| if fetch_rule(options).nil? message = "Constraints can't have empty limit and period!\n" raise ActiveEndpoint::Routes::Constraints::Error.new(message) end end end
present_action?(request)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 27 def present_action?(request) @actions.keys.include?(request[:endpoint]) end
present_endpoint?(request)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 19 def present_endpoint?(request) @endpoints.keys.include?(request[:endpoint]) end
present_resource?(request)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 23 def present_resource?(request) reduce_state(@resources.keys, request) end
present_scope?(request)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 31 def present_scope?(request) reduce_state(@scopes.keys, request) end
Private Instance Methods
add_endpoint(options)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 37 def add_endpoint(options) @endpoints[fetch_endpoint(options)] = constraints(options) end
add_resources(options)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 41 def add_resources(options) resources = fetch_resources(options) actions = fetch_actions(options) scope = fetch_scope(options) if actions.present? && actions.any? temp_actions = {} if resources.is_a?(Array) resources.each do |controller_name| actions.each { |action| temp_actions["#{controller_name}##{action}"] = constraints(options) } end else actions.each { |action| temp_actions["#{resources}##{action}"] = constraints(options) } end @actions = @actions.merge(apply(scope, temp_actions)) else temp_resources = {} if resources.is_a?(Array) resources.each { |resource| temp_resources[resource] = constraints(options) } else temp_resources[resources] = constraints(options) end @resources = @resources.merge(apply(scope, temp_resources)) end end
add_scopes(options)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 67 def add_scopes(options) @scopes[fetch_scope(options)] = constraints(options) end
apply(scope, collection)
click to toggle source
# File lib/active_endpoint/routes/constraints.rb, line 71 def apply(scope, collection) return collection unless scope.present? collection.inject({}) do |hash, (key, value)| hash["#{scope}/#{key}"] = value hash end end