acts_as_relation 1.0.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +91 -62
  6. data/README.rdoc +28 -5
  7. data/Rakefile +1 -1
  8. data/acts_as_relation.gemspec +10 -10
  9. data/lib/active_record/acts_as_relation.rb +45 -126
  10. data/lib/active_record/acts_as_relation/access_methods.rb +63 -0
  11. data/lib/active_record/acts_as_relation/acts_as.rb +34 -0
  12. data/lib/active_record/acts_as_relation/acts_as_modules.rb +109 -0
  13. data/lib/active_record/acts_as_relation/superclass_migration.rb +32 -0
  14. data/lib/acts_as_relation.rb +4 -1
  15. data/lib/version.rb +1 -1
  16. data/spec/acts_as_relation_spec.rb +136 -59
  17. data/spec/acts_as_superclass_spec.rb +7 -7
  18. data/spec/dummy/app/models/product.rb +4 -0
  19. data/spec/dummy/app/models/store.rb +1 -0
  20. data/spec/dummy/config/application.rb +2 -49
  21. data/spec/dummy/config/boot.rb +1 -1
  22. data/spec/dummy/config/environments/development.rb +0 -3
  23. data/spec/dummy/config/environments/test.rb +1 -6
  24. data/spec/dummy/db/schema.rb +4 -0
  25. data/spec/spec_helper.rb +10 -7
  26. metadata +33 -73
  27. data/lib/active_record/acts_as_relation_superclass_migration.rb +0 -30
  28. data/spec/dummy/.rspec +0 -1
  29. data/spec/dummy/README.rdoc +0 -261
  30. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  31. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  32. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  33. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  34. data/spec/dummy/app/mailers/.gitkeep +0 -0
  35. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  36. data/spec/dummy/config/environments/production.rb +0 -65
  37. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  38. data/spec/dummy/config/initializers/inflections.rb +0 -15
  39. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  40. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  41. data/spec/dummy/config/initializers/session_store.rb +0 -8
  42. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  43. data/spec/dummy/config/locales/en.yml +0 -5
  44. data/spec/dummy/config/routes.rb +0 -58
  45. data/spec/dummy/lib/assets/.gitkeep +0 -0
  46. data/spec/dummy/public/404.html +0 -26
  47. data/spec/dummy/public/422.html +0 -26
  48. data/spec/dummy/public/500.html +0 -25
  49. data/spec/dummy/public/favicon.ico +0 -0
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "create_table acts_as_superclass" do
4
- it "creates foreign key and type columns" do
3
+ describe 'create_table acts_as_superclass' do
4
+ it 'creates foreign key and type columns' do
5
5
  name = Pen.acts_as_association_name
6
- Pen.attribute_names.should include("#{name}_id")
7
- Pen.attribute_names.should include("#{name}_type")
6
+ expect(Pen.attribute_names).to include("#{name}_id")
7
+ expect(Pen.attribute_names).to include("#{name}_type")
8
8
  end
9
9
 
10
- it "when name passed creates foreign key and type columns with given name" do
11
- Product.attribute_names.should include("producible_id")
12
- Product.attribute_names.should include("producible_type")
10
+ it 'when name passed creates foreign key and type columns with given name' do
11
+ expect(Product.attribute_names).to include('producible_id')
12
+ expect(Product.attribute_names).to include('producible_type')
13
13
  end
14
14
  end
@@ -8,4 +8,8 @@ class Product < ActiveRecord::Base
8
8
  def parent_method
9
9
  "#{name} - #{price}"
10
10
  end
11
+
12
+ def dummy_raise_method(obj)
13
+ obj.dummy
14
+ end
11
15
  end
@@ -1,2 +1,3 @@
1
1
  class Store < ActiveRecord::Base
2
+ has_many :products
2
3
  end
@@ -1,58 +1,11 @@
1
1
  require File.expand_path('../boot', __FILE__)
2
2
 
3
- # Pick the frameworks you want:
4
- require "active_record/railtie"
5
- require "action_controller/railtie"
6
- require "action_mailer/railtie"
7
- # require "active_resource/railtie"
8
- # require "sprockets/railtie"
9
- # require "rails/test_unit/railtie"
3
+ require 'active_record/railtie'
10
4
 
