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, #warn_about_regexp
Constructor Details
#initialize(attributes = {}) ⇒ Term
Returns a new instance of Term.
26
27
28
29
30
31
32
|
# File 'lib/pact/term.rb', line 26
def initialize(attributes = {})
@generate = attributes[:generate]
@matcher = attributes[:matcher]
raise Pact::Error.new("Please specify a matcher for the Term") unless @matcher != nil
raise Pact::Error.new("Please specify a value to generate for the Term") unless @generate != nil
raise Pact::Error.new("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.
10
11
12
|
# File 'lib/pact/term.rb', line 10
def generate
@generate
end
|
#matcher ⇒ Object
Returns the value of attribute matcher.
10
11
12
|
# File 'lib/pact/term.rb', line 10
def matcher
@matcher
end
|
Class Method Details
.json_create(obj) ⇒ Object
12
13
14
|
# File 'lib/pact/term.rb', line 12
def self.json_create(obj)
new(generate: obj['data']['generate'], matcher: obj['data']['matcher'])
end
|
.unpack_regexps(source) ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/pact/term.rb', line 16
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
51
52
53
54
|
# File 'lib/pact/term.rb', line 51
def ==(other)
return false unless other.respond_to?(:generate) && other.respond_to?(:matcher)
generate == other.generate && matcher == other.matcher
end
|
#as_json(options = {}) ⇒ Object
38
39
40
|
# File 'lib/pact/term.rb', line 38
def as_json(options = {})
to_hash
end
|
#diff_with_actual(actual) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/pact/term.rb', line 60
def diff_with_actual(actual)
match(actual) ? nil : {
expected: self,
actual: actual
}
end
|
#empty? ⇒ Boolean
67
68
69
|
# File 'lib/pact/term.rb', line 67
def empty?
false
end
|
#match(literal) ⇒ Object
47
48
49
|
# File 'lib/pact/term.rb', line 47
def match(literal)
literal.respond_to?(:to_s) ? matcher.match(literal.to_s) : nil
end
|
#to_hash ⇒ Object
34
35
36
|
# File 'lib/pact/term.rb', line 34
def to_hash
{ json_class: self.class.name, data: { generate: generate, matcher: fix_regexp(matcher) } }
end
|
#to_json(options = {}) ⇒ Object
43
44
45
|
# File 'lib/pact/term.rb', line 43
def to_json(options = {})
as_json.to_json(options)
end
|
#to_s ⇒ Object
56
57
58
|
# File 'lib/pact/term.rb', line 56
def to_s
"Pact::Term matcher: #{matcher.inspect}" + (generate.nil? ? "" : " generate: \"#{generate}\"")
end
|