activerecord-time-scope 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a47d07140b93b71ecc7b8b4b69aad8eca6ace3e2
4
- data.tar.gz: 0b00cb660f8003ba42e2aa24e18b9a3b427afcc6
3
+ metadata.gz: 371764ccbdc580176d978b5e7b69ee720b28fe62
4
+ data.tar.gz: 45dfca027bfc038cdc2cafe771201b24d90b9900
5
5
  SHA512:
6
- metadata.gz: aefcda06d0a7f805eba9dd43622beb09de6f63e4ffc835082a130ea8c57c67758b6216e2db9dc1421ba813851acfd0c87edcb9b0b7bb06f971abfd790284b21a
7
- data.tar.gz: 9cf87bf678472ccc200e91cf2b20461f657071b75f2585ecad336953f512af7e603b50dd6633b78eba9302be9481a4d04b183d89317a6bea8b4dbe44575a4efe
6
+ metadata.gz: 4f59e7cb0ef3876bc948b927091b0ec11fb679dbfd20eff57d2f0e48a23e72a80979f4f5947111477351d0e9e6844c366ef7148b22e2f36f0dce6f615224ae14
7
+ data.tar.gz: a66a5faee07bbded9c3a0ce489e11096ca0b98981c2660b5d6d8a74c804ccd1dff90560b510db44d762b172f9e333d8aeca5bc7d2a394f70c749e4bde56dc48f
@@ -6,11 +6,14 @@ rvm:
6
6
  - 2.1
7
7
 
8
8
  env:
9
- -
10
- - ACTIVE_RECORD_VERSION=3.2.0
11
- - ACTIVE_RECORD_VERSION=4.0.0
12
- - ACTIVE_RECORD_VERSION=4.1.0
13
- - ACTIVE_RECORD_VERSION=4.2.0.beta2
9
+ global:
10
+ - CODECLIMATE_REPO_TOKEN=9c215b69f33357ece2af42829259ad13f704172c052587a22cefcee2450bcc71
11
+ matrix:
12
+ -
13
+ - ACTIVE_RECORD_VERSION=3.2.0
14
+ - ACTIVE_RECORD_VERSION=4.0.0
15
+ - ACTIVE_RECORD_VERSION=4.1.0
16
+ - ACTIVE_RECORD_VERSION=4.2.0.rc1
14
17
 
15
18
  script: "bundle exec rake spec"
16
19
 