11
5
  Bundler.require
12
- require "acts_as_relation"
6
+ require 'acts_as_relation'
13
7
 
14
8
  module Dummy
15
9
  class Application < Rails::Application
16
- # Settings in config/environments/* take precedence over those specified here.
17
- # Application configuration should go into files in config/initializers
18
- # -- all .rb files in that directory are automatically loaded.
19
-
20
- # Custom directories with classes and modules you want to be autoloadable.
21
- # config.autoload_paths += %W(#{config.root}/extras)
22
-
23
- # Only load the plugins named here, in the order given (default is alphabetical).
24
- # :all can be used as a placeholder for all plugins not explicitly named.
25
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
26
-
27
- # Activate observers that should always be running.
28
- # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
29
-
30
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
31
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
32
- # config.time_zone = 'Central Time (US & Canada)'
33
-
34
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
35
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
36
- # config.i18n.default_locale = :de
37
-
38
- # Configure the default encoding used in templates for Ruby 1.9.
39
- config.encoding = "utf-8"
40
-
41
- # Configure sensitive parameters which will be filtered from the log file.
42
- config.filter_parameters += [:password]
43
-
44
- # Use SQL instead of Active Record's schema dumper when creating the database.
45
- # This is necessary if your schema can't be completely dumped by the schema dumper,
46
- # like if you have constraints or database-specific column types
47
- # config.active_record.schema_format = :sql
48
-
49
- # Enable the asset pipeline
50
- config.assets.enabled = true
51
-
52
- # Version of your assets, change this if you want to expire all your assets
53
- config.assets.version = '1.0'
54
-
55
- config.active_record.timestamped_migrations = false
56
10
  end
57
11
  end
58
-
@@ -7,4 +7,4 @@ if File.exist?(gemfile)
7
7
  Bundler.setup
8
8
  end
9
9
 
10
- $:.unshift File.expand_path('../../../../lib', __FILE__)
10
+ $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
@@ -10,9 +10,6 @@ Dummy::Application.configure do
10
10
  config.consider_all_requests_local = true
11
11
  config.action_controller.perform_caching = false
12
12
 
13
- # Don't care if the mailer can't send
14
- config.action_mailer.raise_delivery_errors = false
15
-
16
13
  # Print deprecation notices to the Rails logger
17
14
  config.active_support.deprecation = :log
18
15
 
@@ -9,7 +9,7 @@ Dummy::Application.configure do
9
9
 
10
10
  # Configure static asset server for tests with Cache-Control for performance
11
11
  config.serve_static_assets = true
12
- config.static_cache_control = "public, max-age=3600"
12
+ config.static_cache_control = 'public, max-age=3600'
13
13
 
14
14
  # Show full error reports and disable caching
15
15
  config.consider_all_requests_local = true
@@ -21,11 +21,6 @@ Dummy::Application.configure do
21
21
  # Disable request forgery protection in test environment
22
22
  config.action_controller.allow_forgery_protection = false
23
23
 
24
- # Tell Action Mailer not to deliver emails to the real world.
25
- # The :test delivery method accumulates sent emails in the
26
- # ActionMailer::Base.deliveries array.
27
- config.action_mailer.delivery_method = :test
28
-
29
24
  # Print deprecation notices to the stderr
30
25
  config.active_support.deprecation = :stderr
31
26
 
@@ -26,6 +26,8 @@ ActiveRecord::Schema.define(version: 4) do
26
26
  t.datetime "updated_at"
27
27
  end
28
28
 
29
+ add_index "pens", ["as_pen_id", "as_pen_type"], name: "pens_as_pen_index"
30
+
29
31
  create_table "products", force: true do |t|
30
32
  t.integer "producible_id"
31
33
  t.string "producible_type"
@@ -36,6 +38,8 @@ ActiveRecord::Schema.define(version: 4) do
36
38
  t.datetime "updated_at"
37
39
  end
38
40
 
41
+ add_index "products", ["producible_id", "producible_type"], name: "products_producible_index"
42
+
39
43
  create_table "stores", force: true do |t|
