Class: DraftGenerators::DeviseCustomizationService
- Inherits:
-
Object
- Object
- DraftGenerators::DeviseCustomizationService
- Defined in:
- lib/devise_customization_service.rb
Instance Method Summary collapse
- #column_names ⇒ Object
- #column_names_string ⇒ Object
- #columns ⇒ Object
- #eligible_attributes ⇒ Object
- #form_fields_to_add ⇒ Object
-
#initialize(attributes) ⇒ DeviseCustomizationService
constructor
A new instance of DeviseCustomizationService.
- #input_field_block(column) ⇒ Object
- #protect_from_forgery_code ⇒ Object
- #security_field_block ⇒ Object
- #sign_in_resource_button_block ⇒ Object
- #update_resource_button_block ⇒ Object
Constructor Details
#initialize(attributes) ⇒ DeviseCustomizationService
Returns a new instance of DeviseCustomizationService.
5 6 7 |
# File 'lib/devise_customization_service.rb', line 5 def initialize(attributes) @attributes = attributes end |
Instance Method Details
#column_names ⇒ Object
73 74 75 |
# File 'lib/devise_customization_service.rb', line 73 def column_names columns.map(&:name) end |
#column_names_string ⇒ Object
77 78 79 |
# File 'lib/devise_customization_service.rb', line 77 def column_names_string ":" + column_names.join(", :").to_s end |
#columns ⇒ Object
85 86 87 |
# File 'lib/devise_customization_service.rb', line 85 def columns @_columns ||= eligible_attributes end |
#eligible_attributes ⇒ Object
89 90 91 92 93 |
# File 'lib/devise_customization_service.rb', line 89 def eligible_attributes @attributes.reject do |attribute| %w(id created_at updated_at email password).include?(attribute.name) end end |
#form_fields_to_add ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/devise_customization_service.rb', line 9 def form_fields_to_add form_fields = "" columns.each do |column| form_fields += input_field_block(column) end form_fields end |
#input_field_block(column) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/devise_customization_service.rb', line 17 def input_field_block(column) column_name = column.name %{ <!-- Devise Input for #{column_name} start --> <div class="form-group"> <% #{column_name}_was_invalid = resource.errors.include?(:#{column_name}) %> <% #{column_name}_class = "form-control" %> <% if was_validated %> <% if #{column_name}_was_invalid %> <% #{column_name}_class << " is-invalid" %> <% else %> <% #{column_name}_class << " is-valid" %> <% end %> <% end %> <%= f.label :#{column_name} %> #{DraftGenerators::RailsTagService.input_tag(column)} <% if #{column_name}_was_invalid %> <% resource.errors.full_messages_for(:#{column_name}).each do |message| %> <div class="invalid-feedback d-flex"> <%= message %> </div> <% end %> <% end %> </div> <!-- Devise Input for #{column_name} end --> } end |
#protect_from_forgery_code ⇒ Object
81 82 83 |
# File 'lib/devise_customization_service.rb', line 81 def protect_from_forgery_code "protect_from_forgery with: :exception" end |
#security_field_block ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/devise_customization_service.rb', line 50 def security_field_block return "" if eligible_attributes.empty? " before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, :keys => [#{column_names_string}]) devise_parameter_sanitizer.permit(:account_update, :keys => [#{column_names_string}]) end" end |
#sign_in_resource_button_block ⇒ Object
69 70 71 |
# File 'lib/devise_customization_service.rb', line 69 def %{ <%= f.button class: "btn btn-outline-primary btn-block" %>} end |
#update_resource_button_block ⇒ Object
65 66 67 |
# File 'lib/devise_customization_service.rb', line 65 def %{ <%= f.submit "Update", class: "btn btn-block btn-outline-primary" %>} end |