by_star 2.2.0.rc1 → 2.2.0

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.
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples_for 'scope parameter' do
4
+
5
+ describe 'scope' do
6
+ it 'should memoize the scope variable' do
7
+ Event.instance_variable_get(:@by_star_scope).should be_nil
8
+ Post.instance_variable_get(:@by_star_scope).should be_nil
9
+ Appointment.instance_variable_get(:@by_star_scope).should be_a Proc
10
+ end
11
+
12
+ context 'between_times with default scope' do
13
+ subject { Appointment.between_times(Date.parse('2013-12-01'), Date.parse('2014-02-01')) }
14
+ its(:count) { should eq 3 }
15
+ end
16
+
17
+ context 'between_times with scope override as a query criteria' do
18
+ subject { Appointment.between_times(Date.parse('2013-12-01'), Date.parse('2014-02-01'), scope: Appointment.unscoped) }
19
+ its(:count) { should eq 14 }
20
+ end
21
+
22
+ context 'between_times with scope override as a Proc' do
23
+ subject { Appointment.between_times(Date.parse('2013-12-01'), Date.parse('2014-02-01'), scope: ->{ unscoped }) }
24
+ its(:count) { should eq 14 }
25
+ end
26
+
27
+ context 'by_month with default scope' do
28
+ subject { Appointment.by_month(Date.parse('2014-01-01')) }
29
+ its(:count) { should eq 2 }
30
+ end
31
+
32
+ context 'by_month with scope override as a query criteria' do
33
+ subject { Appointment.by_month(Date.parse('2014-01-01'), scope: Appointment.unscoped) }
34
+ its(:count) { should eq 6 }
35
+ end
36
+
37
+ context 'by_month with scope override as a Proc' do
38
+ subject { Appointment.by_month(Date.parse('2014-01-01'), scope: ->{ unscoped }) }
39
+ its(:count) { should eq 6 }
40
+ end
41
+ end
42
+ end
@@ -6,9 +6,9 @@ describe Time do
6
6
 
7
7
  (0..6).each do |n|
8
8
  context "Monday plus #{n} days" do
9
- subject { Time.parse('2014-01-06') + n.days }
10
- its(:beginning_of_weekend){ should eq Time.parse('2014-01-10 15:00') }
11
- its(:end_of_weekend){ should eq Time.parse('2014-01-13 02:00').end_of_hour }
9
+ subject { Time.zone.parse('2014-01-06') + n.days }
10
+ its(:beginning_of_weekend){ should eq Time.zone.parse('2014-01-10 15:00') }
11
+ its(:end_of_weekend){ should eq Time.zone.parse('2014-01-13 02:00').end_of_hour }
12
12
  end
13
13
  end
14
14
  end
@@ -16,42 +16,42 @@ describe Time do
16
16
  describe 'fortnight' do
17
17
 
18
18
  context 'first day of year' do
19
- subject { Time.parse '2014-01-01' }
20
- its(:beginning_of_fortnight){ should eq Time.parse('2014-01-01') }
21
- its(:end_of_fortnight){ should eq Time.parse('2014-01-14').end_of_day }
19
+ subject { Time.zone.parse '2014-01-01' }
20
+ its(:beginning_of_fortnight){ should eq Time.zone.parse('2014-01-01') }
21
+ its(:end_of_fortnight){ should eq Time.zone.parse('2014-01-14').end_of_day }
22
22
  end
23
23
 
24
24
  context 'second fortnight of year' do
25
- subject { Time.parse '2014-01-16' }
26
- its(:beginning_of_fortnight){ should eq Time.parse('2014-01-15') }
27
- its(:end_of_fortnight){ should eq Time.parse('2014-01-28').end_of_day }
25
+ subject { Time.zone.parse '2014-01-16' }
26
+ its(:beginning_of_fortnight){ should eq Time.zone.parse('2014-01-15') }
27
+ its(:end_of_fortnight){ should eq Time.zone.parse('2014-01-28').end_of_day }
28
28
  end
29
29
 
30
30
  context 'middle of year' do
