Parent

ApipieBindings::Action

Attributes

name[R]

Public Class Methods

new(resource, name, api) click to toggle source
# File lib/apipie_bindings/action.rb, line 7
def initialize(resource, name, api)
  @resource = resource
  @name = name.to_sym
  @api = api
end

Public Instance Methods

apidoc() click to toggle source
# File lib/apipie_bindings/action.rb, line 17
def apidoc
  methods = @api.apidoc[:docs][:resources][@resource][:methods].select do |action|
    action[:name].to_sym == @name
  end
  methods.first
end
call(params={}, headers={}, options={}) click to toggle source
# File lib/apipie_bindings/action.rb, line 13
def call(params={}, headers={}, options={})
  @api.call(@resource, @name, params, headers, options)
end
examples() click to toggle source
# File lib/apipie_bindings/action.rb, line 41
def examples
  apidoc[:examples].map do |example|
    ApipieBindings::Example.parse(example)
  end
end
find_route(params={}) click to toggle source
# File lib/apipie_bindings/action.rb, line 47
def find_route(params={})
  sorted_routes = routes.sort_by { |r| [-1 * r.params_in_path.count, r.path] }

  suitable_route = sorted_routes.find do |route|
    route.params_in_path.all? { |path_param| params.keys.map(&:to_s).include?(path_param) }
  end

  suitable_route ||= sorted_routes.last
  return suitable_route
end
inspect() click to toggle source
# File lib/apipie_bindings/action.rb, line 75
def inspect
  to_s
end
params() click to toggle source
# File lib/apipie_bindings/action.rb, line 31
def params
  if apidoc
    apidoc[:params].map do |param|
      ApipieBindings::Param.new(param)
    end
  else
    []
  end
end
routes() click to toggle source
# File lib/apipie_bindings/action.rb, line 24
def routes
  apidoc[:apis].map do |api|
    ApipieBindings::Route.new(
      api[:api_url], api[:http_method], api[:short_description])
  end
end
to_s() click to toggle source
# File lib/apipie_bindings/action.rb, line 71
def to_s
  "<Action :#{@name}>"
end
validate!(params) click to toggle source
# File lib/apipie_bindings/action.rb, line 58
def validate!(params)
  # return unless params.is_a?(Hash)

  # invalid_keys = params.keys.map(&:to_s) - (rules.is_a?(Hash) ? rules.keys : rules)
  # raise ArgumentError, "Invalid keys: #{invalid_keys.join(", ")}" unless invalid_keys.empty?

  # if rules.is_a? Hash
  #   rules.each do |key, sub_keys|
  #     validate_params!(params[key], sub_keys) if params[key]
  #   end
  # end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.