acts_as_defaultable 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.
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ source "http://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  # jquery-rails is used by the dummy application
9
- gem "jquery-rails"
9
+ #gem "jquery-rails"
10
10
 
11
11
  # Declare any dependencies that are still in development here instead of in
12
12
  # your gemspec. These might include edge Rails or gems from your path or
data/Gemfile.lock CHANGED
@@ -17,40 +17,40 @@ GIT
17
17
  PATH
18
18
  remote: .
19
19
  specs:
20
- acts_as_defaultable (0.0.2)
21
- rails (~> 3.2.0.rc2)
20
+ acts_as_defaultable (0.0.3)
21
+ rails (= 3.2.0)
22
22
 
23
23
  GEM
24
24
  remote: http://rubygems.org/
25
25
  specs:
26
- actionmailer (3.2.0.rc2)
27
- actionpack (= 3.2.0.rc2)
28
- mail (~> 2.3.0)
29
- actionpack (3.2.0.rc2)
30
- activemodel (= 3.2.0.rc2)
31
- activesupport (= 3.2.0.rc2)
26
+ actionmailer (3.2.0)
27
+ actionpack (= 3.2.0)
28
+ mail (~> 2.4.0)
29
+ actionpack (3.2.0)
30
+ activemodel (= 3.2.0)
31
+ activesupport (= 3.2.0)
32
32
  builder (~> 3.0.0)
33
33
  erubis (~> 2.7.0)
34
- journey (~> 1.0.0.rc1)
34
+ journey (~> 1.0.0)
35
35
  rack (~> 1.4.0)
36
36
  rack-cache (~> 1.1)
37
37
  rack-test (~> 0.6.1)
38
38
  sprockets (~> 2.1.2)
39
- activemodel (3.2.0.rc2)
40
- activesupport (= 3.2.0.rc2)
39
+ activemodel (3.2.0)
40
+ activesupport (= 3.2.0)
41
41
  builder (~> 3.0.0)
42
- activerecord (3.2.0.rc2)
43
- activemodel (= 3.2.0.rc2)
44
- activesupport (= 3.2.0.rc2)
45
- arel (~> 3.0.0.rc1)
42
+ activerecord (3.2.0)
43
+ activemodel (= 3.2.0)
44
+ activesupport (= 3.2.0)
45
+ arel (~> 3.0.0)
46
46
  tzinfo (~> 0.3.29)
47
- activeresource (3.2.0.rc2)
48
- activemodel (= 3.2.0.rc2)
49
- activesupport (= 3.2.0.rc2)
50
- activesupport (3.2.0.rc2)
47
+ activeresource (3.2.0)
48
+ activemodel (= 3.2.0)
49
+ activesupport (= 3.2.0)
50
+ activesupport (3.2.0)
51
51
  i18n (~> 0.6)
52
52
  multi_json (~> 1.0)
53
- arel (3.0.0.rc1)
53
+ arel (3.0.0)
54
54
  builder (3.0.0)
55
55
  diff-lcs (1.1.3)
56
56
  erubis (2.7.0)
@@ -67,13 +67,10 @@ GEM
67
67
  guard (>= 0.10.0)
68
68
  hike (1.2.1)
69
69
  i18n (0.6.0)
70
- journey (1.0.0.rc4)
71
- jquery-rails (2.0.0)
72
- railties (>= 3.2.0.beta, < 5.0)
73
- thor (~> 0.14)
74
- json (1.6.4)
75
- libnotify (0.7.1)
76
- mail (2.3.0)
70
+ journey (1.0.0)
71
+ json (1.6.5)
72
+ libnotify (0.7.0)
73
+ mail (2.4.1)
77
74
  i18n (>= 0.4.0)
78
75
  mime-types (~> 1.16)
79
76
  treetop (~> 1.4.8)
@@ -81,24 +78,24 @@ GEM
81
78
  multi_json (1.0.4)
82
79
  mysql2 (0.3.11)
83
80
  polyglot (0.3.3)
84
- rack (1.4.0)
81
+ rack (1.4.1)
85
82
  rack-cache (1.1)
86
83
  rack (>= 0.4)
