eac_rails_utils 0.10.0 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper.rb +5 -1
  3. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder.rb +10 -2
  4. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/association_select_field.rb +1 -1
  5. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/common_text_fields.rb +1 -1
  6. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/currency_field.rb +1 -1
  7. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/date_field.rb +1 -1
  8. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/fields_for.rb +1 -1
  9. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/file_field.rb +1 -1
  10. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/radio_select_field.rb +1 -1
  11. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/searchable_association_field.rb +1 -1
  12. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/select_field.rb +3 -2
  13. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/time_field.rb +1 -1
  14. data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/year_month_field.rb +1 -1
  15. data/app/helpers/eac_rails_utils/data_table_helper.rb +13 -0
  16. data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/column.rb +1 -1
  17. data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/data_table.rb +2 -2
  18. data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/setup.rb +2 -2
  19. data/app/helpers/eac_rails_utils/links_helper.rb +5 -5
  20. data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper.rb +5 -1
  21. data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/bootstrap_gui_builder.rb +1 -1
  22. data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/data_builder.rb +1 -1
  23. data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/gui_builder.rb +1 -1
  24. data/{lib/eac → app/validators/eac_rails_utils}/cpf_validator.rb +1 -1
  25. data/{lib/eac → app/validators/eac_rails_utils}/no_presence_validator.rb +1 -1
  26. data/config/locales/en.yml +8 -0
  27. data/config/locales/pt-BR.yml +8 -0
  28. data/lib/eac_rails_utils.rb +2 -39
  29. data/lib/eac_rails_utils/engine.rb +2 -0
  30. data/lib/{eac → eac_rails_utils}/htmlbeautifier.rb +1 -1
  31. data/lib/eac_rails_utils/models.rb +9 -0
  32. data/lib/eac_rails_utils/models/attribute_required.rb +43 -0
  33. data/lib/eac_rails_utils/models/fetch_errors.rb +92 -0
  34. data/lib/eac_rails_utils/models/inequality_queries.rb +39 -0
  35. data/lib/eac_rails_utils/models/tableless.rb +97 -0
  36. data/lib/eac_rails_utils/models/test_utils.rb +65 -0
  37. data/lib/eac_rails_utils/patches.rb +9 -0
  38. data/lib/eac_rails_utils/patches/action_controller_base.rb +2 -0
  39. data/lib/eac_rails_utils/patches/active_model_associations.rb +38 -0
  40. data/lib/eac_rails_utils/version.rb +1 -1
  41. data/test/dummy/app/models/user.rb +4 -0
  42. data/test/{lib/eac → helpers/eac_rails_utils}/common_form_helper_test.rb +2 -2
  43. data/test/{lib/eac → helpers/eac_rails_utils}/data_table_test_helper_test.rb +2 -2
  44. data/test/{app/helpers → helpers}/eac_rails_utils/formatter_helper_test.rb +0 -0
  45. data/test/lib/eac_rails_utils/{patches/model_attribute_required_test.rb → models/attribute_required_test.rb} +1 -0
  46. data/test/lib/eac_rails_utils/models/fetch_errors_test.rb +80 -0
  47. data/test/lib/eac_rails_utils/models/tableless_test.rb +25 -0
  48. data/test/{lib/eac → validators}/cpf_validator_test.rb +2 -2
  49. metadata +68 -72
  50. data/lib/eac/data_table_helper.rb +0 -13
  51. data/lib/eac/inequality_queries.rb +0 -37
  52. data/lib/eac/model.rb +0 -90
  53. data/lib/eac/test_utils.rb +0 -61
  54. data/lib/eac_rails_utils/patches/model_attribute_required.rb +0 -34
  55. data/lib/eac_rails_utils/patches/ofx_parser.rb +0 -43
  56. data/lib/eac_rails_utils/tableless_model.rb +0 -92
  57. data/test/lib/eac/model_test.rb +0 -78
  58. data/test/lib/eac/source_target_fixtures_test_files/a.source.html +0 -1
  59. data/test/lib/eac/source_target_fixtures_test_files/a.target.yaml +0 -1
  60. data/test/lib/eac/source_target_fixtures_test_files/b.source.html +0 -1
  61. data/test/lib/eac/source_target_fixtures_test_files/c.target.yaml +0 -1
  62. data/test/lib/eac_rails_utils/tableless_model_test.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab860f53094962e32a5e54686f4cb83382c0a60509837057e68f64c649c3d97b