data/Gemfile CHANGED
@@ -4,5 +4,6 @@ gem "activerecord", "~> #{ENV['ACTIVE_RECORD_VERSION']}" if ENV['ACTIVE_RECORD_V
4
4
 
5
5
  gem "sqlite3"
6
6
  gem 'database_cleaner'
7
+ gem "codeclimate-test-reporter", group: :test, require: nil
7
8
 
8
9
  gemspec
data/README.md CHANGED
@@ -115,8 +115,8 @@ Copyright (c) 2014 Daisuke Taniwaki. See [LICENSE](LICENSE) for details.
115
115
  [build-link]: http://travis-ci.org/dtaniwaki/activerecord-time-scope
116
116
  [deps-image]: https://gemnasium.com/dtaniwaki/activerecord-time-scope.svg
117
117
  [deps-link]: https://gemnasium.com/dtaniwaki/activerecord-time-scope
118
- [cov-image]: https://coveralls.io/repos/dtaniwaki/activerecord-time-scope/badge.png
119
- [cov-link]: https://coveralls.io/r/dtaniwaki/activerecord-time-scope
118
+ [cov-image]: https://codeclimate.com/github/dtaniwaki/activerecord-time-scope/badges/coverage.svg
119
+ [cov-link]: https://codeclimate.com/github/dtaniwaki/activerecord-time-scope
120
120
  [gpa-image]: https://codeclimate.com/github/dtaniwaki/activerecord-time-scope.png
121
121
  [gpa-link]: https://codeclimate.com/github/dtaniwaki/activerecord-time-scope
122
122
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -20,5 +20,4 @@ Gem::Specification.new do |gem|
20
20
 
21
21
  gem.add_development_dependency "rake"
22
22
  gem.add_development_dependency "rspec", ">= 3.0"
23
- gem.add_development_dependency "coveralls"
24
23
  end
@@ -31,9 +31,11 @@ module ActiveRecord
31
31
  model = self
32
32
  from_name = "#{table_name}.#{from_name}"
33
33
  to_name = "#{table_name}.#{to_name}"
34
- model.scope "#{verb}_before", ->(time, opts = {}){ TimeRangeProxy.new(model, from_name, to_name).before(time, opts) }
34
+ scope "#{verb}_before", ->(time, opts = {}){ TimeRangeProxy.new(model, from_name, to_name).before(time, opts) }
35
35
  scope "#{verb}_after", ->(time, opts = {}){ TimeRangeProxy.new(model, from_name, to_name).after(time, opts) }
36
36
  scope "#{verb}_within", ->(from, to, from_opts = {}, to_opts = {}){ TimeRangeProxy.new(model, from_name, to_name).within(from, to, from_opts, to_opts) }
37
+ scope "#{verb}_at", ->(dt, opts = {}){ TimeRangeProxy.new(model, from_name, to_name).at(dt, opts) }
38
+ scope "#{verb}_on", ->(dt, opts = {}){ TimeRangeProxy.new(model, from_name, to_name).at(dt, opts) }
37
39
  end
38
40
  end
39
41
  end
@@ -24,6 +24,12 @@ module ActiveRecord
24
24
  to_operator = to_opts[:include_equal].to_s != '' ? '<=' : '<'
25
25
  @model.where("? #{from_operator} #{@column_name1} AND #{@column_name2} #{to_operator} ?", from, to)
26
26
  end
27
+
28
+ def at(dt, opts = {})
29
+ operator = opts[:include_equal].to_s != '' ? '<=' : '<'
30
+ @model.where("#{@column_name1} #{operator} ? AND ? #{operator} #{@column_name2}", dt, dt)
31
+ end
32
+ alias_method :on, :at
27
33
  end
28
34
  end
29
35
  end
@@ -1,8 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'database_cleaner'
3
3
  require 'simplecov'
4
- require 'coveralls'
5
- Coveralls.wear!
4
+ require "codeclimate-test-reporter"
5
+ CodeClimate::TestReporter.start
6
6
 
7
7
  SimpleCov.start do
8
8
  add_filter 'spec/'
@@ -247,4 +247,64 @@ RSpec.describe ActiveRecord::TimeScope::TimeRangeProxy do
247
247
  end
248
248
  end
249
249
  end
250
+ describe "::wow_at" do
251
+ shared_examples "at" do
252
+ before do
253
+ klass.create! foo: time + 100.days, bar: time + 100.days
254
+ end
255
+ let(:options) { {} }
256
+ let(:a) { false }
257
+ let(:b) { false }
258
+ let(:c) { false }
259
+ let(:d) { false }
260
+ let(:e) { false }
261
+ subject { klass.wow_at(time, options) == [model] }
262
+ # A
263
+ # .=====.
264
+ # ......!
265
+ context "foo < bar < time" do
266
+ let!(:model) { klass.create! foo: time - 2.days, bar: time - 1.days }
267
+ it { is_expected.to be a }
268
+ end
269
+ # B
270
+ # .=====.
271
+ # .....!.
272
+ context "foo < bar = time" do
273
+ let!(:model) { klass.create! foo: time - 2.days, bar: time }
274
+ it { is_expected.to be b }
275
+ end
276
+ # C
277
+ # .=====.
278
+ # !......
279
+ context "time < foo < bar" do
280
+ let!(:model) { klass.create! foo: time + 1.days, bar: time + 2.days }
281
+ it { is_expected.to be c }
282
+ end
283
+ # D
284
+ # .=====.
285
+ # .!.....
286
+ context "time = foo < bar" do
287
+ let!(:model) { klass.create! foo: time, bar: time + 2.days }
288
+ it { is_expected.to be d }
289
+ end
290
+ # E
291
+ # .=====.
292
+ # ...!...
293
+ context "foo < time < bar" do
294
+ let!(:model) { klass.create! foo: time - 1.days, bar: time + 1.days }
295
+ it { is_expected.to be e }
296
+ end
297
+ end
298
+ it_behaves_like "at" do
299
+ let(:e) { true }
300
+ end
301
+ context "with include_equal option" do
302
+ it_behaves_like "at" do
303
+ let(:options) { {include_equal: true} }
304
+ let(:b) { true }
305
+ let(:d) { true }
306
+ let(:e) { true }
307
+ end
308
+ end
309
+ end
250
310
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-time-scope
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daisuke Taniwaki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-21 00:00:00.000000000 Z
11
+ date: 2014-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: coveralls
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  description: Time-Related Scope for ActiveRecord
70
56
  email:
71
57
  - daisuketaniwaki@gmail.com
@@ -113,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
99
  version: '0'
114
100
  requirements: []
115
101
  rubyforge_project:
116
- rubygems_version: 2.2.2
102
+ rubygems_version: 2.4.3
117
103
  signing_key:
118
104
  specification_version: 4
119
105
  summary: Time-Related Scope for ActiveRecord