class Despecable::Me

Attributes

params[R]

Public Class Methods

new(params) click to toggle source
# File lib/despecable/me.rb, line 5
def initialize(params)
  @params = params
  @specd = []
end

Public Instance Methods

doit(*args, &blk) click to toggle source
# File lib/despecable/me.rb, line 10
def doit(*args, &blk)
  spectator = Despecable::Spectator.new(@params)
  spectator.instance_exec(*args, &blk) unless blk.nil?
  @specd += spectator.specd
  return spectator.params
end
strict(user_params) click to toggle source
# File lib/despecable/me.rb, line 17
def strict(user_params)
  unspecd = user_params.map(&:to_s).uniq - @specd.map(&:to_s)
  if !unspecd.empty?
    list = unspecd.map{|x| "'#{x}'"}.join(", ")
    raise Despecable::UnrecognizedParameterError.new(
      "Unrecognized parameters supplied: #{list}",
      parameters: unspecd
    )
  end
end