acts_as_defaultable 0.0.1

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.
Files changed (63) hide show
  1. data/.gitignore +7 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +19 -0
  4. data/Gemfile.lock +145 -0
  5. data/Guardfile +19 -0
  6. data/MIT-LICENSE +20 -0
  7. data/README.rdoc +29 -0
  8. data/Rakefile +27 -0
  9. data/acts_as_defaultable.gemspec +32 -0
  10. data/lib/acts_as_defaultable/version.rb +3 -0
  11. data/lib/acts_as_defaultable.rb +77 -0
  12. data/lib/tasks/acts_as_defaultable_tasks.rake +4 -0
  13. data/spec/dummy/README.rdoc +261 -0
  14. data/spec/dummy/Rakefile +7 -0
  15. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  16. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  17. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  18. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  19. data/spec/dummy/app/mailers/.gitkeep +0 -0
  20. data/spec/dummy/app/models/.gitkeep +0 -0
  21. data/spec/dummy/app/models/another.rb +7 -0
  22. data/spec/dummy/app/models/boolean_default.rb +3 -0
  23. data/spec/dummy/app/models/fail_one.rb +3 -0
  24. data/spec/dummy/app/models/string_default.rb +3 -0
  25. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  26. data/spec/dummy/config/application.rb +62 -0
  27. data/spec/dummy/config/boot.rb +10 -0
  28. data/spec/dummy/config/database.yml +42 -0
  29. data/spec/dummy/config/environment.rb +5 -0
  30. data/spec/dummy/config/environments/development.rb +37 -0
  31. data/spec/dummy/config/environments/production.rb +67 -0
  32. data/spec/dummy/config/environments/test.rb +37 -0
  33. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  34. data/spec/dummy/config/initializers/inflections.rb +15 -0
  35. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  36. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  37. data/spec/dummy/config/initializers/session_store.rb +8 -0
  38. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  39. data/spec/dummy/config/locales/en.yml +5 -0
  40. data/spec/dummy/config/routes.rb +58 -0
  41. data/spec/dummy/config.ru +4 -0
  42. data/spec/dummy/db/migrate/20120103170153_create_anothers.rb +9 -0
  43. data/spec/dummy/db/migrate/20120104112622_create_fail_ones.rb +11 -0
  44. data/spec/dummy/db/migrate/20120104135210_create_boolean_defaults.rb +9 -0
  45. data/spec/dummy/db/migrate/20120104140205_create_string_defaults.rb +10 -0
  46. data/spec/dummy/db/schema.rb +44 -0
  47. data/spec/dummy/lib/assets/.gitkeep +0 -0
  48. data/spec/dummy/log/.gitkeep +0 -0
  49. data/spec/dummy/public/404.html +26 -0
  50. data/spec/dummy/public/422.html +26 -0
  51. data/spec/dummy/public/500.html +25 -0
  52. data/spec/dummy/public/favicon.ico +0 -0
  53. data/spec/dummy/script/rails +6 -0
  54. data/spec/factories/another.rb +11 -0
  55. data/spec/factories/boolean_default.rb +11 -0
  56. data/spec/factories/fail_one.rb +6 -0
  57. data/spec/factories/string_default.rb +11 -0
  58. data/spec/models/another_spec.rb +58 -0
  59. data/spec/models/boolean_default_spec.rb +57 -0
  60. data/spec/models/fail_one_spec.rb +5 -0
  61. data/spec/models/string_default_spec.rb +56 -0
  62. data/spec/spec_helper.rb +82 -0
  63. metadata +193 -0
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :another do
3
+ test 'omg'
4
+ unique 0
5
+ end
6
+
7
+ factory :other, class: Another do
8
+ test 'omg1'
9
+ unique 1
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :boolean_default do
3
+ name 'test'
4
+ default false
5
+ end
6
+
7
+ factory :true_boolean_default, class: BooleanDefault do
8
+ name 'test2'
9
+ default true
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :fail_one do
3
+ name 'epic'
4
+ default false
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :string_default do
3
+ name 'test'
4
+ default 'off'
5
+ end
6
+
7
+ factory :true_string_default, class: StringDefault do
8
+ name 'test'
9
+ default 'on'
10
+ end
11
+ end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Another do
4
+
5
+ let(:another) { FactoryGirl.build(:another) }
6
+ let(:other) { FactoryGirl.build(:other) }
7
+
8
+ it 'should have a class method named default' do
9
+ Another.respond_to?('default').should be_true
10
+ end
11
+
12
+ it 'should have a default column definition' do
13
+ Another.respond_to?('default_column').should be_true
14
+ end
15
+
16
+ it 'should return the argument as the default column' do
17
+ Another.default_column.should be_eql('unique')
18
+ end
19
+
20
+ it 'should have a default positive value' do
21
+ Another.default_positive_value.should be_eql(1)
22
+ end
23
+
24
+ it 'should have a default negative value' do
25
+ Another.default_negative_value.should be_eql(0)
26
+ end
27
+
28
+ it 'should return nil if there is no default object' do
29
+ another.unique = 0
30
+ another.save
31
+ Another.default.should be_nil
32
+ end
33
+
34
+ it 'should return a default object' do
35
+ another.unique = 1
36
+ another.save
37
+ Another.default.should be_eql(another)
38
+ end
39
+
40
+ it 'should set unique default object' do
41
+ other.unique = 1
42
+ other.save
43
+ another.unique = 1
44
+ another.save
45
+ Another.default.should be_eql(another)
46
+ #other.unique.should be_eql(0)
47
+ end
48
+
49
+ it 'should return all defaults' do
50
+ another.unique = 1
51
+ another.save
52
+ other.unique = 1
53
+ other.save
54
+ Another.all_defaults.size.should be_eql(1)
55
+ end
56
+
57
+
58
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe BooleanDefault do
4
+
5
+ let(:one) { FactoryGirl.build(:boolean_default) }
6
+ let(:two) { FactoryGirl.build(:true_boolean_default) }
7
+
8
+ it 'should have a class method named default' do
9
+ BooleanDefault.respond_to?('default').should be_true
10
+ end
11
+
12
+ it 'should have a default column definition' do
13
+ BooleanDefault.respond_to?('default_column').should be_true
14
+ end
15
+
16
+ it 'should return the argument as the default column' do
17
+ BooleanDefault.default_column.should be_eql('default')
18
+ end
19
+
20
+ it 'should have a default positive value' do
21
+ BooleanDefault.default_positive_value.should be_eql(true)
22
+ end
23
+
24
+ it 'should have a default negative value' do
25
+ BooleanDefault.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
+ BooleanDefault.default.should be_nil
32
+ end
33
+
34
+ it 'should return a default object' do
35
+ one.default = true
36
+ one.save
37
+ BooleanDefault.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
+ BooleanDefault.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
+ BooleanDefault.all_defaults.size.should be_eql(1)
54
+ end
55
+
56
+
57
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe FailOne do
4
+ let(:fail_one) { FactoryGirl.build(:fail_one) }
5
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe StringDefault do
4
+
5
+ let(:one) { FactoryGirl.build(:string_default) }
6
+ let(:two) { FactoryGirl.build(:true_string_default) }
7
+
8
+ it 'should have a class method named default' do
9
+ StringDefault.respond_to?('default').should be_true
10
+ end
11
+
12
+ it 'should have a default column definition' do
13
+ StringDefault.respond_to?('default_column').should be_true
14
+ end
15
+
16
+ it 'should return the argument as the default column' do
17
+ StringDefault.default_column.should be_eql('default')
18
+ end
19
+
20
+ it 'should have a default positive value' do
21
+ StringDefault.default_positive_value.should be_eql("on")
22
+ end
23
+
24
+ it 'should have a default negative value' do
25
+ StringDefault.default_negative_value.should be_eql('off')
26
+ end
27
+
28
+ it 'should return nil if there is no default object' do
29
+ one.default = 'off'
30
+ one.save
31
+ StringDefault.default.should be_nil
32
+ end
33
+
34
+ it 'should return a default object' do
35
+ one.default = 'on'
36
+ one.save
37
+ StringDefault.default.should be_eql(one)
38
+ end
39
+
40
+ it 'should set unique default object' do
41
+ two.default = 'on'
42
+ two.save
43
+ one.default = 'on'
44
+ two.save
45
+ StringDefault.default.should be_eql(two)
46
+ end
47
+
48
+ it 'should return all defaults' do
49
+ one.default = 'on'
50
+ one.save
51
+ two.default = 'on'
52
+ two.save
53
+ StringDefault.all_defaults.size.should be_eql(1)
54
+ end
55
+
56
+ end
@@ -0,0 +1,82 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+ require 'factory_girl'
4
+ require 'database_cleaner'
5
+
6
+ Spork.prefork do
7
+ # Loading more in this block will cause your tests to run faster. However,
8
+ # if you change any configuration or code from libraries loaded here, you'll
9
+ # need to restart spork for it take effect.
10
+ ENV["RAILS_ENV"] ||= 'test'
11
+ require File.expand_path("../dummy/config/environment", __FILE__)
12
+
13
+ require 'rspec/rails'
14
+ require 'rspec/autorun'
15
+
16
+ # Requires supporting ruby files with custom matchers and macros, etc,
17
+ # in spec/support/ and its subdirectories.
18
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
19
+
20
+ RSpec.configure do |config|
21
+ # == Mock Framework
22
+ #
23
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
24
+ #
25
+ # config.mock_with :mocha
26
+ # config.mock_with :flexmock
27
+ # config.mock_with :rr
28
+ config.mock_with :rspec
29
+
30
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
31
+ # examples within a transaction, remove the following line or assign false
32
+ # instead of true.
33
+ config.use_transactional_fixtures = false
34
+
35
+ # If true, the base class of anonymous controllers will be inferred
36
+ # automatically. This will be the default behavior in future versions of
37
+ # rspec-rails.
38
+ config.infer_base_class_for_anonymous_controllers = false
39
+
40
+ config.use_instantiated_fixtures = false
41
+
42
+ # Use DatabaseCleaner to enable js testing
43
+ config.before(:suite) do
44
+ DatabaseCleaner.strategy = :truncation
45
+ DatabaseCleaner.clean_with(:truncation)
46
+ end
47
+
48
+ config.before(:each) do
49
+ #Timecop.return
50
+ DatabaseCleaner.start
51
+ end
52
+
53
+ config.after(:each) do
54
+ DatabaseCleaner.clean
55
+ end
56
+
57
+ config.before(:all) do
58
+ #DeferredGarbageCollection.start
59
+ end
60
+
61
+ config.after(:all) do
62
+ #DeferredGarbageCollection.reconsider
63
+ end
64
+
65
+ # Add helpers for devise authentication
66
+ #config.include Devise::TestHelpers, type: :controller
67
+ #config.extend ControllerMacros, type: :controller
68
+
69
+ # Also include warden
70
+ #config.include Warden::Test::Helpers
71
+ #config.after(:each) { Warden.test_reset!}
72
+
73
+ # Include factory_girl's helpers
74
+ #config.include FactoryGirl::Syntax::Methods
75
+ end
76
+ end
77
+
78
+ Spork.each_run do
79
+ #FactoryGirl.reload
80
+ FactoryGirl.find_definitions
81
+ end
82
+
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_defaultable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Giorgos Tsiftsis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &20379900 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.0.rc1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *20379900
25
+ - !ruby/object:Gem::Dependency
26
+ name: mysql2
27
+ requirement: &20378580 !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: *20378580
36
+ - !ruby/object:Gem::Dependency
37
+ name: factory_girl_rails
38
+ requirement: &20377300 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *20377300
47
+ - !ruby/object:Gem::Dependency
48
+ name: spork
49
+ requirement: &20392860 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.0.rc9
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *20392860
58
+ - !ruby/object:Gem::Dependency
59
+ name: rb-fsevent
60
+ requirement: &20391940 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *20391940
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: &20390400 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *20390400
80
+ - !ruby/object:Gem::Dependency
81
+ name: libnotify
82
+ requirement: &20388840 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *20388840
91
+ description: This 'acts_as' extension provides the capability for having a default
92
+ object. The class that has this specified needs to have a default column defined
93
+ as an integer, string or boolean on the mapped database table
94
+ email:
95
+ - giorgos.tsiftsis@gmail.com
96
+ executables: []
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - .gitignore
101
+ - .rspec
102
+ - Gemfile
103
+ - Gemfile.lock
104
+ - Guardfile
105
+ - MIT-LICENSE
106
+ - README.rdoc
107
+ - Rakefile
108
+ - acts_as_defaultable.gemspec
109
+ - lib/acts_as_defaultable.rb
110
+ - lib/acts_as_defaultable/version.rb
111
+ - lib/tasks/acts_as_defaultable_tasks.rake
112
+ - spec/dummy/README.rdoc
113
+ - spec/dummy/Rakefile
114
+ - spec/dummy/app/assets/javascripts/application.js
115
+ - spec/dummy/app/assets/stylesheets/application.css
116
+ - spec/dummy/app/controllers/application_controller.rb
117
+ - spec/dummy/app/helpers/application_helper.rb
118
+ - spec/dummy/app/mailers/.gitkeep
119
+ - spec/dummy/app/models/.gitkeep
120
+ - spec/dummy/app/models/another.rb
121
+ - spec/dummy/app/models/boolean_default.rb
122
+ - spec/dummy/app/models/fail_one.rb
123
+ - spec/dummy/app/models/string_default.rb
124
+ - spec/dummy/app/views/layouts/application.html.erb
125
+ - spec/dummy/config.ru
126
+ - spec/dummy/config/application.rb
127
+ - spec/dummy/config/boot.rb
128
+ - spec/dummy/config/database.yml
129
+ - spec/dummy/config/environment.rb
130
+ - spec/dummy/config/environments/development.rb
131
+ - spec/dummy/config/environments/production.rb
132
+ - spec/dummy/config/environments/test.rb
133
+ - spec/dummy/config/initializers/backtrace_silencers.rb
134
+ - spec/dummy/config/initializers/inflections.rb
135
+ - spec/dummy/config/initializers/mime_types.rb
136
+ - spec/dummy/config/initializers/secret_token.rb
137
+ - spec/dummy/config/initializers/session_store.rb
138
+ - spec/dummy/config/initializers/wrap_parameters.rb
139
+ - spec/dummy/config/locales/en.yml
140
+ - spec/dummy/config/routes.rb
141
+ - spec/dummy/db/migrate/20120103170153_create_anothers.rb
142
+ - spec/dummy/db/migrate/20120104112622_create_fail_ones.rb
143
+ - spec/dummy/db/migrate/20120104135210_create_boolean_defaults.rb
144
+ - spec/dummy/db/migrate/20120104140205_create_string_defaults.rb
145
+ - spec/dummy/db/schema.rb
146
+ - spec/dummy/lib/assets/.gitkeep
147
+ - spec/dummy/log/.gitkeep
148
+ - spec/dummy/public/404.html
149
+ - spec/dummy/public/422.html
150
+ - spec/dummy/public/500.html
151
+ - spec/dummy/public/favicon.ico
152
+ - spec/dummy/script/rails
153
+ - spec/factories/another.rb
154
+ - spec/factories/boolean_default.rb
155
+ - spec/factories/fail_one.rb
156
+ - spec/factories/string_default.rb
157
+ - spec/models/another_spec.rb
158
+ - spec/models/boolean_default_spec.rb
159
+ - spec/models/fail_one_spec.rb
160
+ - spec/models/string_default_spec.rb
161
+ - spec/spec_helper.rb
162
+ homepage: https://github.com/chief/acts_as_defaultable
163
+ licenses: []
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ segments:
175
+ - 0
176
+ hash: -2181701582938648428
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ segments:
184
+ - 0
185
+ hash: -2181701582938648428
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 1.8.10
189
+ signing_key:
190
+ specification_version: 3
191
+ summary: A gem allowing an active_record model to be default(unique) based on a specified
192
+ column
193
+ test_files: []