acts_as_defaultable 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []