class Jumunge::JuArray

Public Class Methods

new(object, trail, trails) click to toggle source
# File lib/jumunge.rb, line 28
def initialize(object, trail, trails)
  @object = object
  @trail  = trail
  @trails = trails
end

Public Instance Methods

perform() click to toggle source
# File lib/jumunge.rb, line 34
def perform
  @object[key_name] = empty_value unless @object.key? key_name
  @object[key_name] = deep_applied_value if @trails.size.positive?
  @object
end

Private Instance Methods

deep_applied_value() click to toggle source
# File lib/jumunge.rb, line 50
def deep_applied_value
  @object[key_name].map do |value|
    Jumunge.new(value, remaining_trails).perform
  end
end
empty_value() click to toggle source
# File lib/jumunge.rb, line 46
def empty_value
  []
end
key_name() click to toggle source
# File lib/jumunge.rb, line 42
def key_name
  @key_name ||= @trail[0..-3]
end
remaining_trails() click to toggle source
# File lib/jumunge.rb, line 56
def remaining_trails
  @remaining_trails ||= @trails.join('.')
end