87
84
  rack-ssl (1.3.2)
88
85
  rack
89
86
  rack-test (0.6.1)
90
87
  rack (>= 1.0)
91
- rails (3.2.0.rc2)
92
- actionmailer (= 3.2.0.rc2)
93
- actionpack (= 3.2.0.rc2)
94
- activerecord (= 3.2.0.rc2)
95
- activeresource (= 3.2.0.rc2)
96
- activesupport (= 3.2.0.rc2)
88
+ rails (3.2.0)
89
+ actionmailer (= 3.2.0)
90
+ actionpack (= 3.2.0)
91
+ activerecord (= 3.2.0)
92
+ activeresource (= 3.2.0)
93
+ activesupport (= 3.2.0)
97
94
  bundler (~> 1.0)
98
- railties (= 3.2.0.rc2)
99
- railties (3.2.0.rc2)
100
- actionpack (= 3.2.0.rc2)
101
- activesupport (= 3.2.0.rc2)
95
+ railties (= 3.2.0)
96
+ railties (3.2.0)
97
+ actionpack (= 3.2.0)
98
+ activesupport (= 3.2.0)
102
99
  rack-ssl (~> 1.3.2)
103
100
  rake (>= 0.8.7)
104
101
  rdoc (~> 3.4)
@@ -135,7 +132,6 @@ DEPENDENCIES
135
132
  database_cleaner!
136
133
  factory_girl_rails
137
134
  guard-rspec
138
- jquery-rails
139
135
  libnotify
140
136
  mysql2
141
137
  rb-fsevent
data/README.rdoc CHANGED
@@ -12,7 +12,7 @@ In your Gemfile
12
12
 
13
13
  gem 'acts_as_defaultable'
14
14
 
15
- Currently is tested on rails3.2.0.rc1, ruby 1.9.3 and mysql
15
+ Currently is tested on rails3.2.0.rc1, rails3.2.0.rc2, ruby 1.9.3 and mysql
16
16
 
17
17
  == Example
18
18
 
@@ -29,6 +29,8 @@ Currently is tested on rails3.2.0.rc1, ruby 1.9.3 and mysql
29
29
  uk.save
30
30
  Country.default == gr # => false
31
31
 
32
+ If no options provived +default+ column is assumed.
33
+
32
34
  == Notes
33
35
 
34
36
  The option to acts_as_defaultable is the +column+ of the Model that defines default behaviour.
@@ -20,13 +20,15 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ['lib']
21
21
  #s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
22
22
 
23
- s.add_dependency "rails", "~> 3.2.0.rc2"
23
+ s.add_dependency "rails", "3.2.0"
24
24
 
25
- s.add_development_dependency "mysql2"
25
+ s.add_development_dependency 'mysql2'
26
+ s.add_development_dependency 'rspec-rails'
26
27
  s.add_development_dependency 'factory_girl_rails'
27
28
  s.add_development_dependency 'spork', '0.9.0.rc9'
28
29
  s.add_development_dependency 'rb-fsevent'
29
30
  s.add_development_dependency 'guard-rspec'
30
31
  s.add_development_dependency 'libnotify'
32
+ s.add_development_dependency 'database_cleaner'
31
33
 
32
34
  end
@@ -8,7 +8,9 @@ module ActsAsDefaultable
8
8
 
9
9
  after_save :set_unique_default
10
10
 
11
- column = options.first.to_sym
11
+ column = options.first.to_sym unless options.blank?
12
+ column ||= :default
13
+
12
14
  puts "acts_as_defaultable: Specify a column #{column} in #{self.to_s}" unless self.column_names.include?(column.to_s)
13
15
 
14
16
  if self.column_names.include?(column.to_s)
@@ -1,3 +1,3 @@
1
1
  module ActsAsDefaultable
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,3 @@
1
+ class TestDefault < ActiveRecord::Base
2
+ acts_as_defaultable
3
+ end
@@ -0,0 +1,9 @@
1
+ class CreateTestDefaults < ActiveRecord::Migration
2
+ def change
3
+ create_table :test_defaults do |t|
4
+ t.string :name
5
+ t.boolean :default, default: false
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -11,7 +11,11 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20120104140205) do
14
+ <<<<<<< HEAD
15
+ ActiveRecord::Schema.define(:version => 20120105110842) do
16
+ =======
17
+ ActiveRecord::Schema.define(:version => 20120104234100) do
18
+ >>>>>>> a78d85a48420ac87365e2329405c3644dc18a672
15
19
 
