class JsonDeepCompare::DocumentComparison::SubstitutionsBuilder::Node

Public Class Methods

new(selector) click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 54
def initialize(selector)
  @selector = selector
  @sub_nodes = []
end

Public Instance Methods

method_missing(meth, *args) { |sub_node| ... } click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 59
def method_missing(meth, *args, &block)
  if block_given?
    if args.size == 1
      sub_node = Node.new(
        @selector + " > .#{meth} :nth-child(#{args.first})"
      )
    else
      sub_node = Node.new(@selector + " > .#{meth}")
    end
    yield sub_node
  elsif args.size == 2
    sub_node = Node.new(
      @selector + " > .#{meth} :nth-child(#{args.first})"
    )
    sub_node.value = args.last
  else
    sub_node = Node.new(@selector + " > .#{meth}")
    sub_node.value = args.first
  end
  @sub_nodes << sub_node
end
rules() click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 81
def rules
  @sub_nodes.map { |sn| sn.rules }.flatten.concat([@rule]).compact
end
value=(v) click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 85
def value=(v)
  @rule = Rule.new(@selector, v)
end