Class: Schema::Fixtures::Assignment

Inherits:
Object
  • Object
show all
Includes:
Initializer, TestBench::Fixture
Defined in:
lib/schema/fixtures/assignment.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(compare, attribute_names = nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil) ⇒ Object



28
29
30
31
32
# File 'lib/schema/fixtures/assignment.rb', line 28

def self.build(compare, attribute_names=nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil)
  control = compare.class.new
  comparison = Schema::Compare.(control, compare, attribute_names)
  new(comparison, print_title_context, title_context_name, attributes_context_name)
end

Instance Method Details

#attributes_context_nameObject



18
19
20
# File 'lib/schema/fixtures/assignment.rb', line 18

def attributes_context_name
  @attributes_context_name ||= 'Attributes'
end

#callObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/schema/fixtures/assignment.rb', line 34

def call
  if print_title_context?
    context "#{title_context_name}" do
      detail "Class: #{schema_class.name}"

      call!
    end
  else
    call!
  end
end

#call!Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/schema/fixtures/assignment.rb', line 46

def call!
  context attributes_context_name do
    comparison.entries.each do |entry|
      default_attribute_value = entry.control_value
      attribute_value = entry.compare_value

      test "#{entry.compare_name}" do
        detail "Default Value: #{default_attribute_value.pretty_inspect.chomp}"
        detail "Assigned Value: #{attribute_value.pretty_inspect.chomp}"

        refute(attribute_value == default_attribute_value)
      end
    end
  end
end

Returns:

  • (Boolean)


7
8
9
10
11
12
# File 'lib/schema/fixtures/assignment.rb', line 7

def print_title_context?
  if @print_title_context.nil?
    @print_title_context = true
  end
  @print_title_context
end

#schema_classObject



22
23
24
# File 'lib/schema/fixtures/assignment.rb', line 22

def schema_class
  comparison.control_class
end

#title_context_nameObject



14
15
16
# File 'lib/schema/fixtures/assignment.rb', line 14

def title_context_name
  @title_context_name ||= "Schema Assignment: #{comparison.compare_class.type}"
end