first_after_created_at 0.0.2 → 0.0.3
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/MIT-LICENSE +1 -1
- data/lib/first_after_created_at.rb +26 -30
- data/lib/first_after_created_at/version.rb +1 -1
- data/lib/tasks/first_after_created_at_tasks.rake +4 -0
- data/test/dummy/app/models/has_timestamp.rb +2 -0
- data/test/dummy/config/database.yml +3 -17
- data/test/dummy/db/migrate/20170802143942_create_has_timestamps.rb +8 -0
- data/test/dummy/db/schema.rb +21 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +10 -0
- data/test/dummy/log/test.log +35745 -0
- data/test/dummy/test/fixtures/has_timestamps.yml +11 -0
- data/test/dummy/test/models/has_timestamp_test.rb +7 -0
- data/test/first_after_created_at_test.rb +35 -2
- data/test/test_helper.rb +3 -0
- metadata +34 -3
- data/README.rdoc +0 -3
@@ -0,0 +1,11 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
2
|
+
|
3
|
+
# This model initially had no columns defined. If you add columns to the
|
4
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
5
|
+
# below each fixture, per the syntax in the comments below
|
6
|
+
#
|
7
|
+
one: {}
|
8
|
+
# column: value
|
9
|
+
#
|
10
|
+
two: {}
|
11
|
+
# column: value
|
@@ -1,7 +1,40 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class FirstAfterCreatedAtTest < ActiveSupport::TestCase
|
4
|
-
test
|
5
|
-
|
4
|
+
test 'returns nil if no object exists' do
|
5
|
+
assert_nil HasTimestamp.first_after_created_at(Time.now)
|
6
|
+
end
|
7
|
+
|
8
|
+
test 'returns nil if no object meets criteria' do
|
9
|
+
HasTimestamp.create
|
10
|
+
assert_nil HasTimestamp.first_after_created_at(1.hour.from_now)
|
11
|
+
end
|
12
|
+
|
13
|
+
test 'can return the first object' do
|
14
|
+
obj = HasTimestamp.create
|
15
|
+
HasTimestamp.create
|
16
|
+
assert_equal obj, HasTimestamp.first_after_created_at(1.hour.ago)
|
17
|
+
end
|
18
|
+
|
19
|
+
test "will ignore first object if it's out of scope" do
|
20
|
+
HasTimestamp.create
|
21
|
+
obj = HasTimestamp.create(created_at: 2.hours.from_now)
|
22
|
+
|
23
|
+
assert_equal obj, HasTimestamp.first_after_created_at(1.hour.from_now)
|
24
|
+
end
|
25
|
+
|
26
|
+
test 'given two objects with same created at, returns one with min id' do
|
27
|
+
obj = HasTimestamp.create
|
28
|
+
HasTimestamp.create(created_at: obj.created_at)
|
29
|
+
|
30
|
+
assert_equal obj, HasTimestamp.first_after_created_at(1.hour.ago)
|
31
|
+
end
|
32
|
+
|
33
|
+
test 'can return the middle object' do
|
34
|
+
objs = Array.new(3) do |n|
|
35
|
+
HasTimestamp.create(created_at: n.hours.from_now)
|
36
|
+
end
|
37
|
+
middle = objs[1]
|
38
|
+
assert_equal middle, HasTimestamp.first_after_created_at(middle.created_at)
|
6
39
|
end
|
7
40
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,6 +3,9 @@ ENV["RAILS_ENV"] = "test"
|
|
3
3
|
|
4
4
|
require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
|
5
5
|
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
|
6
|
+
ActiveRecord::Migrator.up File.expand_path("../../test/dummy/db/migrate", __FILE__)
|
7
|
+
ActiveRecord::Migration.maintain_test_schema!
|
8
|
+
|
6
9
|
require "rails/test_help"
|
7
10
|
|
8
11
|
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: first_after_created_at
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Glass
|
8
|
+
- quelledanielle
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2017-
|
12
|
+
date: 2017-08-03 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activerecord
|
@@ -38,6 +39,20 @@ dependencies:
|
|
38
39
|
- - ">="
|
39
40
|
- !ruby/object:Gem::Version
|
40
41
|
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rails
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 4.2.9
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 4.2.9
|
41
56
|
description: adds a first_by_created_at class method to active record models that
|
42
57
|
search by binary search through auto-ascending primary key ids
|
43
58
|
email:
|
@@ -47,16 +62,17 @@ extensions: []
|
|
47
62
|
extra_rdoc_files: []
|
48
63
|
files:
|
49
64
|
- MIT-LICENSE
|
50
|
-
- README.rdoc
|
51
65
|
- Rakefile
|
52
66
|
- lib/first_after_created_at.rb
|
53
67
|
- lib/first_after_created_at/version.rb
|
68
|
+
- lib/tasks/first_after_created_at_tasks.rake
|
54
69
|
- test/dummy/README.rdoc
|
55
70
|
- test/dummy/Rakefile
|
56
71
|
- test/dummy/app/assets/javascripts/application.js
|
57
72
|
- test/dummy/app/assets/stylesheets/application.css
|
58
73
|
- test/dummy/app/controllers/application_controller.rb
|
59
74
|
- test/dummy/app/helpers/application_helper.rb
|
75
|
+
- test/dummy/app/models/has_timestamp.rb
|
60
76
|
- test/dummy/app/views/layouts/application.html.erb
|
61
77
|
- test/dummy/bin/bundle
|
62
78
|
- test/dummy/bin/rails
|
@@ -82,10 +98,17 @@ files:
|
|
82
98
|
- test/dummy/config/locales/en.yml
|
83
99
|
- test/dummy/config/routes.rb
|
84
100
|
- test/dummy/config/secrets.yml
|
101
|
+
- test/dummy/db/migrate/20170802143942_create_has_timestamps.rb
|
102
|
+
- test/dummy/db/schema.rb
|
103
|
+
- test/dummy/db/test.sqlite3
|
104
|
+
- test/dummy/log/development.log
|
105
|
+
- test/dummy/log/test.log
|
85
106
|
- test/dummy/public/404.html
|
86
107
|
- test/dummy/public/422.html
|
87
108
|
- test/dummy/public/500.html
|
88
109
|
- test/dummy/public/favicon.ico
|
110
|
+
- test/dummy/test/fixtures/has_timestamps.yml
|
111
|
+
- test/dummy/test/models/has_timestamp_test.rb
|
89
112
|
- test/first_after_created_at_test.rb
|
90
113
|
- test/test_helper.rb
|
91
114
|
homepage: https://github.com/NoRedInk/first_after_created_at
|
@@ -118,6 +141,7 @@ test_files:
|
|
118
141
|
- test/dummy/app/assets/stylesheets/application.css
|
119
142
|
- test/dummy/app/controllers/application_controller.rb
|
120
143
|
- test/dummy/app/helpers/application_helper.rb
|
144
|
+
- test/dummy/app/models/has_timestamp.rb
|
121
145
|
- test/dummy/app/views/layouts/application.html.erb
|
122
146
|
- test/dummy/bin/bundle
|
123
147
|
- test/dummy/bin/rails
|
@@ -143,11 +167,18 @@ test_files:
|
|
143
167
|
- test/dummy/config/routes.rb
|
144
168
|
- test/dummy/config/secrets.yml
|
145
169
|
- test/dummy/config.ru
|
170
|
+
- test/dummy/db/migrate/20170802143942_create_has_timestamps.rb
|
171
|
+
- test/dummy/db/schema.rb
|
172
|
+
- test/dummy/db/test.sqlite3
|
173
|
+
- test/dummy/log/development.log
|
174
|
+
- test/dummy/log/test.log
|
146
175
|
- test/dummy/public/404.html
|
147
176
|
- test/dummy/public/422.html
|
148
177
|
- test/dummy/public/500.html
|
149
178
|
- test/dummy/public/favicon.ico
|
150
179
|
- test/dummy/Rakefile
|
151
180
|
- test/dummy/README.rdoc
|
181
|
+
- test/dummy/test/fixtures/has_timestamps.yml
|
182
|
+
- test/dummy/test/models/has_timestamp_test.rb
|
152
183
|
- test/first_after_created_at_test.rb
|
153
184
|
- test/test_helper.rb
|
data/README.rdoc
DELETED