4
- data.tar.gz: e14470c3dca4c307484ea19896c3b6742ab797a0fdf97b80737624fc03209b57
3
+ metadata.gz: 54bbe456abde5a3d0732e51ff54287e49520aa889458d080ec653b0a8c0942b9
4
+ data.tar.gz: 4ac9e4b61c7776d7447cbc368a95e8f8efd5a048719acd08af830b79dce9bbb8
5
5
  SHA512:
6
- metadata.gz: 11a1e93764e5dc3d5fa6a362ad518bbbcc451962e6240038d840e2c46ae71dc63b5a14fa3af6b9cac56295e0b92d07c0bb34dd2c22d02df9961f2052e36f2bde
7
- data.tar.gz: c846e7c3205d37f615bbcd2f321cd99ef1e4e6ee4e90e6aa68c809eb97b2610f1543e2ba55d4b455067d180a6c9ba58bcfd74b606229ca3720c8f2bb0ab0c778
6
+ metadata.gz: ede9ed5dbc28c84f3b4d681e98fd91648b8c190161bac4716c41598bdff227efb66033e1a157508148ff7b4b64b197824dfdda25e3c7642eb9e2430e382861d0
7
+ data.tar.gz: d018208530ad259086c4e76d6c89b6cf930d810bd11dff3f2a583ffe3ad0708eb309924f4f152cc9e98cf409eb477f3208ffc88f0263b9ae467cbff3dc6d2b15
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module EacRailsUtils
4
6
  module CommonFormHelper
7
+ ::EacRubyUtils.require_sub __FILE__
8
+
5
9
  def common_form(model_instance, options = {}, &block)
6
10
  submit_label = options.delete(:submit_label)
7
11
  options[:html] ||= {}
@@ -1,8 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ require 'eac_ruby_utils/require_sub'
4
+ require 'eac_rails_utils/models/attribute_required'
5
+
6
+ module EacRailsUtils
4
7
  module CommonFormHelper
5
8
  class FormBuilder
9
+ ::EacRubyUtils.require_sub __FILE__
10
+
6
11
  include AssociationSelectField
7
12
  include CommonTextFields
8
13
  include CurrencyField
@@ -87,7 +92,10 @@ module Eac
87
92
  end
88
93
 
89
94
  def field_label(field_name, label, required)
90
- required = model_instance.attribute_required?(field_name) if required.nil?
95
+ if required.nil?
96
+ required = ::EacRailsUtils::Models::AttributeRequired
97
+ .required?(model_instance, field_name)
98
+ end
91
99
  @form.label(field_name, label, class: required ? 'required' : 'optional')
92
100
  end
93
101
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module AssociationSelectField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module CommonTextFields
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module CurrencyField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module DateField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module FieldsFor
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module FileField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module RadioSelectField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  class SearchableAssociationField
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module SelectField
7
7
  def select_field(field_name, options = {})
8
8
  options = options.dup
9
9
  field(field_name, options) do
10
- form.select(field_name, select_options(field_name, options))
10
+ form.select(field_name, select_options(field_name, options),
11
+ options, options[:html] || {})
11
12
  end
12
13
  end
13
14
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module TimeField
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module CommonFormHelper
5
5
  class FormBuilder
6
6
  module YearMonthField
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module EacRailsUtils
6
+ module DataTableHelper
7
+ ::EacRubyUtils.require_sub __FILE__
8
+
9
+ def data_table(dataset, &block)
10
+ ::EacRailsUtils::DataTableHelper::DataTable.new(self, dataset, &block).output
11
+ end
12
+ end
13
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module DataTableHelper
5
5
  class Column
6
6
  EMPTY_VALUE = '-'
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module DataTableHelper
5
5
  class DataTable
6
6
  def initialize(view, dataset)
7
7
  @view = view
