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 ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
1
  require 'bundler'
2
+ require "rspec/core/rake_task"
3
+
2
4
  Bundler::GemHelper.install_tasks
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
8
+
@@ -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")
@@ -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
- module DateFilter
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
 
@@ -1,3 +1,3 @@
1
1
  module DateFilter
2
- VERSION = "0.9.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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
+
@@ -0,0 +1,7 @@
1
+
2
+ class User < ActiveRecord::Base
3
+ end
4
+
5
+ class Quality < ActiveRecord::Base
6
+ end
7
+
@@ -0,0 +1,12 @@
1
+
2
+ ActiveRecord::Schema.define do
3
+ create_table "users", :force => true do |t|
4
+ t.string "name"
5
+ t.datetime "created_at"
6
+ t.datetime "updated_at"
7
+ end
8
+
9
+ create_table "qualities", :force => true do |t|
10
+ t.string "name"
11
+ end
12
+ end
@@ -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.9.1
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-22 00:00:00 -05:00
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