squcumber-postgres 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/squcumber-postgres/support/matchers.rb +119 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c7e23adc852f610e1dccd53a19444e6be0bf6707c7a4243ef475ccce0abdb6e
|
4
|
+
data.tar.gz: 437eac476560aa4fb9b5187a5e05c8e08c11f16954c74d0c0084808011dcd668
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2759e739f71e4d8f51f019b4cad5bbf0933f6ef032f348494baa9fc5bcf374b7df601893ead9bfa47a7db0a7d95243399a1c013e322e030a6f5ad8f157e571d3
|
7
|
+
data.tar.gz: 551a53568da31c1f83e9cb91b496aea019960830a6b4151fb535d45ad13f36174ec3d8c553f7f35e6b5012dd90df3fa5a6cce6be3b81a5841e2da5b01a9c734e
|
@@ -23,23 +23,127 @@ module MatcherHelpers
|
|
23
23
|
def convert_mock_values(mock_data)
|
24
24
|
mock_data.map do |entry|
|
25
25
|
entry.each do |key, value|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
26
|
+
# Examples of valid values; all examples assume that today is 30th July 2017
|
27
|
+
#
|
28
|
+
# 1 month ago
|
29
|
+
# => '2017-06-30'
|
30
|
+
#
|
31
|
+
# 40 days ago (as month)
|
32
|
+
# => '6'
|
33
|
+
#
|
34
|
+
# 2 years ago (as year)
|
35
|
+
# => '2015'
|
36
|
+
#
|
37
|
+
# beginning of last month
|
38
|
+
# => '2017-06-01'
|
39
|
+
#
|
40
|
+
# end of last year
|
41
|
+
# => '2016-12-31'
|
42
|
+
#
|
43
|
+
# today (as custom '%Y-%m')
|
44
|
+
# => '2017-07'
|
45
|
+
#
|
46
|
+
entry[key] = convert_mock_value(value)
|
40
47
|
end
|
41
48
|
end
|
42
49
|
end
|
50
|
+
|
51
|
+
def convert_mock_value(value)
|
52
|
+
value_parser_regexp = /\s*((?<modifier>(beginning|end))\s+of\s+(?<modifier_base>day|month|year))?\s*(?<placeholder>[^\(\)]+)\s*(\(as (?<format>day|month|year|(custom '[^']+'))\))?\s*/
|
53
|
+
|
54
|
+
parsed_value = value.match(value_parser_regexp)
|
55
|
+
placeholder = parsed_value[:placeholder]
|
56
|
+
format = parsed_value[:format]
|
57
|
+
modifier = parsed_value[:modifier]
|
58
|
+
modifier_base = parsed_value[:modifier_base]
|
59
|
+
|
60
|
+
new_value = case placeholder
|
61
|
+
when /today/
|
62
|
+
Date.today
|
63
|
+
when /yesterday/
|
64
|
+
timetravel(Date.today, 1, :prev_day)
|
65
|
+
when /tomorrow/
|
66
|
+
timetravel(Date.today, 1, :next_day)
|
67
|
+
when /last month/
|
68
|
+
timetravel(Date.today, 1, :prev_month)
|
69
|
+
when /next month/
|
70
|
+
timetravel(Date.today, 1, :next_month)
|
71
|
+
when /last year/
|
72
|
+
timetravel(Date.today, 1, :prev_year)
|
73
|
+
when /next year/
|
74
|
+
timetravel(Date.today, 1, :next_year)
|
75
|
+
when /\s*\d+\s+month(s)?\s+ago\s*?/
|
76
|
+
number_of_months = value.match(/\d+/)[0].to_i
|
77
|
+
timetravel(Date.today, number_of_months, :prev_month)
|
78
|
+
when /\s*\d+\s+day(s)?\s+ago\s*/
|
79
|
+
number_of_days = value.match(/\d+/)[0].to_i
|
80
|
+
timetravel(Date.today, number_of_days, :prev_day)
|
81
|
+
when /\s*\d+\s+year(s)?\s+ago\s*/
|
82
|
+
number_of_years = value.match(/\d+/)[0].to_i
|
83
|
+
timetravel(Date.today, number_of_years, :prev_year)
|
84
|
+
when /\s*\d+\s+month(s)?\s+from now\s*?/
|
85
|
+
number_of_months = value.match(/\d+/)[0].to_i
|
86
|
+
timetravel(Date.today, number_of_months, :next_month)
|
87
|
+
when /\s*\d+\s+day(s)?\s+from now\s*/
|
88
|
+
number_of_days = value.match(/\d+/)[0].to_i
|
89
|
+
timetravel(Date.today, number_of_days, :next_day)
|
90
|
+
when /\s*\d+\s+year(s)?\s+from now\s*/
|
91
|
+
number_of_years = value.match(/\d+/)[0].to_i
|
92
|
+
timetravel(Date.today, number_of_years, :next_year)
|
93
|
+
else
|
94
|
+
placeholder
|
95
|
+
end
|
96
|
+
|
97
|
+
if new_value.is_a?(Date)
|
98
|
+
modified_new_value = case modifier
|
99
|
+
when nil
|
100
|
+
new_value
|
101
|
+
when 'beginning'
|
102
|
+
case modifier_base
|
103
|
+
when 'day'
|
104
|
+
new_value
|
105
|
+
when 'month'
|
106
|
+
Date.new(new_value.year, new_value.month, 1)
|
107
|
+
when 'year'
|
108
|
+
Date.new(new_value.year, 1, 1)
|
109
|
+
else
|
110
|
+
raise "Invalid date modifier provided: #{modifier} #{modifier_base}"
|
111
|
+
end
|
112
|
+
when 'end'
|
113
|
+
case modifier_base
|
114
|
+
when 'day'
|
115
|
+
new_value
|
116
|
+
when 'month'
|
117
|
+
Date.new(new_value.next_month.year, new_value.next_month.month, 1).prev_day
|
118
|
+
when 'year'
|
119
|
+
Date.new(new_value.next_year.year, 1, 1).prev_day
|
120
|
+
else
|
121
|
+
raise "Invalid date modifier provided: #{modifier} #{modifier_base}"
|
122
|
+
end
|
123
|
+
else
|
124
|
+
raise "Invalid date modifier provided: #{modifier} #{modifier_base}"
|
125
|
+
end
|
126
|
+
|
127
|
+
formatted_new_value = case format
|
128
|
+
when nil
|
129
|
+
puts "NO FORMAT"
|
130
|
+
modified_new_value.to_s
|
131
|
+
when 'day', 'month', 'year'
|
132
|
+
modified_new_value.send(format.to_sym)
|
133
|
+
when /custom '[^']+'/
|
134
|
+
parsed_format = format.match(/custom '(?<format_string>[^']+)'/)
|
135
|
+
modified_new_value.strftime(parsed_format[:format_string])
|
136
|
+
else
|
137
|
+
raise "Invalid date format provided: #{format}"
|
138
|
+
end
|
139
|
+
|
140
|
+
formatted_new_value
|
141
|
+
else
|
142
|
+
new_value
|
143
|
+
end
|
144
|
+
end
|
43
145
|
end
|
44
146
|
|
45
|
-
World
|
147
|
+
if defined?(World)
|
148
|
+
World(MatcherHelpers)
|
149
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: squcumber-postgres
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefanie Grunwald
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|