acts_as_relation 1.0.0 → 1.1.2

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 (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