16
20
  create_table "anothers", :force => true do |t|
17
21
  t.string "test"
@@ -34,6 +38,13 @@ ActiveRecord::Schema.define(:version => 20120104140205) do
34
38
  t.datetime "updated_at", :null => false
35
39
  end
36
40
 
41
+ create_table "posts", :force => true do |t|
42
+ t.string "name"
43
+ t.integer "user_id"
44
+ t.datetime "created_at", :null => false
45
+ t.datetime "updated_at", :null => false
46
+ end
47
+
37
48
  create_table "string_defaults", :force => true do |t|
38
49
  t.string "name"
39
50
  t.string "default"
@@ -41,4 +52,26 @@ ActiveRecord::Schema.define(:version => 20120104140205) do
41
52
  t.datetime "updated_at", :null => false
42
53
  end
43
54
 
55
+ <<<<<<< HEAD
56
+ create_table "users", :force => true do |t|
57
+ t.string "role"
58
+ t.string "name"
59
+ t.datetime "created_at", :null => false
60
+ t.datetime "updated_at", :null => false
61
+ end
62
+
63
+ create_table "without_cancans", :force => true do |t|
64
+ t.string "name"
65
+ t.integer "position"
66
+ t.datetime "created_at", :null => false
67
+ t.datetime "updated_at", :null => false
68
+ =======
69
+ create_table "test_defaults", :force => true do |t|
70
+ t.string "name"
71
+ t.boolean "default", :default => false
72
+ t.datetime "created_at", :null => false
73
+ t.datetime "updated_at", :null => false
74
+ >>>>>>> a78d85a48420ac87365e2329405c3644dc18a672
75
+ end
76
+
44
77
  end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :td_one, class: TestDefault do
3
+ name 'one'
4
+ default false
5
+ end
6
+
7
+ factory :td_two, class: TestDefault do
8
+ name 'two'
9
+ default false
10
+ end
11
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe TestDefault do
4
+
5
+ let(:one) { Factory.build(:td_one) }
6
+ let(:two) { Factory.build(:td_two) }
7
+
8
+ it 'should have a class method named default' do
9
+ TestDefault.respond_to?('default').should be_true
10
+ end
11
+
12
+ it 'should have a default column definition' do
13
+ TestDefault.respond_to?('default_column').should be_true
14
+ end
15
+
16
+ it 'should return the argument as the default column' do
17
+ TestDefault.default_column.should be_eql('default')
18
+ end
19
+
20
+ it 'should have a default positive value' do
21
+ TestDefault.default_positive_value.should be_eql(true)
22
+ end
23
+
24
+ it 'should have a default negative value' do
25
+ TestDefault.default_negative_value.should be_eql(false)
26
+ end
27
+
28
+ it 'should return nil if there is no default object' do
29
+ one.default = false
30
+ one.save
31
+ TestDefault.default.should be_nil
32
+ end
33
+
34
+ it 'should return a default object' do
35
+ one.default = true
36
+ one.save
37
+ TestDefault.default.should be_eql(one)
38
+ end
39
+
40
+ it 'should set unique default object' do
41
+ two.default = true
42
+ two.save
43
+ one.default = true
44
+ two.save
45
+ TestDefault.default.should be_eql(two)
46
+ end
47
+
48
+ it 'should return all defaults' do
49
+ one.default = true
50
+ one.save
51
+ two.default = true
52
+ two.save
53
+ TestDefault.all_defaults.size.should be_eql(1)
54
+ end
55
+
56
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_defaultable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-04 00:00:00.000000000 Z
12
+ date: 2012-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &77989910 !ruby/object:Gem::Requirement
16
+ requirement: &22096320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - =
20
20
  - !ruby/object:Gem::Version
