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