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