21
- version: 3.2.0.rc2
21
+ version: 3.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *77989910
24
+ version_requirements: *22096320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mysql2
27
- requirement: &78017310 !ruby/object:Gem::Requirement
27
+ requirement: &22095620 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *22095620
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec-rails
38
+ requirement: &22094540 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *78017310
46
+ version_requirements: *22094540
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: factory_girl_rails
38
- requirement: &78015890 !ruby/object:Gem::Requirement
49
+ requirement: &22195660 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *78015890
57
+ version_requirements: *22195660
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: spork
49
- requirement: &78013400 !ruby/object:Gem::Requirement
60
+ requirement: &22194460 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - =
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 0.9.0.rc9
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *78013400
68
+ version_requirements: *22194460
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rb-fsevent
60
- requirement: &78011620 !ruby/object:Gem::Requirement
71
+ requirement: &22193240 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: '0'
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *78011620
79
+ version_requirements: *22193240
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: guard-rspec
71
- requirement: &78044680 !ruby/object:Gem::Requirement
82
+ requirement: &22191380 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,10 +87,21 @@ dependencies:
76
87
  version: '0'
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *78044680
90
+ version_requirements: *22191380
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: libnotify
82
- requirement: &78042620 !ruby/object:Gem::Requirement
93
+ requirement: &22189700 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *22189700
102
+ - !ruby/object:Gem::Dependency
103
+ name: database_cleaner
104
+ requirement: &22188840 !ruby/object:Gem::Requirement
83
105
  none: false
84
106
  requirements:
85
107
  - - ! '>='
@@ -87,7 +109,7 @@ dependencies:
87
109
  version: '0'
88
110
  type: :development
89
111
  prerelease: false
90
- version_requirements: *78042620
112
+ version_requirements: *22188840
91
113
  description: This 'acts_as' extension provides the capability for having a default
92
114
  object. The class that has this specified needs to have a default column defined
93
115
  as an integer, string or boolean on the mapped database table
@@ -121,6 +143,7 @@ files:
121
143
  - spec/dummy/app/models/boolean_default.rb
122
144
  - spec/dummy/app/models/fail_one.rb
123
145
  - spec/dummy/app/models/string_default.rb
146
+ - spec/dummy/app/models/test_default.rb
124
147
  - spec/dummy/app/views/layouts/application.html.erb
125
148
  - spec/dummy/config.ru
126
149
  - spec/dummy/config/application.rb
@@ -142,6 +165,7 @@ files:
142
165
  - spec/dummy/db/migrate/20120104112622_create_fail_ones.rb
143
166
  - spec/dummy/db/migrate/20120104135210_create_boolean_defaults.rb
144
167
  - spec/dummy/db/migrate/20120104140205_create_string_defaults.rb
168
+ - spec/dummy/db/migrate/20120104234100_create_test_defaults.rb
145
169
  - spec/dummy/db/schema.rb
146
170
  - spec/dummy/lib/assets/.gitkeep
147
171
  - spec/dummy/log/.gitkeep
@@ -154,10 +178,12 @@ files:
154
178
  - spec/factories/boolean_default.rb
155
179
  - spec/factories/fail_one.rb
156
180
  - spec/factories/string_default.rb
181
+ - spec/factories/test_default.rb
157
182
  - spec/models/another_spec.rb
158
183
  - spec/models/boolean_default_spec.rb
159
184
  - spec/models/fail_one_spec.rb
160
185
  - spec/models/string_default_spec.rb
186
+ - spec/models/test_default_spec.rb
161
187
  - spec/spec_helper.rb
162
188
  homepage: https://github.com/chief/acts_as_defaultable
163
189
  licenses: []
@@ -173,7 +199,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
173
199
  version: '0'
174
200
  segments:
175
201
  - 0
176
- hash: 925179279
202
+ hash: -1161643751702136176
177
203
  required_rubygems_version: !ruby/object:Gem::Requirement
178
204
  none: false
179
205
  requirements:
@@ -182,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
208
  version: '0'
183
209
  segments:
184
210
  - 0
185
- hash: 925179279
211
+ hash: -1161643751702136176
186
212
  requirements: []
187
213
  rubyforge_project:
188
214
  rubygems_version: 1.8.10