onotole 1.2.11 → 2.0.0
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/README.md +9 -2
- data/goodies/mailcatcher_loading_patch.md +1 -1
- data/goodies/service_object.md +47 -0
- data/lib/onotole/add_user_gems/after_install_patch.rb +15 -24
- data/lib/onotole/add_user_gems/before_bundle_patch.rb +8 -0
- data/lib/onotole/add_user_gems/edit_menu_questions.rb +7 -5
- data/lib/onotole/add_user_gems/user_gems_menu_questions.rb +1 -1
- data/lib/onotole/app_builder.rb +1 -0
- data/lib/onotole/default_scripts.rb +4 -5
- data/lib/onotole/generators/app_generator.rb +1 -1
- data/lib/onotole/version.rb +2 -2
- data/templates/Gemfile.erb +7 -6
- data/templates/application_record.rb +3 -0
- data/templates/puma.rb.erb +6 -2
- data/templates/pundit/active_admin/comment_policy.rb +7 -0
- data/templates/pundit/active_admin/page_policy.rb +16 -0
- metadata +8 -6
- data/templates/disable_xml_params.rb +0 -2
- data/templates/model_generator.rb +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d39255d6d4c5f9fd1216568030bc4b0957ff143
|
4
|
+
data.tar.gz: 48f93eb22ba177d90a4ed338034ce55bb71ff1a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4314cdb62a5cadf40117dc918a791dde1dc83be4923eaa29d9fcf382e453c8bb478c7d201d1ebcb5090c79d650779cf51f7b3d416136a551e85dc1288f38102
|
7
|
+
data.tar.gz: bce53559ebbbd71a5befdc6de001678b28863eb9f64dec29be9bb5334c377aafd44d8b44afb3fe5d8a9ff54a7ead1a1f880379fd38c2180aa53d350e1a3131cf
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,13 @@
|
|
4
4
|
|
5
5
|
New Rails project wizard. Onotole will help!
|
6
6
|
|
7
|
+
At this monent, i found unworking this gems:
|
8
|
+
* ActiveAdmin
|
9
|
+
* WillPaginane
|
10
|
+
|
11
|
+
I hope Rails 5 support willl be added there soon, or you may easyly find monkey patches for fixes.
|
12
|
+
Feel free to edit this list.
|
13
|
+
|
7
14
|
[](https://www.youtube.com/watch?v=wAuqhLpV2DY)
|
8
15
|
|
9
16
|
Read more [ENG](https://en.wikipedia.org/wiki/Anatoly_Wasserman) |
|
@@ -156,6 +163,8 @@ it through a dream. http://mailcatcher.me
|
|
156
163
|
for ruby 2.1+
|
157
164
|
* [active_record_doctor](https://github.com/gregnavis/active_record_doctor)
|
158
165
|
Active Record Doctor helps to index unindexed foreign keys
|
166
|
+
* [git_up](https://github.com/aanand/git-up) Fetch and rebase all locally-tracked
|
167
|
+
remote branches
|
159
168
|
|
160
169
|
|
161
170
|
#### Misc
|
@@ -252,8 +261,6 @@ generated projectname/Gemfile. This gem will be installed anyway.
|
|
252
261
|
* [Autoprefixer Rails](https://github.com/ai/autoprefixer-rails) for CSS vendor prefixes
|
253
262
|
* [Delayed Job](https://github.com/collectiveidea/delayed_job) for background
|
254
263
|
processing
|
255
|
-
* [Flutie](https://github.com/thoughtbot/flutie) for `page_title` and `body_class` view
|
256
|
-
helpers
|
257
264
|
* [High Voltage](https://github.com/thoughtbot/high_voltage) for static pages
|
258
265
|
* [jQuery Rails](https://github.com/rails/jquery-rails) for jQuery
|
259
266
|
* [Normalize](https://necolas.github.io/normalize.css/) for resetting browser styles
|
@@ -1,6 +1,6 @@
|
|
1
1
|
### Mailcatcher on load error
|
2
2
|
|
3
|
-
I got in love in `Mailcather` project, but there is one dizzy feature in it- if
|
3
|
+
I've got in love in `Mailcather` project, but there is one dizzy feature in it- if
|
4
4
|
in your controller must be sent some mail and `Mailcatcher` daemon is not running
|
5
5
|
you will have an error (and it is oblivious). The is a sample code
|
6
6
|
|
@@ -0,0 +1,47 @@
|
|
1
|
+
## Service Object
|
2
|
+
|
3
|
+
The is a pretty standard pattern in `Ruby`, when you use standard classes for
|
4
|
+
some purposes, and this pattern usually is called as Service Object.
|
5
|
+
|
6
|
+
There are 2 types of it: which will be instantiated, and witch will be like some
|
7
|
+
methods bag. In this article I'll talk about second type only. The easiest way to
|
8
|
+
implement it is to use standard `Ruby` class, like
|
9
|
+
```
|
10
|
+
class Foo
|
11
|
+
def self.call
|
12
|
+
puts 42
|
13
|
+
end
|
14
|
+
end
|
15
|
+
```
|
16
|
+
but it can be instantiated. It is not right! So we should `include Singleton`
|
17
|
+
module from `stdlib`, or do this work manually, mainly move #new method to
|
18
|
+
private group or undefine it.
|
19
|
+
|
20
|
+
The second way is to go upper and use `Module` as descendant, so code will be
|
21
|
+
like
|
22
|
+
```
|
23
|
+
module Foo
|
24
|
+
def self.call
|
25
|
+
puts 42
|
26
|
+
end
|
27
|
+
end
|
28
|
+
```
|
29
|
+
Now we have no problems with instances, but we still have `Module` methods, which
|
30
|
+
are unused in this approach. So, we can dig dipper and inherit from Object
|
31
|
+
```
|
32
|
+
class << FOO ||= Object.new
|
33
|
+
def call
|
34
|
+
puts 42
|
35
|
+
end
|
36
|
+
end
|
37
|
+
```
|
38
|
+
So we have no unused behavior and get cleaner code. Just new `Object` with pack
|
39
|
+
of singleton methods, and because it have class name, we use `||=` for preventing
|
40
|
+
multiple assigns, which will boost our code. Perfect!
|
41
|
+
|
42
|
+
Of course the is some feature on this approach. If you change `FOO#call` method
|
43
|
+
later, and then `require` again file with initial code of `FOO` it will not
|
44
|
+
restore method to initial state. But it is weeery unusual.
|
45
|
+
|
46
|
+
You may call it `Foo`, of course, but you will avoid the convention in this
|
47
|
+
case.
|
@@ -21,8 +21,9 @@ module Onotole
|
|
21
21
|
:annotate,
|
22
22
|
:overcommit,
|
23
23
|
:activeadmin, :active_admin_theme, :acive_skin, :flattened_active_admin,
|
24
|
-
:face_of_active_admin, :active_admin_bootstrap,
|
24
|
+
:face_of_active_admin, :active_admin_bootstrap,
|
25
25
|
:rails_admin,
|
26
|
+
:pundit,
|
26
27
|
:guard, :guard_rubocop,
|
27
28
|
:bootstrap3_sass, :bootstrap3, :devise_bootstrap_views,
|
28
29
|
:active_admin_theme,
|
@@ -30,7 +31,6 @@ module Onotole
|
|
30
31
|
:normalize,
|
31
32
|
:tinymce,
|
32
33
|
:rubocop,
|
33
|
-
:abstract_model_wrapper,
|
34
34
|
:create_github_repo]
|
35
35
|
install_queue.each { |g| send "after_install_#{g}" if user_choose? g }
|
36
36
|
delete_comments
|
@@ -297,18 +297,6 @@ end
|
|
297
297
|
end
|
298
298
|
end
|
299
299
|
|
300
|
-
def after_install_active_admin_simple_life
|
301
|
-
config = <<-DATA
|
302
|
-
include ActiveAdminSimpleLife
|
303
|
-
ActiveAdmin.setup do |config|
|
304
|
-
include ActiveAdminSimpleLife::SimpleElements
|
305
|
-
|
306
|
-
DATA
|
307
|
-
|
308
|
-
replace_in_file 'config/initializers/active_admin.rb',
|
309
|
-
'ActiveAdmin.setup do |config|', config
|
310
|
-
end
|
311
|
-
|
312
300
|
def after_install_redis
|
313
301
|
config = %q(
|
314
302
|
config.cache_store = :redis_store, "#{ENV['REDIS_PATH']}/cache", { expires_in: 90.minutes }
|
@@ -355,16 +343,19 @@ DATA
|
|
355
343
|
bundle_command 'exec sitemap:install'
|
356
344
|
end
|
357
345
|
|
358
|
-
def
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
346
|
+
def after_install_pundit
|
347
|
+
rails_generator 'pundit:install'
|
348
|
+
if user_choose? :activeadmin
|
349
|
+
initializer_path = 'config/initializers/active_admin.rb'
|
350
|
+
config = %(
|
351
|
+
config.authentication_method = :authenticate_admin_user!
|
352
|
+
config.authorization_adapter = ActiveAdmin::PunditAdapter
|
353
|
+
config.pundit_default_policy = "ApplicationPolicy"
|
354
|
+
)
|
355
|
+
inject_into_file initializer_path, config, after: 'ActiveAdmin.setup do |config|'
|
356
|
+
mkdir_and_touch 'app/policies/active_admin'
|
357
|
+
copy_file 'pundit/active_admin/comment_policy.rb', 'app/policies/active_admin/comment_policy.rb'
|
358
|
+
copy_file 'pundit/active_admin/page_policy.rb', 'app/policies/active_admin/page_policy.rb'
|
368
359
|
end
|
369
360
|
end
|
370
361
|
|
@@ -354,5 +354,13 @@ module Onotole
|
|
354
354
|
def add_therubyracer_gem
|
355
355
|
inject_into_file('Gemfile', "\n gem 'therubyracer'", after: '# user_choice')
|
356
356
|
end
|
357
|
+
|
358
|
+
def add_pundit_gem
|
359
|
+
inject_into_file('Gemfile', "\n gem 'pundit'", after: '# user_choice')
|
360
|
+
end
|
361
|
+
|
362
|
+
def add_git_up_gem
|
363
|
+
inject_into_file('Gemfile', "\n gem 'git-up'", after: 'group :development do')
|
364
|
+
end
|
357
365
|
end
|
358
366
|
end
|
@@ -27,6 +27,12 @@ module Onotole
|
|
27
27
|
add_to_user_choise(gem) if gem
|
28
28
|
end
|
29
29
|
|
30
|
+
def choose_authorization_engine
|
31
|
+
variants = { none: 'None', pundit: 'Pundit' }
|
32
|
+
gem = choice 'Select authorization engine: ', variants
|
33
|
+
add_to_user_choise(gem) if gem
|
34
|
+
end
|
35
|
+
|
30
36
|
def choose_cms_engine
|
31
37
|
variants = { none: 'None',
|
32
38
|
activeadmin: 'Activeadmin CMS (if devise selected Admin model will create automatic)',
|
@@ -89,6 +95,7 @@ module Onotole
|
|
89
95
|
rack_mini_profiler: 'Middleware that displays speed badge for every html page.',
|
90
96
|
flamegraph: 'Rack_mini_profiler awesome graphics generator. Need stackprof gem',
|
91
97
|
stackprof: 'A sampling call-stack profiler for ruby 2.1+',
|
98
|
+
git_up: 'git-up(1) -- fetch and rebase all locally-tracked remote branches',
|
92
99
|
meta_request: 'Rails meta panel in chrome console.'\
|
93
100
|
" Very usefull in\n#{' ' * 24}AJAX debugging. Link for chrome"\
|
94
101
|
" add-on in Gemfile.\n#{' ' * 24}Do not delete comments if you need this link",
|
@@ -163,11 +170,6 @@ module Onotole
|
|
163
170
|
# end
|
164
171
|
|
165
172
|
# TODO: move all this to other module
|
166
|
-
def users_abstract_model_wrapper_choice
|
167
|
-
variants = { none: 'No', abstract_model_wrapper: 'Yes' }
|
168
|
-
sel = choice 'Create abstract model wrapper for all models? ', variants
|
169
|
-
add_to_user_choise(sel) unless sel == :none
|
170
|
-
end
|
171
173
|
|
172
174
|
def users_init_commit_choice
|
173
175
|
variants = { none: 'No', gitcommit: 'Yes' }
|
@@ -6,6 +6,7 @@ module Onotole
|
|
6
6
|
choose_template_engine
|
7
7
|
choose_frontend
|
8
8
|
choose_authenticate_engine
|
9
|
+
choose_authorization_engine
|
9
10
|
choose_pagimation
|
10
11
|
choose_wysiwyg
|
11
12
|
choose_develoder_tools
|
@@ -16,7 +17,6 @@ module Onotole
|
|
16
17
|
|
17
18
|
choose_undroup_gems
|
18
19
|
ask_cleanup_commens
|
19
|
-
users_abstract_model_wrapper_choice
|
20
20
|
users_init_commit_choice
|
21
21
|
add_github_repo_creation_choice
|
22
22
|
setup_default_gems
|
data/lib/onotole/app_builder.rb
CHANGED
@@ -139,11 +139,6 @@ end
|
|
139
139
|
"Rails.application.routes.draw do\nend"
|
140
140
|
end
|
141
141
|
|
142
|
-
def disable_xml_params
|
143
|
-
copy_file 'disable_xml_params.rb',
|
144
|
-
'config/initializers/disable_xml_params.rb'
|
145
|
-
end
|
146
|
-
|
147
142
|
def setup_default_rake_task
|
148
143
|
append_file 'Rakefile' do
|
149
144
|
<<-EOS
|
@@ -228,5 +223,9 @@ end
|
|
228
223
|
f.write "\nend"
|
229
224
|
end
|
230
225
|
end
|
226
|
+
|
227
|
+
def copy_application_record
|
228
|
+
copy_file 'application_record.rb', 'app/models/application_record.rb'
|
229
|
+
end
|
231
230
|
end
|
232
231
|
end
|
@@ -173,7 +173,6 @@ module Onotole
|
|
173
173
|
build :configure_action_mailer
|
174
174
|
build :configure_active_job
|
175
175
|
build :configure_time_formats
|
176
|
-
build :disable_xml_params
|
177
176
|
build :fix_i18n_deprecation_warning
|
178
177
|
build :setup_default_rake_task
|
179
178
|
build :configure_puma
|
@@ -182,6 +181,7 @@ module Onotole
|
|
182
181
|
build :add_vendor_css_path
|
183
182
|
build :add_fonts_autoload
|
184
183
|
build :add_custom_formbuilder
|
184
|
+
build :copy_application_record
|
185
185
|
end
|
186
186
|
|
187
187
|
# def setup_stylesheets
|
data/lib/onotole/version.rb
CHANGED
data/templates/Gemfile.erb
CHANGED
@@ -5,27 +5,27 @@ ruby "<%= Onotole::RUBY_VERSION %>"
|
|
5
5
|
gem "delayed_job_active_record"
|
6
6
|
gem "high_voltage"
|
7
7
|
gem "jquery-rails"
|
8
|
-
gem 'normalize-rails'
|
8
|
+
gem 'normalize-rails'
|
9
9
|
gem "pg"
|
10
10
|
gem "puma"
|
11
11
|
gem "rack-canonical-host"
|
12
12
|
gem "rails", "<%= Onotole::RAILS_VERSION %>"
|
13
13
|
gem "simple_form"
|
14
14
|
gem "title"
|
15
|
-
gem 'rake', '~> 11.
|
15
|
+
gem 'rake', '~> 11.2.0'
|
16
16
|
gem "awesome_print", :require=>"ap"
|
17
17
|
gem "dotenv-rails"
|
18
18
|
# user_choice
|
19
19
|
|
20
20
|
group :assets do
|
21
|
-
gem "sass-rails"
|
21
|
+
gem "sass-rails"
|
22
22
|
gem "autoprefixer-rails"
|
23
|
-
gem "coffee-rails"
|
23
|
+
gem "coffee-rails"
|
24
24
|
gem "uglifier"
|
25
25
|
end
|
26
26
|
|
27
27
|
group :development do
|
28
|
-
gem "quiet_assets"
|
28
|
+
# gem "quiet_assets"
|
29
29
|
gem "spring"
|
30
30
|
gem "spring-commands-rspec"
|
31
31
|
gem "web-console"
|
@@ -35,6 +35,7 @@ group :development do
|
|
35
35
|
gem 'pry-doc'
|
36
36
|
gem 'pry-rescue'
|
37
37
|
gem 'pry-state'
|
38
|
+
gem 'pry-stack_explorer'
|
38
39
|
gem 'better_errors'
|
39
40
|
gem 'binding_of_caller'
|
40
41
|
gem "hirb"
|
@@ -43,7 +44,7 @@ end
|
|
43
44
|
group :development, :test do
|
44
45
|
gem "factory_girl_rails"
|
45
46
|
gem "bundler-audit", require: false
|
46
|
-
gem "rspec-rails"
|
47
|
+
gem "rspec-rails"
|
47
48
|
end
|
48
49
|
|
49
50
|
group :test do
|
data/templates/puma.rb.erb
CHANGED
@@ -13,10 +13,12 @@
|
|
13
13
|
# Starting with a low number of workers and threads provides adequate
|
14
14
|
# performance for most applications, even under load, while maintaining a low
|
15
15
|
# risk of overusing memory.
|
16
|
-
workers Integer(ENV.fetch('<%= "#{app_name.upcase}_WEB_CONCURRENCY" %>',
|
17
|
-
threads_count = Integer(ENV.fetch('<%= "#{app_name.upcase}_MAX_THREADS" %>',
|
16
|
+
workers Integer(ENV.fetch('<%= "#{app_name.upcase}_WEB_CONCURRENCY" %>', 5))
|
17
|
+
threads_count = Integer(ENV.fetch('<%= "#{app_name.upcase}_MAX_THREADS" %>', 5))
|
18
18
|
threads(2, threads_count)
|
19
19
|
|
20
|
+
port ENV.fetch("<%= "#{app_name.upcase}_PORT" %>") { 3000 }
|
21
|
+
|
20
22
|
preload_app!
|
21
23
|
|
22
24
|
rackup DefaultRackup
|
@@ -29,3 +31,5 @@ on_worker_boot do
|
|
29
31
|
# See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
|
30
32
|
ActiveRecord::Base.establish_connection
|
31
33
|
end
|
34
|
+
|
35
|
+
plugin :tmp_restart
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onotole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kvokka
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 5.0.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 5.0.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,6 +88,7 @@ files:
|
|
88
88
|
- goodies/form_builder_extension.md
|
89
89
|
- goodies/mailcatcher_loading_patch.md
|
90
90
|
- goodies/seeds_organization.md
|
91
|
+
- goodies/service_object.md
|
91
92
|
- goodies/tests_speed_up_hack.md
|
92
93
|
- lib/onotole.rb
|
93
94
|
- lib/onotole/actions.rb
|
@@ -132,6 +133,7 @@ files:
|
|
132
133
|
- templates/admin_bootstrap.scss
|
133
134
|
- templates/app.json.erb
|
134
135
|
- templates/application.scss
|
136
|
+
- templates/application_record.rb
|
135
137
|
- templates/bin_deploy
|
136
138
|
- templates/bin_setup
|
137
139
|
- templates/bin_setup_review_app.erb
|
@@ -149,7 +151,6 @@ files:
|
|
149
151
|
- templates/dev.rake
|
150
152
|
- templates/devise.ru.yml
|
151
153
|
- templates/devise_rspec.rb
|
152
|
-
- templates/disable_xml_params.rb
|
153
154
|
- templates/dotenv.erb
|
154
155
|
- templates/dotenv_production.erb
|
155
156
|
- templates/dotfiles/.ctags
|
@@ -166,12 +167,13 @@ files:
|
|
166
167
|
- templates/json_encoding.rb
|
167
168
|
- templates/kaminari.rb
|
168
169
|
- templates/kill_postgress_conections.rake
|
169
|
-
- templates/model_generator.rb
|
170
170
|
- templates/newrelic.yml.erb
|
171
171
|
- templates/onotole_layout.html.erb.erb
|
172
172
|
- templates/onotole_overcommit.yml
|
173
173
|
- templates/postgresql_database.yml.erb
|
174
174
|
- templates/puma.rb.erb
|
175
|
+
- templates/pundit/active_admin/comment_policy.rb
|
176
|
+
- templates/pundit/active_admin/page_policy.rb
|
175
177
|
- templates/rack_mini_profiler.rb
|
176
178
|
- templates/rails_helper.rb
|
177
179
|
- templates/redis.rake
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rails/generators/active_record'
|
3
|
-
module ActiveRecord
|
4
|
-
module Generators # :nodoc:
|
5
|
-
class ModelGenerator < Base # :nodoc:
|
6
|
-
argument :attributes, type: :array, default: [], banner: 'field[:type][:index] field[:type][:index]'
|
7
|
-
|
8
|
-
check_class_collision
|
9
|
-
|
10
|
-
class_option :migration, type: :boolean
|
11
|
-
class_option :timestamps, type: :boolean
|
12
|
-
class_option :parent, type: :string, desc: 'The parent class for the generated model'
|
13
|
-
class_option :indexes, type: :boolean, default: true, desc: 'Add indexes for references and belongs_to columns'
|
14
|
-
|
15
|
-
# creates the migration file for the model.
|
16
|
-
|
17
|
-
def create_migration_file
|
18
|
-
return unless options[:migration] && options[:parent].nil?
|
19
|
-
attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if options[:indexes] == false
|
20
|
-
migration_template '../../migration/templates/create_table_migration.rb', "db/migrate/create_#{table_name}.rb"
|
21
|
-
end
|
22
|
-
|
23
|
-
def create_model_file
|
24
|
-
template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
25
|
-
end
|
26
|
-
|
27
|
-
def create_module_file
|
28
|
-
return if regular_class_path.empty?
|
29
|
-
template 'module.rb', File.join('app/models', "#{class_path.join('/')}.rb") if behavior == :invoke
|
30
|
-
end
|
31
|
-
|
32
|
-
def attributes_with_index
|
33
|
-
attributes.select { |a| !a.reference? && a.has_index? }
|
34
|
-
end
|
35
|
-
|
36
|
-
def accessible_attributes
|
37
|
-
attributes.reject(&:reference?)
|
38
|
-
end
|
39
|
-
|
40
|
-
hook_for :test_framework
|
41
|
-
|
42
|
-
protected
|
43
|
-
|
44
|
-
# Used by the migration template to determine the parent name of the model
|
45
|
-
def parent_class_name
|
46
|
-
options[:parent] || 'AbstractModel'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|