module ServiceOperation::Params::ClassMethods

ClassMethods

Public Instance Methods

attribute_names() click to toggle source

should only be called by Instance after all attributes have been defined

# File lib/service_operation/params.rb, line 56
def attribute_names
  @attribute_names ||= attributes.map(&:name)
end
attributes() click to toggle source
# File lib/service_operation/params.rb, line 51
def attributes
  (returns + params).uniq(&:name) # returns first to preserve log: option
end
input(&block)
Alias for: params
output(&block)
Alias for: returns
params(&block) click to toggle source

@example

params do
  param1, :integer, coerce: true
end
# File lib/service_operation/params.rb, line 23
def params(&block)
  @params ||= superclass && superclass.respond_to?(:params) ? superclass.params.dup : []

  if block_given?
    @params += Params::DSL.run(&block)
    define_params_hooks
  end

  @params = @params.reverse.uniq(&:name).reverse
  @params
end
Also aliased as: input
remove_params(*args) click to toggle source
# File lib/service_operation/params.rb, line 62
def remove_params(*args)
  params.delete_if { |a| args.include?(a.name) }
end
returns(&block) click to toggle source

@example

returns do
  result, [:string]
  log_data, [:string], optional: true
end
# File lib/service_operation/params.rb, line 42
def returns(&block)
  @returns ||= superclass && superclass.respond_to?(:returns) ? superclass.returns.dup : []

  @returns += Params::DSL.run(&block) if block_given?

  @returns = @returns.reverse.uniq(&:name).reverse
  @returns
end
Also aliased as: output

Private Instance Methods

define_params_hooks() click to toggle source
# File lib/service_operation/params.rb, line 68
def define_params_hooks
  return if @defined_params_hooks

  before :validate_params
  after :validate_returns
  @defined_params_hooks = true
end