eac_rails_utils 0.8.0 → 0.9.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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/app/helpers/eac_rails_utils/formatter_helper.rb +2 -0
  4. data/app/helpers/eac_rails_utils/links_helper.rb +4 -1
  5. data/app/helpers/eac_rails_utils/open_graph_protocol_helper.rb +2 -0
  6. data/lib/eac/common_form_helper.rb +3 -0
  7. data/lib/eac/common_form_helper/form_builder.rb +2 -0
  8. data/lib/eac/common_form_helper/form_builder/association_select_field.rb +4 -1
  9. data/lib/eac/common_form_helper/form_builder/common_text_fields.rb +3 -2
  10. data/lib/eac/common_form_helper/form_builder/currency_field.rb +13 -11
  11. data/lib/eac/common_form_helper/form_builder/date_field.rb +2 -0
  12. data/lib/eac/common_form_helper/form_builder/fields_for.rb +2 -0
  13. data/lib/eac/common_form_helper/form_builder/file_field.rb +1 -0
  14. data/lib/eac/common_form_helper/form_builder/radio_select_field.rb +4 -1
  15. data/lib/eac/common_form_helper/form_builder/searchable_association_field.rb +6 -2
  16. data/lib/eac/common_form_helper/form_builder/select_field.rb +2 -0
  17. data/lib/eac/common_form_helper/form_builder/time_field.rb +1 -0
  18. data/lib/eac/common_form_helper/form_builder/year_month_field.rb +1 -0
  19. data/lib/eac/cpf_validator.rb +7 -3
  20. data/lib/eac/data_table_helper.rb +1 -0
  21. data/lib/eac/data_table_helper/column.rb +5 -2
  22. data/lib/eac/data_table_helper/data_table.rb +11 -9
  23. data/lib/eac/data_table_helper/setup.rb +1 -0
  24. data/lib/eac/htmlbeautifier.rb +2 -0
  25. data/lib/eac/inequality_queries.rb +2 -1
  26. data/lib/eac/menus_helper.rb +5 -1
  27. data/lib/eac/menus_helper/bootstrap_gui_builder.rb +7 -4
  28. data/lib/eac/menus_helper/data_builder.rb +6 -1
  29. data/lib/eac/menus_helper/gui_builder.rb +5 -2
  30. data/lib/eac/model.rb +8 -5
  31. data/lib/eac/no_presence_validator.rb +2 -2
  32. data/lib/eac/test_utils.rb +17 -12
  33. data/lib/eac_rails_utils.rb +4 -5
  34. data/lib/eac_rails_utils/engine.rb +1 -0
  35. data/lib/eac_rails_utils/patches/action_controller_base.rb +1 -0
  36. data/lib/eac_rails_utils/patches/model_attribute_required.rb +3 -0
  37. data/lib/eac_rails_utils/patches/ofx_parser.rb +5 -4
  38. data/lib/eac_rails_utils/tableless_model.rb +6 -4
  39. data/lib/eac_rails_utils/version.rb +2 -1
  40. data/test/app/helpers/eac_rails_utils/formatter_helper_test.rb +1 -0
  41. data/test/dummy/Rakefile +3 -1
  42. data/test/dummy/app/models/job.rb +2 -0
  43. data/test/dummy/app/models/user.rb +2 -0
  44. data/test/dummy/config.ru +2 -0
  45. data/test/dummy/config/application.rb +3 -1
  46. data/test/dummy/config/boot.rb +3 -1
  47. data/test/dummy/config/environment.rb +3 -1
  48. data/test/dummy/config/environments/test.rb +2 -0
  49. data/test/dummy/config/routes.rb +2 -0
  50. data/test/dummy/db/migrate/20160415125333_create_users.rb +2 -0
  51. data/test/dummy/db/migrate/20160415143123_create_jobs.rb +2 -0
  52. data/test/dummy/db/migrate/20160415143229_add_job_to_users.rb +2 -0
  53. data/test/lib/eac/common_form_helper_test.rb +2 -0
  54. data/test/lib/eac/cpf_validator_test.rb +2 -0
  55. data/test/lib/eac/{data_table_test_helper.rb → data_table_test_helper_test.rb} +2 -1
  56. data/test/lib/eac/model_test.rb +2 -0
  57. data/test/lib/eac_rails_utils/patches/model_attribute_required_test.rb +2 -0
  58. data/test/lib/eac_rails_utils/tableless_model_test.rb +1 -1
  59. data/test/test_helper.rb +3 -1
  60. metadata +65 -51
  61. data/lib/eac/parsers/files_test.rb +0 -63
  62. data/lib/eac/source_target_fixtures.rb +0 -66
  63. data/test/lib/eac/parsers/files_test_test.rb +0 -27
  64. data/test/lib/eac/parsers/ok_test_files/a.source.yaml +0 -1
  65. data/test/lib/eac/parsers/ok_test_files/a.target.yaml +0 -1
  66. data/test/lib/eac/parsers/ok_test_files/b.source.yaml +0 -1
  67. data/test/lib/eac/parsers/ok_test_files/b.target.yaml +0 -1
  68. data/test/lib/eac/source_target_fixtures_test.rb +0 -41
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'yaml'
3
-
4
- module Eac
5
- module Parsers
6
- module FilesTest
7
- def test_data
8
- if ENV['EAC_PARSERS_FILES_TEST_WRITE'].present?
9
- write_results
10
- else
11
- test_results
12
- end
13
- end
14
-
15
- protected
16
-
17
- def source_data(source_file)
18
- parser_class.new(source_file).data
19
- end
20
-
21
- def test_results
22
- sts = source_target_fixtures.source_target_files
23
- assert_not_equal 0, sts.count, 'Source/target files count cannot be zero'
24
- sts.each do |st|
25
- assert_source_target_complete(st)
26
- sd = source_data(st.source)
27
- td = YAML.load_file(st.target)
28
- assert_equal sort_results(td), sort_results(sd)
29
- end
30
- end
31
-
32
- def write_results
33
- source_target_fixtures.source_files.each do |source_file|
34
- sd = sort_results(source_data(source_file))
35
- basename = ::Eac::SourceTargetFixtures.source_target_basename(source_file)
36
- target_file = File.expand_path("../#{basename}.target.yaml", source_file)
37
- File.write(target_file, sd.to_yaml)
38
- end
39
- end
40
-
41
- def sort_results(r)
42
- r
43
- end
44
-
45
- private
46
-
47
- def assert_source_target_complete(st)
48
- assert st.source, "Source not found (Target: #{st.target})"
49
- assert st.target, "Target not found (Source: #{st.source})"
50
- end
51
-
52
- def source_target_fixtures
53
- @source_target_fixtures ||= ::Eac::SourceTargetFixtures.new(
54
- File.expand_path("../#{self.class.name.demodulize.underscore}_files", test_file)
55
- )
56
- end
57
-
58
- def parser_class
59
- self.class.name.gsub(/Test\z/, '').constantize
60
- end
61
- end
62
- end
63
- end
@@ -1,66 +0,0 @@
1
- # encoding: UTF-8
2
- # frozen_string_literal: true
3
-
4
- require 'yaml'
5
-
6
- module Eac
7
- # Lists pairs of source/target files in a directory. See {Eac::Parsers::FilesTest} to see
8
- # a use of this class.
9
- class SourceTargetFixtures
10
- class << self
11
- def source_target_basename(file)
12
- m = /^(.+)\.(?:source|target)(?:\..+)?$/.match(File.basename(file))
13
- m ? m[1] : nil
14
- end
15
- end
16
-
17
- attr_reader :fixtures_directory
18
-
19
- def initialize(fixtures_directory)
20
- @fixtures_directory = fixtures_directory
21
- end
22
-
23
- def source_target_files
24
- sources_targets_basenames.map do |basename|
25
- OpenStruct.new(source: source_file(basename), target: target_file(basename))
26
- end
27
- end
28
-
29
- def source_files
30
- r = []
31
- source_target_files.each do |st|
32
- r << st.source if st.source
33
- end
34
- r
35
- end
36
-
37
- private
38
-
39
- def target_file(basename)
40
- fixture_file(basename, 'target')
41
- end
42
-
43
- def source_file(basename)
44
- fixture_file(basename, 'source')
45
- end
46
-
47
- def fixture_file(basename, suffix)
48
- prefix = "#{basename}.#{suffix}"
49
- Dir.foreach(fixtures_directory) do |item|
50
- next if item == '.' || item == '..'
51
- return File.expand_path(item, fixtures_directory) if item.starts_with?(prefix)
52
- end
53
- nil
54
- end
55
-
56
- def sources_targets_basenames
57
- basenames = Set.new
58
- Dir.foreach(fixtures_directory) do |item|
59
- next if item == '.' || item == '..'
60
- b = self.class.source_target_basename(item)
61
- basenames << b if b.present?
62
- end
63
- basenames
64
- end
65
- end
66
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'test_helper'
3
-
4
- module Eac
5
- module Parsers
6
- class BaseStub
7
- def initialize(source)
8
- @source = source
9
- end
10
-
11
- def data
12
- YAML.load(File.read(@source))
13
- end
14
- end
15
-
16
- class Ok < BaseStub
17
- end
18
-
19
- class OkTest < ActiveSupport::TestCase
20
- include ::Eac::Parsers::FilesTest
21
-
22
- def test_file
23
- __FILE__
24
- end
25
- end
26
- end
27
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'test_helper'
3
-
4
- module Eac
5
- class SourceTargetFixturesTest < ActionView::TestCase
6
- def test_source_target_files
7
- r = ::Eac::SourceTargetFixtures.new(fixtures_dir).source_target_files
8
- assert_equal 3, r.count
9
-
10
- a = r.find { |x| x.source && File.basename(x.source) == 'a.source.html' }
11
- assert a
12
- assert_equal File.join(fixtures_dir, 'a.source.html'), a.source
13
- assert_equal File.join(fixtures_dir, 'a.target.yaml'), a.target
14
-
15
- b = r.find { |x| x.source && File.basename(x.source) == 'b.source.html' }
16
- assert b
17
- assert_equal File.join(fixtures_dir, 'b.source.html'), b.source
18
- assert_nil b.target
19
-
20
- c = r.find { |x| x.target && File.basename(x.target) == 'c.target.yaml' }
21
- assert c
22
- assert_nil c.source
23
- assert_equal File.join(fixtures_dir, 'c.target.yaml'), c.target
24
- end
25
-
26
- def test_source_files
27
- r = ::Eac::SourceTargetFixtures.new(fixtures_dir).source_files
28
- assert_equal 2, r.count
29
-
30
- %w(a.source.html b.source.html).each do |expected|
31
- assert r.include?(File.join(fixtures_dir, expected)), expected
32
- end
33
- end
34
-
35
- private
36
-
37
- def fixtures_dir
38
- File.expand_path('../source_target_fixtures_test_files', __FILE__)
39
- end
40
- end
41
- end