40
44
  t.string "name"
41
45
  t.datetime "created_at"
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,15 @@
1
- # This file is copied to spec/ when you run 'rails generate rspec:install'
2
- ENV["RAILS_ENV"] ||= 'test'
3
- require File.expand_path("../dummy/config/environment", __FILE__)
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ ENV['RAILS_ENV'] ||= 'test'
5
+ require File.expand_path('../dummy/config/environment', __FILE__)
4
6
  require 'rspec/rails'
5
- require 'rspec/autorun'
6
7
 
7
- # Requires supporting ruby files with custom matchers and macros, etc,
8
- # in spec/support/ and its subdirectories.
9
- Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
8
+ Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
9
+
10
+ require 'rake'
11
+ Dummy::Application.load_tasks
12
+ Rake::Task['db:test:prepare'].invoke
10
13
 
11
14
  RSpec.configure do |config|
12
15
  config.infer_base_class_for_anonymous_controllers = false
metadata CHANGED
@@ -1,121 +1,122 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_relation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hassan Zamani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-04 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sqlite3
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.14'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '2.14'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '4.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '4.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: database_cleaner
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: activerecord
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '4.0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '4.0'
111
111
  description: This 'acts_as' extension provides multi-table inheritance for rails models.
112
112
  email: hsn.zamani@gmail.com
113
113
  executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
- - .gitignore
118
- - .rspec
117
+ - ".gitignore"
118
+ - ".rspec"
119
+ - ".travis.yml"
119
120
  - Gemfile
120
121
  - Gemfile.lock
121
122
  - MIT-LICENSE
@@ -124,52 +125,33 @@ files:
124
125
  - acts_as_relation.gemspec
125
126
  - init.rb
126
127
  - lib/active_record/acts_as_relation.rb
127
- - lib/active_record/acts_as_relation_superclass_migration.rb
128
+ - lib/active_record/acts_as_relation/access_methods.rb
129
+ - lib/active_record/acts_as_relation/acts_as.rb
130
+ - lib/active_record/acts_as_relation/acts_as_modules.rb
131
+ - lib/active_record/acts_as_relation/superclass_migration.rb
128
132
  - lib/acts_as_relation.rb
129
133
  - lib/version.rb
130
134
  - spec/acts_as_relation_spec.rb
131
135
  - spec/acts_as_superclass_spec.rb
132
- - spec/dummy/.rspec
133
- - spec/dummy/README.rdoc
134
136
  - spec/dummy/Rakefile
135
- - spec/dummy/app/assets/javascripts/application.js
136
- - spec/dummy/app/assets/stylesheets/application.css
137
- - spec/dummy/app/controllers/application_controller.rb
138
- - spec/dummy/app/helpers/application_helper.rb
139
- - spec/dummy/app/mailers/.gitkeep
140
137
  - spec/dummy/app/models/.gitkeep
141
138
  - spec/dummy/app/models/pen.rb
142
139
  - spec/dummy/app/models/pencil.rb
143
140
  - spec/dummy/app/models/product.rb
144
141
  - spec/dummy/app/models/store.rb
145
- - spec/dummy/app/views/layouts/application.html.erb
146
142
  - spec/dummy/config.ru
147
143
  - spec/dummy/config/application.rb
148
144
  - spec/dummy/config/boot.rb
149
145
  - spec/dummy/config/database.yml
150
146
  - spec/dummy/config/environment.rb
151
147
  - spec/dummy/config/environments/development.rb
152
- - spec/dummy/config/environments/production.rb
153
148
  - spec/dummy/config/environments/test.rb
154
- - spec/dummy/config/initializers/backtrace_silencers.rb
155
- - spec/dummy/config/initializers/inflections.rb
156
- - spec/dummy/config/initializers/mime_types.rb
157
- - spec/dummy/config/initializers/secret_token.rb
158
- - spec/dummy/config/initializers/session_store.rb
159
- - spec/dummy/config/initializers/wrap_parameters.rb
160
- - spec/dummy/config/locales/en.yml
161
- - spec/dummy/config/routes.rb
162
149
  - spec/dummy/db/migrate/001_create_stores.rb