31
- subject { Time.parse '2014-06-13' }
32
- its(:beginning_of_fortnight){ should eq Time.parse('2014-06-04') }
33
- its(:end_of_fortnight){ should eq Time.parse('2014-06-17').end_of_day }
31
+ subject { Time.zone.parse '2014-06-13' }
32
+ its(:beginning_of_fortnight){ should eq Time.zone.parse('2014-06-04') }
33
+ its(:end_of_fortnight){ should eq Time.zone.parse('2014-06-17').end_of_day }
34
34
  end
35
35
 
36
36
  context 'last day of year' do
37
- subject { Time.parse '2014-12-31' }
38
- its(:beginning_of_fortnight){ should eq Time.parse('2014-12-31') }
39
- its(:end_of_fortnight){ should eq Time.parse('2015-01-13').end_of_day }
37
+ subject { Time.zone.parse '2014-12-31' }
38
+ its(:beginning_of_fortnight){ should eq Time.zone.parse('2014-12-31') }
39
+ its(:end_of_fortnight){ should eq Time.zone.parse('2015-01-13').end_of_day }
40
40
  end
41
41
  end
42
42
 
43
43
  describe 'calendar_month' do
44
44
 
45
- subject { Time.parse '2014-01-01' }
45
+ subject { Time.zone.parse '2014-01-01' }
46
46
 
47
47
  context 'week begins Monday' do
48
- its(:beginning_of_calendar_month){ should eq Time.parse('2013-12-30') }
49
- its(:end_of_calendar_month){ should eq Time.parse('2014-02-02').end_of_day }
48
+ its(:beginning_of_calendar_month){ should eq Time.zone.parse('2013-12-30') }
49
+ its(:end_of_calendar_month){ should eq Time.zone.parse('2014-02-02').end_of_day }
50
50
  end
51
51
 
52
52
  context 'week begins Sunday' do
53
- it { subject.beginning_of_calendar_month(:sunday).should eq Time.parse('2013-12-29') }
54
- it { subject.end_of_calendar_month(:sunday).should eq Time.parse('2014-02-01').end_of_day }
53
+ it { subject.beginning_of_calendar_month(:sunday).should eq Time.zone.parse('2013-12-29') }
54
+ it { subject.end_of_calendar_month(:sunday).should eq Time.zone.parse('2014-02-01').end_of_day }
55
55
  end
56
56
  end
57
57
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: by_star
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0.rc1
5
- prerelease: 6
4
+ version: 2.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ryan Bigg
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-01-14 00:00:00.000000000 Z
12
+ date: 2014-04-01 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ! '>='
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: chronic
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ! '>='
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ! '>='
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: bundler
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ! '>='
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ! '>='
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: sqlite3
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ! '>='
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ! '>='
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: activerecord
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ! '>='
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ! '>='
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: mongoid
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ! '>='
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ! '>='
109
96
  - !ruby/object:Gem::Version
@@ -111,7 +98,6 @@ dependencies:
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: pg
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
102
  - - ! '>='
117
103
  - !ruby/object:Gem::Version
@@ -119,7 +105,6 @@ dependencies:
119
105
  type: :development
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
109
  - - ! '>='
125
110
  - !ruby/object:Gem::Version
@@ -127,7 +112,6 @@ dependencies:
127
112
  - !ruby/object:Gem::Dependency
128
113
  name: mysql2
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
116
  - - ! '>='
133
117
  - !ruby/object:Gem::Version
@@ -135,7 +119,6 @@ dependencies:
135
119
  type: :development
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
123
  - - ! '>='
141
124
  - !ruby/object:Gem::Version
@@ -143,7 +126,6 @@ dependencies:
143
126
  - !ruby/object:Gem::Dependency
144
127
  name: rspec-rails
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
130
  - - ~>
149
131
  - !ruby/object:Gem::Version
@@ -151,7 +133,6 @@ dependencies:
151
133
  type: :development
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
137
  - - ~>
157
138
  - !ruby/object:Gem::Version
@@ -159,7 +140,6 @@ dependencies:
159
140
  - !ruby/object:Gem::Dependency
160
141
  name: timecop
