activerecord-time-scope 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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