date_filter 0.9.1 → 1.0.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.
- data/.rspec +2 -0
- data/Rakefile +6 -0
- data/date_filter.gemspec +4 -0
- data/lib/date_filter.rb +2 -8
- data/lib/date_filter/version.rb +1 -1
- data/spec/date_filter_spec.rb +49 -0
- data/spec/models.rb +7 -0
- data/spec/schema.rb +12 -0
- data/spec/spec_helper.rb +19 -0
- metadata +46 -6
data/.rspec
ADDED
data/Rakefile
CHANGED
data/date_filter.gemspec
CHANGED
@@ -12,6 +12,10 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{Adds newest and oldest methods to ActiveRecord}
|
13
13
|
s.description = %q{Adds newest and oldest methods to ActiveRecord}
|
14
14
|
|
15
|
+
s.add_development_dependency "rspec"
|
16
|
+
s.add_development_dependency "sqlite3"
|
17
|
+
s.add_development_dependency "activerecord"
|
18
|
+
|
15
19
|
s.rubyforge_project = "date_filter"
|
16
20
|
|
17
21
|
s.files = `git ls-files`.split("\n")
|
data/lib/date_filter.rb
CHANGED
@@ -1,12 +1,6 @@
|
|
1
1
|
|
2
|
-
require 'active_support'
|
3
2
|
require 'active_record'
|
4
|
-
require 'date_filter/base'
|
3
|
+
require File.expand_path('../date_filter/base', __FILE__)
|
5
4
|
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
ActiveSupport.on_load(:active_record) do
|
10
|
-
include DateFilter::Base
|
11
|
-
end
|
5
|
+
ActiveRecord::Base.class_eval { include DateFilter::Base }
|
12
6
|
|
data/lib/date_filter/version.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
require File.expand_path('../spec_helper', __FILE__)
|
3
|
+
|
4
|
+
describe DateFilter do
|
5
|
+
before :each do
|
6
|
+
User.delete_all
|
7
|
+
Quality.delete_all
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should add method newest to all models" do
|
11
|
+
ActiveRecord::Base.should respond_to(:newest)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should add method oldest to all models" do
|
15
|
+
ActiveRecord::Base.should respond_to(:oldest)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "newest should return nil for empty table" do
|
19
|
+
User.newest.should eq nil
|
20
|
+
end
|
21
|
+
|
22
|
+
it "oldest should return nil for empty table" do
|
23
|
+
User.oldest.should eq nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it "newest should equal oldest for single record table" do
|
27
|
+
User.create :name => "Tom"
|
28
|
+
|
29
|
+
User.newest.should eq User.oldest
|
30
|
+
end
|
31
|
+
|
32
|
+
it "newest should return last record created" do
|
33
|
+
[ "Tom", "Dick", "Harry" ].each { |n| User.create :name => n }
|
34
|
+
|
35
|
+
User.newest.name.should eq "Harry"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "oldest should return first record created" do
|
39
|
+
[ "Tom", "Dick", "Harry" ].each { |n| User.create :name => n }
|
40
|
+
|
41
|
+
User.oldest.name.should eq "Tom"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should raise ActiveRecord::StatementInvalid for models without created_at" do
|
45
|
+
expect { Quality.newest }.to raise_error ActiveRecord::StatementInvalid
|
46
|
+
expect { Quality.oldest }.to raise_error ActiveRecord::StatementInvalid
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
data/spec/models.rb
ADDED
data/spec/schema.rb
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
require 'bundler'
|
3
|
+
|
4
|
+
Bundler.setup
|
5
|
+
Bundler.require
|
6
|
+
|
7
|
+
# create an in-memory sqlite3 database
|
8
|
+
ActiveRecord::Base.establish_connection(
|
9
|
+
:adapter => "sqlite3",
|
10
|
+
:database => ":memory:"
|
11
|
+
)
|
12
|
+
|
13
|
+
# load the schema without output
|
14
|
+
ActiveRecord::Migration.verbose = false
|
15
|
+
load File.expand_path('../schema.rb', __FILE__)
|
16
|
+
|
17
|
+
# load the models
|
18
|
+
load File.expand_path('../models.rb', __FILE__)
|
19
|
+
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: date_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 1.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Anthony Lewis
|
@@ -10,10 +10,42 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-27 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rspec
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sqlite3
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: activerecord
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id003
|
17
49
|
description: Adds newest and oldest methods to ActiveRecord
|
18
50
|
email:
|
19
51
|
- me@anthonylewis.com
|
@@ -25,6 +57,7 @@ extra_rdoc_files: []
|
|
25
57
|
|
26
58
|
files:
|
27
59
|
- .gitignore
|
60
|
+
- .rspec
|
28
61
|
- Gemfile
|
29
62
|
- LICENSE
|
30
63
|
- README.md
|
@@ -33,6 +66,10 @@ files:
|
|
33
66
|
- lib/date_filter.rb
|
34
67
|
- lib/date_filter/base.rb
|
35
68
|
- lib/date_filter/version.rb
|
69
|
+
- spec/date_filter_spec.rb
|
70
|
+
- spec/models.rb
|
71
|
+
- spec/schema.rb
|
72
|
+
- spec/spec_helper.rb
|
36
73
|
has_rdoc: true
|
37
74
|
homepage: ""
|
38
75
|
licenses: []
|
@@ -61,5 +98,8 @@ rubygems_version: 1.6.2
|
|
61
98
|
signing_key:
|
62
99
|
specification_version: 3
|
63
100
|
summary: Adds newest and oldest methods to ActiveRecord
|
64
|
-
test_files:
|
65
|
-
|
101
|
+
test_files:
|
102
|
+
- spec/date_filter_spec.rb
|
103
|
+
- spec/models.rb
|
104
|
+
- spec/schema.rb
|
105
|
+
- spec/spec_helper.rb
|