Class: Pact::Term
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#fix_all_the_things, #fix_json_formatting, #fix_regexp, #remove_unicode
Constructor Details
#initialize(attributes = {}) ⇒ Term
Returns a new instance of Term.
25
26
27
28
29
30
31
|
# File 'lib/pact/term.rb', line 25
def initialize(attributes = {})
@generate = attributes[:generate]
@matcher = attributes[:matcher]
raise "Please specify a matcher for the Term" unless @matcher != nil
raise "Please specify a value to generate for the Term" unless @generate != nil
raise "Value to generate \"#{@generate}\" does not match regular expression #{@matcher.inspect}" unless @generate =~ @matcher
end
|
Instance Attribute Details
#generate ⇒ Object
Returns the value of attribute generate.
9
10
11
|
# File 'lib/pact/term.rb', line 9
def generate
@generate
end
|
#matcher ⇒ Object
Returns the value of attribute matcher.
9
10
11
|
# File 'lib/pact/term.rb', line 9
def matcher
@matcher
end
|
Class Method Details
.json_create(obj) ⇒ Object
11
12
13
|
# File 'lib/pact/term.rb', line 11
def self.json_create(obj)
new(generate: obj['data']['generate'], matcher: obj['data']['matcher'])
end
|
.unpack_regexps(source) ⇒ Object
15
16
17
18
19
20
21
22
23
|
# File 'lib/pact/term.rb', line 15
def self.unpack_regexps source
case source
when Pact::Term then source.matcher
when Array then unpack_regexps_from_array source
when Hash then unpack_regexps_from_hash source
else
source
end
end
|
Instance Method Details
#==(other) ⇒ Object
50
51
52
53
|
# File 'lib/pact/term.rb', line 50
def ==(other)
return false unless other.respond_to?(:generate) && other.respond_to?(:matcher)
generate == other.generate && matcher == other.matcher
end
|
#as_json(options = {}) ⇒ Object
37
38
39
|
# File 'lib/pact/term.rb', line 37
def as_json(options = {})
to_hash
end
|
#diff_with_actual(actual) ⇒ Object
59
60
61
62
63
64
|
# File 'lib/pact/term.rb', line 59
def diff_with_actual(actual)
match(actual) ? nil : {
expected: self,
actual: actual
}
end
|
#empty? ⇒ Boolean
66
67
68
|
# File 'lib/pact/term.rb', line 66
def empty?
false
end
|
#match(literal) ⇒ Object
46
47
48
|
# File 'lib/pact/term.rb', line 46
def match(literal)
literal.respond_to?(:to_s) ? matcher.match(literal.to_s) : nil
end
|
#to_hash ⇒ Object
33
34
35
|
# File 'lib/pact/term.rb', line 33
def to_hash
{ json_class: self.class.name, data: { generate: generate, matcher: fix_regexp(matcher)} }
end
|
#to_json(options = {}) ⇒ Object
42
43
44
|
# File 'lib/pact/term.rb', line 42
def to_json(options = {})
as_json.to_json(options)
end
|
#to_s ⇒ Object
55
56
57
|
# File 'lib/pact/term.rb', line 55
def to_s
"Pact::Term matcher: #{matcher.inspect}" + (generate.nil? ? "" : " generate: \"#{generate}\"")
end
|