Class: InlineFormsInstaller::UserModelConfig
- Inherits:
-
Object
- Object
- InlineFormsInstaller::UserModelConfig
- Defined in:
- lib/inline_forms_installer/user_model_config.rb
Overview
Devise mapping stays on :users (Warden scope :user → current_user in inline_forms). A custom class (e.g. Member) uses members table, /members routes, and devise_for :users, class_name: "Member", path: "members".
Constant Summary collapse
- DEFAULT_CLASS =
"User"
Instance Attribute Summary collapse
-
#class_name ⇒ Object
readonly
Returns the value of attribute class_name.
Class Method Summary collapse
Instance Method Summary collapse
- #adapt_example_test_source(content) ⇒ Object
- #controller_name ⇒ Object
- #controller_path ⇒ Object
- #default? ⇒ Boolean
- #devise_migration_basename ⇒ Object
- #devise_migration_class ⇒ Object
- #devise_route_line ⇒ Object
- #foreign_key ⇒ Object
-
#initialize(class_name) ⇒ UserModelConfig
constructor
A new instance of UserModelConfig.
- #join_migration_basename ⇒ Object
- #join_migration_class ⇒ Object
-
#join_table ⇒ Object
Rails HABTM join table: plural model names in lexical order (roles_users, members_roles).
- #model_path ⇒ Object
- #plural_route ⇒ Object
- #sign_in_path_fragment ⇒ Object
- #tab_key ⇒ Object
- #table_name ⇒ Object
Constructor Details
#initialize(class_name) ⇒ UserModelConfig
Returns a new instance of UserModelConfig.
21 22 23 24 25 26 27 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 21 def initialize(class_name) unless class_name.match?(/\A[A-Z][A-Za-z0-9]*\z/) raise ArgumentError, "user model must be a Ruby constant (e.g. User, Member)" end @class_name = class_name end |
Instance Attribute Details
#class_name ⇒ Object (readonly)
Returns the value of attribute class_name.
29 30 31 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 29 def class_name @class_name end |
Class Method Details
.from_env(env = ENV) ⇒ Object
12 13 14 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 12 def self.from_env(env = ENV) from_name(env["user_model"].to_s.strip) end |
.from_name(name) ⇒ Object
16 17 18 19 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 16 def self.from_name(name) name = DEFAULT_CLASS if name.empty? new(name) end |
Instance Method Details
#adapt_example_test_source(content) ⇒ Object
98 99 100 101 102 103 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 98 def adapt_example_test_source(content) return content if default? content = content.gsub("User", class_name) content.gsub(%r{/auth/users/sign_in}, sign_in_path_fragment) end |
#controller_name ⇒ Object
54 55 56 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 54 def controller_name "#{class_name.pluralize}Controller" end |
#controller_path ⇒ Object
58 59 60 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 58 def controller_path "app/controllers/#{table_name}_controller.rb" end |
#default? ⇒ Boolean
31 32 33 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 31 def default? class_name == DEFAULT_CLASS end |
#devise_migration_basename ⇒ Object
70 71 72 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 70 def devise_migration_basename "devise_create_#{table_name}" end |
#devise_migration_class ⇒ Object
74 75 76 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 74 def devise_migration_class "DeviseCreate#{class_name.pluralize}" end |
#devise_route_line ⇒ Object
86 87 88 89 90 91 92 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 86 def devise_route_line if default? "devise_for :users, :path_prefix => 'auth'" else "devise_for :users, class_name: \"#{class_name}\", path: \"#{plural_route}\", path_prefix: 'auth'" end end |
#foreign_key ⇒ Object
43 44 45 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 43 def foreign_key "#{class_name.underscore}_id" end |
#join_migration_basename ⇒ Object
78 79 80 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 78 def join_migration_basename "inline_forms_create_join_table_#{class_name.underscore}_role" end |
#join_migration_class ⇒ Object
82 83 84 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 82 def join_migration_class "InlineFormsCreateJoinTable#{class_name}Role" end |
#join_table ⇒ Object
Rails HABTM join table: plural model names in lexical order (roles_users, members_roles).
48 49 50 51 52 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 48 def join_table return "roles_users" if default? [ table_name, "roles" ].sort.join("_") end |
#model_path ⇒ Object
62 63 64 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 62 def model_path "app/models/#{class_name.underscore}.rb" end |
#plural_route ⇒ Object
39 40 41 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 39 def plural_route table_name end |
#sign_in_path_fragment ⇒ Object
94 95 96 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 94 def sign_in_path_fragment "/auth/#{default? ? 'users' : plural_route}/sign_in" end |
#tab_key ⇒ Object
66 67 68 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 66 def tab_key class_name.underscore.to_sym end |
#table_name ⇒ Object
35 36 37 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 35 def table_name class_name.tableize end |