class CypherBuilder::Payload

Public Class Methods

new(params) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 8
def initialize(params)
  @params = params.map { |k, v| [k.to_sym, with_status(v, :pending)] }.to_h
end

Public Instance Methods

already_used(param_name) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 16
def already_used(param_name)
  set_status(param_name, :already_used) unless get_status(param_name) == :will_be_used
end
include?(param_name) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 20
def include?(param_name)
  @params.keys.include?(param_name)
end
necessary() click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 28
def necessary
  select(:will_be_used)
end
pendings() click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 24
def pendings
  select(:pending)
end
will_be_used(param_name) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 12
def will_be_used(param_name)
  set_status(param_name, :will_be_used)
end

Private Instance Methods

get(key) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 34
def get(key)
  @params.fetch(key.to_sym)
end
get_status(key) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 38
def get_status(key)
  get(key).status
end
select(status) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 54
def select(status)
  @params.
      select { |_, v| v.status == status }.
      map { |k, v| [k, v.value] }.
      to_h
end
set(key, value) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 42
def set(key, value)
  @params[key.to_sym] = value
end
set_status(key, status) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 46
def set_status(key, status)
  set(key, get(key).to_status(status))
end
with_status(value, status) click to toggle source
# File lib/cypher_builder/infra/payload.rb, line 50
def with_status(value, status)
  WithStatus.new(value, status)
end