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.
20 21 22 23 24 25 26 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 20 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.
28 29 30 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 28 def class_name @class_name end |
Class Method Details
.from_env(env = ENV) ⇒ Object
11 12 13 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 11 def self.from_env(env = ENV) from_name(env["user_model"].to_s.strip) end |
.from_name(name) ⇒ Object
15 16 17 18 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 15 def self.from_name(name) name = DEFAULT_CLASS if name.empty? new(name) end |
Instance Method Details
#adapt_example_test_source(content) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 97 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
53 54 55 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 53 def controller_name "#{class_name.pluralize}Controller" end |
#controller_path ⇒ Object
57 58 59 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 57 def controller_path "app/controllers/#{table_name}_controller.rb" end |
#default? ⇒ Boolean
30 31 32 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 30 def default? class_name == DEFAULT_CLASS end |
#devise_migration_basename ⇒ Object
69 70 71 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 69 def devise_migration_basename "devise_create_#{table_name}" end |
#devise_migration_class ⇒ Object
73 74 75 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 73 def devise_migration_class "DeviseCreate#{class_name.pluralize}" end |
#devise_route_line ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 85 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
42 43 44 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 42 def foreign_key "#{class_name.underscore}_id" end |
#join_migration_basename ⇒ Object
77 78 79 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 77 def join_migration_basename "inline_forms_create_join_table_#{class_name.underscore}_role" end |
#join_migration_class ⇒ Object
81 82 83 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 81 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).
47 48 49 50 51 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 47 def join_table return "roles_users" if default? [table_name, "roles"].sort.join("_") end |
#model_path ⇒ Object
61 62 63 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 61 def model_path "app/models/#{class_name.underscore}.rb" end |
#plural_route ⇒ Object
38 39 40 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 38 def plural_route table_name end |
#sign_in_path_fragment ⇒ Object
93 94 95 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 93 def sign_in_path_fragment "/auth/#{default? ? 'users' : plural_route}/sign_in" end |
#tab_key ⇒ Object
65 66 67 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 65 def tab_key class_name.underscore.to_sym end |
#table_name ⇒ Object
34 35 36 |
# File 'lib/inline_forms_installer/user_model_config.rb', line 34 def table_name class_name.tableize end |