163
150
  - spec/dummy/db/migrate/002_create_products.rb
164
151
  - spec/dummy/db/migrate/003_create_pens.rb
165
152
  - spec/dummy/db/migrate/004_create_pencils.rb
166
153
  - spec/dummy/db/schema.rb
167
- - spec/dummy/lib/assets/.gitkeep
168
154
  - spec/dummy/log/.gitkeep
169
- - spec/dummy/public/404.html
170
- - spec/dummy/public/422.html
171
- - spec/dummy/public/500.html
172
- - spec/dummy/public/favicon.ico
173
155
  - spec/dummy/script/rails
174
156
  - spec/spec_helper.rb
175
157
  homepage: http://github.com/hzamani/acts_as_relation
@@ -181,63 +163,41 @@ require_paths:
181
163
  - lib
182
164
  required_ruby_version: !ruby/object:Gem::Requirement
183
165
  requirements:
184
- - - '>='
166
+ - - ">="
185
167
  - !ruby/object:Gem::Version
186
- version: '0'
168
+ version: '1.9'
187
169
  required_rubygems_version: !ruby/object:Gem::Requirement
188
170
  requirements:
189
- - - '>='
171
+ - - ">="
190
172
  - !ruby/object:Gem::Version
191
173
  version: '0'
192
174
  requirements: []
193
175
  rubyforge_project:
194
- rubygems_version: 2.0.3
176
+ rubygems_version: 2.2.2
195
177
  signing_key:
196
178
  specification_version: 4
197
179
  summary: Easy multi-table inheritance for rails
198
180
  test_files:
199
181
  - spec/acts_as_relation_spec.rb
200
182
  - spec/acts_as_superclass_spec.rb
201
- - spec/dummy/.rspec
202
- - spec/dummy/README.rdoc
203
183
  - spec/dummy/Rakefile
204
- - spec/dummy/app/assets/javascripts/application.js
205
- - spec/dummy/app/assets/stylesheets/application.css
206
- - spec/dummy/app/controllers/application_controller.rb
207
- - spec/dummy/app/helpers/application_helper.rb
208
- - spec/dummy/app/mailers/.gitkeep
209
184
  - spec/dummy/app/models/.gitkeep
210
185
  - spec/dummy/app/models/pen.rb
211
186
  - spec/dummy/app/models/pencil.rb
212
187
  - spec/dummy/app/models/product.rb
213
188
  - spec/dummy/app/models/store.rb
214
- - spec/dummy/app/views/layouts/application.html.erb
215
189
  - spec/dummy/config.ru
216
190
  - spec/dummy/config/application.rb
217
191
  - spec/dummy/config/boot.rb
218
192
  - spec/dummy/config/database.yml
219
193
  - spec/dummy/config/environment.rb
220
194
  - spec/dummy/config/environments/development.rb
221
- - spec/dummy/config/environments/production.rb
222
195
  - spec/dummy/config/environments/test.rb
223
- - spec/dummy/config/initializers/backtrace_silencers.rb
224
- - spec/dummy/config/initializers/inflections.rb
225
- - spec/dummy/config/initializers/mime_types.rb
226
- - spec/dummy/config/initializers/secret_token.rb
227
- - spec/dummy/config/initializers/session_store.rb
228
- - spec/dummy/config/initializers/wrap_parameters.rb
229
- - spec/dummy/config/locales/en.yml
230
- - spec/dummy/config/routes.rb
231
196
  - spec/dummy/db/migrate/001_create_stores.rb
232
197
  - spec/dummy/db/migrate/002_create_products.rb
233
198
  - spec/dummy/db/migrate/003_create_pens.rb
234
199
  - spec/dummy/db/migrate/004_create_pencils.rb
235
200
  - spec/dummy/db/schema.rb
236
- - spec/dummy/lib/assets/.gitkeep
237
201
  - spec/dummy/log/.gitkeep
238
- - spec/dummy/public/404.html
239
- - spec/dummy/public/422.html
240
- - spec/dummy/public/500.html
241
- - spec/dummy/public/favicon.ico
242
202
  - spec/dummy/script/rails
243
203
  - spec/spec_helper.rb