Class: SuperDiff::DiffFormatters::DefaultObject

Inherits:
Base
  • Object
show all
Defined in:
lib/super_diff/diff_formatters/default_object.rb

Direct Known Subclasses

CustomObject

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(operation_tree, value_class: nil, **rest) ⇒ DefaultObject

Returns a new instance of DefaultObject.



8
9
10
11
12
# File 'lib/super_diff/diff_formatters/default_object.rb', line 8

def initialize(operation_tree, value_class: nil, **rest)
  super(operation_tree, **rest)

  @value_class = value_class
end

Class Method Details

.applies_to?(operation_tree) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
# File 'lib/super_diff/diff_formatters/default_object.rb', line 4

def self.applies_to?(operation_tree)
  operation_tree.is_a?(OperationTrees::DefaultObject)
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/super_diff/diff_formatters/default_object.rb', line 14

def call
  Collection.call(
    open_token: "#<#{value_class} {",
    close_token: "}>",
    collection_prefix: collection_prefix,
    build_item_prefix: -> (operation) {
      key =
        if operation.respond_to?(:left_key)
          operation.left_key
        else
          operation.key
        end

      "@#{key}="
    },
    operation_tree: operation_tree,
    indent_level: indent_level,
    add_comma: add_comma?,
  )
end