161
142
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
143
  requirements:
164
144
  - - ~>
165
145
  - !ruby/object:Gem::Version
@@ -167,7 +147,6 @@ dependencies:
167
147
  type: :development
168
148
  prerelease: false
169
149
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
150
  requirements:
172
151
  - - ~>
173
152
  - !ruby/object:Gem::Version
@@ -175,7 +154,6 @@ dependencies:
175
154
  - !ruby/object:Gem::Dependency
176
155
  name: pry
177
156
  requirement: !ruby/object:Gem::Requirement
178
- none: false
179
157
  requirements:
180
158
  - - ! '>='
181
159
  - !ruby/object:Gem::Version
@@ -183,7 +161,6 @@ dependencies:
183
161
  type: :development
184
162
  prerelease: false
185
163
  version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
164
  requirements:
188
165
  - - ! '>='
189
166
  - !ruby/object:Gem::Version
@@ -231,25 +208,30 @@ files:
231
208
  - spec/integration/shared/by_weekend.rb
232
209
  - spec/integration/shared/by_year.rb
233
210
  - spec/integration/shared/offset_parameter.rb
211
+ - spec/integration/shared/relative.rb
212
+ - spec/integration/shared/scope_parameter.rb
234
213
  - spec/spec_helper.rb
235
214
  - spec/unit/kernel_time_spec.rb
236
215
  - spec/unit/normalization_spec.rb
237
216
  - tmp/.gitignore
238
217
  homepage: http://github.com/radar/by_star
239
218
  licenses: []
219
+ metadata: {}
240
220
  post_install_message: ! 'Upgrading to ByStar 2.2.0
241
221
 
242
222
  -------------------------
243
223
 
244
224
 
245
- * For Mongoid only, ByStar''s `.between` method has been removed and replaced with
246
- `.between_times`
225
+ * ActiveRecord: the `between` method has been deprecated as of version 2.2.0, and
226
+ will be removed in version 3.3.0.
247
227
 
248
- (previously `.between_times` was an alias to `.between`). Mongoid already provides
249
- a native `.between`
228
+ Please use `between_times` instead.
250
229
 
251
- finder method that we do not want to mask. ActiveRecord users may continue to use
252
- either method.
230
+
231
+ * Mongoid: the `between` method has been removed as of version 2.2.0, as it conflicts
232
+ with the native Mongoid `between`
233
+
234
+ method. Please use `between_times` instead.
253
235
 
254
236
 
255
237
  * Chronic gem (used for time string parsing) has been removed as a hard dependency
@@ -265,22 +247,20 @@ rdoc_options: []
265
247
  require_paths:
266
248
  - lib
267
249
  required_ruby_version: !ruby/object:Gem::Requirement
268
- none: false
269
250
  requirements:
270
251
  - - ! '>='
271
252
  - !ruby/object:Gem::Version
272
253
  version: '0'
273
254
  required_rubygems_version: !ruby/object:Gem::Requirement
274
- none: false
275
255
  requirements:
276
- - - ! '>'
256
+ - - ! '>='
277
257
  - !ruby/object:Gem::Version
278
- version: 1.3.1
258
+ version: '0'
279
259
  requirements: []
280
260
  rubyforge_project:
281
- rubygems_version: 1.8.28
261
+ rubygems_version: 2.2.1
282
262
  signing_key:
283
- specification_version: 3
263
+ specification_version: 4
284
264
  summary: ActiveRecord and Mongoid extension for easier date scopes and time ranges
285
265
  test_files:
286
266
  - spec/database.yml
@@ -300,6 +280,9 @@ test_files:
300
280
  - spec/integration/shared/by_weekend.rb
301
281
  - spec/integration/shared/by_year.rb
302
282
  - spec/integration/shared/offset_parameter.rb
283
+ - spec/integration/shared/relative.rb
284
+ - spec/integration/shared/scope_parameter.rb
303
285
  - spec/spec_helper.rb
304
286
  - spec/unit/kernel_time_spec.rb
305
287
  - spec/unit/normalization_spec.rb
288
+ has_rdoc: