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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +91 -62
- data/README.rdoc +28 -5
- data/Rakefile +1 -1
- data/acts_as_relation.gemspec +10 -10
- data/lib/active_record/acts_as_relation.rb +45 -126
- data/lib/active_record/acts_as_relation/access_methods.rb +63 -0
- data/lib/active_record/acts_as_relation/acts_as.rb +34 -0
- data/lib/active_record/acts_as_relation/acts_as_modules.rb +109 -0
- data/lib/active_record/acts_as_relation/superclass_migration.rb +32 -0
- data/lib/acts_as_relation.rb +4 -1
- data/lib/version.rb +1 -1
- data/spec/acts_as_relation_spec.rb +136 -59
- data/spec/acts_as_superclass_spec.rb +7 -7
- data/spec/dummy/app/models/product.rb +4 -0
- data/spec/dummy/app/models/store.rb +1 -0
- data/spec/dummy/config/application.rb +2 -49
- data/spec/dummy/config/boot.rb +1 -1
- data/spec/dummy/config/environments/development.rb +0 -3
- data/spec/dummy/config/environments/test.rb +1 -6
- data/spec/dummy/db/schema.rb +4 -0
- data/spec/spec_helper.rb +10 -7
- metadata +33 -73
- data/lib/active_record/acts_as_relation_superclass_migration.rb +0 -30
- data/spec/dummy/.rspec +0 -1
- data/spec/dummy/README.rdoc +0 -261
- data/spec/dummy/app/assets/javascripts/application.js +0 -15
- data/spec/dummy/app/assets/stylesheets/application.css +0 -13
- data/spec/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +0 -14
- data/spec/dummy/config/environments/production.rb +0 -65
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/inflections.rb +0 -15
- data/spec/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy/config/locales/en.yml +0 -5
- data/spec/dummy/config/routes.rb +0 -58
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/public/404.html +0 -26
- data/spec/dummy/public/422.html +0 -26
- data/spec/dummy/public/500.html +0 -25
- data/spec/dummy/public/favicon.ico +0 -0
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
4
|
-
it
|
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.
|
7
|
-
Pen.attribute_names.
|
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
|
11
|
-
Product.attribute_names.
|
12
|
-
Product.attribute_names.
|
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
|
@@ -1,58 +1,11 @@
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
2
2
|
|
3
|
-
|
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
|
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
|
-
|
data/spec/dummy/config/boot.rb
CHANGED
@@ -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 =
|
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
|
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -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
|
-
|
2
|
-
|
3
|
-
|
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
|
-
|
8
|
-
|
9
|
-
|
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.
|
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:
|
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: '
|
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: '
|
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/
|
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: '
|
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.
|
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
|