8
8
  @dataset = dataset
9
- @setup = ::Eac::DataTableHelper::Setup.new
9
+ @setup = ::EacRailsUtils::DataTableHelper::Setup.new
10
10
  yield(@setup)
11
11
  end
12
12
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module DataTableHelper
5
5
  class Setup
6
6
  attr_reader :columns
@@ -12,7 +12,7 @@ module Eac
12
12
  end
13
13
 
14
14
  def column(label, path = nil, &block)
15
- @columns << ::Eac::DataTableHelper::Column.new(label, path, block)
15
+ @columns << ::EacRailsUtils::DataTableHelper::Column.new(label, path, block)
16
16
  end
17
17
  end
18
18
  end
@@ -4,24 +4,24 @@ module EacRailsUtils
4
4
  module LinksHelper
5
5
  def short_delete_link(object)
6
6
  short_object_link object, '', class: 'delete_link', method: :delete, target: '_blank',
7
- title: ::I18n.t('eac_rails_base0.links.delete_object',
7
+ title: ::I18n.t('eac_rails_utils.links.delete_object',
8
8
  label: object.to_s),
9
9
  data: {
10
- confirm: ::I18n.t('eac_rails_base0.links.delete_confirm',
10
+ confirm: ::I18n.t('eac_rails_utils.links.delete_confirm',
11
11
  label: object.to_s)
12
12
  }
13
13
  end
14
14
 
15
15
  def short_edit_link(object)
16
16
  short_object_link object, 'edit', class: 'edit_link', target: '_blank',
17
- title: ::I18n.t('eac_rails_base0.links.edit_object',
17
+ title: ::I18n.t('eac_rails_utils.links.edit_object',
18
18
  label: object.to_s)
19
19
  end
20
20
 
21
21
  def short_goto_link(url)
22
22
  value_or_sign(url, '') do |value|
23
23
  link_to '', value, class: 'goto_link', target: '_blank',
24
- title: ::I18n.t('eac_rails_base0.links.goto_url', url: value.to_s),
24
+ title: ::I18n.t('eac_rails_utils.links.goto_url', url: value.to_s),
25
25
  rel: 'noopener'
26
26
  end
27
27
  end
@@ -54,7 +54,7 @@ module EacRailsUtils
54
54
  short_object_link object,
55
55
  detail ? 'detail' : nil,
56
56
  class: 'show_link', target: '_blank',
57
- title: ::I18n.t('eac_rails_base0.links.show_object', label: object.to_s)
57
+ title: ::I18n.t('eac_rails_utils.links.show_object', label: object.to_s)
58
58
  end
59
59
 
60
60
  def short_object_link(object, action = nil, options = {})
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module EacRailsUtils
4
6
  module MenusHelper
7
+ ::EacRubyUtils.require_sub __FILE__
8
+
5
9
  def dropdown_menu(entries)
6
10
  entries = DataBuilder.new(self).build(entries)
7
11
  return nil unless entries
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module MenusHelper
5
5
  # http://bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3
6
6
  class BootstrapGuiBuilder
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module MenusHelper
5
5
  class DataBuilder
6
6
  def initialize(view)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  module MenusHelper
5
5
  class GuiBuilder
6
6
  def initialize(view)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  class CpfValidator < ActiveModel::EachValidator
5
5
  def validate_each(record, attribute, value)
6
6
  return if Cpf.new(value).valid?
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Eac
3
+ module EacRailsUtils
4
4
  # https://stackoverflow.com/questions/10070786/rails-3-validation-presence-false
5
5
  class NoPresenceValidator < ActiveModel::EachValidator
6
6
  def validate_each(record, attribute, _value)
@@ -0,0 +1,8 @@
1
+ en:
2
+ eac_rails_utils:
3
+ links:
4
+ delete_confirm: Do you confirm "%{label}"'s removal?
5
+ delete_object: Remove "%{label}".
6
+ edit_object: Edit "%{label}".
7
+ goto_url: Go to %{url}.
8
+ show_object: Show "%{label}".
@@ -0,0 +1,8 @@
1
+ pt-BR:
2
+ eac_rails_utils:
3
+ links:
4
+ delete_confirm: Confirma a remoção de "%{label}"?
5
+ delete_object: Remover "%{label}".
6
+ edit_object: Editar "%{label}".
7
+ goto_url: Ir para %{url}.
8
+ show_object: Mostrar "%{label}".
@@ -1,44 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/dependencies'
3
+ require 'eac_ruby_utils/require_sub'
4
4
 
5
5
  module EacRailsUtils
6
- require 'activemodel/associations'
7
- require 'nested_form_fields'
8
- require 'ofx-parser'
9
- require 'virtus'
10
-
11
- require 'eac_rails_utils/patches/action_controller_base'
12
- require 'eac_rails_utils/patches/model_attribute_required'
13
- require 'eac_rails_utils/patches/ofx_parser'
14
- require 'eac_rails_utils/engine'
15
- require 'eac_rails_utils/tableless_model'
16
- require 'eac/cpf_validator'
17
- require 'eac/common_form_helper/form_builder/association_select_field'
18
- require 'eac/common_form_helper/form_builder/common_text_fields'
19
- require 'eac/common_form_helper/form_builder/currency_field'
20
- require 'eac/common_form_helper/form_builder/date_field'
21
- require 'eac/common_form_helper/form_builder/fields_for'
22
- require 'eac/common_form_helper/form_builder/file_field'
23
- require 'eac/common_form_helper/form_builder/radio_select_field'
24
- require 'eac/common_form_helper/form_builder/searchable_association_field'
25
- require 'eac/common_form_helper/form_builder/select_field'
26
- require 'eac/common_form_helper/form_builder/time_field'
27
- require 'eac/common_form_helper/form_builder/year_month_field'
28
- require 'eac/common_form_helper/form_builder'
29
- require 'eac/common_form_helper'
30
- require 'eac/data_table_helper'
31
- require 'eac/htmlbeautifier'
32
- require 'eac/inequality_queries'
33
- require 'eac/menus_helper'
34
- require 'eac/menus_helper/bootstrap_gui_builder'
35
- require 'eac/menus_helper/data_builder'
36
- require 'eac/menus_helper/gui_builder'
37
- require 'eac/model'
38
- require 'eac/no_presence_validator'
39
- require 'eac/test_utils'
40
-
41
- ActionView::Base.include Eac::CommonFormHelper
42
- ActionView::Base.include Eac::DataTableHelper
43
- ActionView::Base.include Eac::MenusHelper
6
+ ::EacRubyUtils.require_sub __FILE__
44
7
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'nested_form_fields'
4
+
3
5
  module EacRailsUtils
4
6
  class Engine < ::Rails::Engine; end
5
7
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'htmlbeautifier'
4
4
 
5
- module Eac
5
+ module EacRailsUtils
6
6
  class Htmlbeautifier
7
7
  def self.beautify(string)
8
8
  ::HtmlBeautifier.beautify(string, tab_stops: 2) + "\n"
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module EacRailsUtils
6
+ module Models
7
+ ::EacRubyUtils.require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/concern'
4
+
5
+ module EacRailsUtils
6
+ module Models
7
+ module AttributeRequired
8
+ extend ::ActiveSupport::Concern
9
+
10
+ class << self
11
+ def required?(model_class_or_record, attribute)
12
+ model = model_class_or_record_to_model(model_class_or_record)
13
+ record = model.new
14
+ record.validate
15
+ record.errors.key?(attribute.to_sym)
16
+ end
17
+
18
+ private
19
+
20
+ def model_class_or_record_to_model(model_class_or_record)
21
+ model_class_or_record.is_a?(::Class) ? model_class_or_record : model_class_or_record.class
22
+ end
23
+ end
24
+
25
+ included do
26
+ extend ClassMethods
27
+ include InstanceMethods
28
+ end
29
+
30
+ module ClassMethods
31
+ def column_required?(column)
32
+ ::EacRailsUtils::Models::AttributeRequired.required?(self, column)
33
+ end
34
+ end
35
+
36
+ module InstanceMethods
37
+ def attribute_required?(column)
38
+ self.class.column_required?(column)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end