eac_rails_utils 0.6.0 → 0.7.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.
- checksums.yaml +4 -4
- data/app/helpers/eac_rails_utils/formatter_helper.rb +34 -0
- data/app/helpers/eac_rails_utils/links_helper.rb +69 -0
- data/lib/eac_rails_utils.rb +0 -2
- data/lib/eac_rails_utils/version.rb +1 -1
- data/test/app/helpers/eac_rails_utils/formatter_helper_test.rb +20 -0
- metadata +6 -5
- data/lib/eac_rails_utils/helpers/formatter.rb +0 -36
- data/test/lib/eac_rails_utils/helpers/formatter_test.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f71207400c361bf17bc680e3d653a9f9f7b57cb8342dda2e7d27adc757714a22
|
4
|
+
data.tar.gz: f79f986ac9e8096ed31c7096436083f67cf2951f1e676e51001055b755d2d644
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af66a26c332e71970051b281bf1c4dc9998699cb9db894d9fdf687e02815da431075ca627a489f3eb1bc0c6e4dc7ca8c8eabfba9d4f4fdc58401ad345fbc304a
|
7
|
+
data.tar.gz: 6cbc2b7d6368112a81b7758b90a0f4e927d05b4ff176e99d9f37c352dbd5027ea2bbc41b2bb80960a6486cd60a61aca02d01e501da661e62bb7681115a91987e
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module EacRailsUtils
|
3
|
+
module FormatterHelper
|
4
|
+
include ActionView::Helpers::NumberHelper
|
5
|
+
|
6
|
+
def value_or_sign(value, sign = '-', &block)
|
7
|
+
return sign if value.blank?
|
8
|
+
return yield(value) if block
|
9
|
+
value
|
10
|
+
end
|
11
|
+
|
12
|
+
def format_real(value)
|
13
|
+
number_to_currency(
|
14
|
+
value,
|
15
|
+
unit: 'R$ ',
|
16
|
+
separator: ',',
|
17
|
+
delimiter: '.',
|
18
|
+
raise: true
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def format_percentage(float_value)
|
23
|
+
number_to_percentage(float_value * 100, precision: 0)
|
24
|
+
end
|
25
|
+
|
26
|
+
def brl_currency_to_float(currency)
|
27
|
+
currency.to_s.gsub(/[R$ .]/, '').tr(',', '.').to_f
|
28
|
+
end
|
29
|
+
|
30
|
+
def format_cep(cep)
|
31
|
+
"#{cep[0, 5]}-#{cep[5, 3]}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module EacRailsUtils
|
3
|
+
module LinksHelper
|
4
|
+
def short_delete_link(object)
|
5
|
+
short_object_link object, '', class: 'delete_link', method: :delete, target: '_blank',
|
6
|
+
title: ::I18n.t('eac_rails_base0.links.delete_object',
|
7
|
+
label: object.to_s),
|
8
|
+
data: {
|
9
|
+
confirm: ::I18n.t('eac_rails_base0.links.delete_confirm',
|
10
|
+
label: object.to_s)
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def short_edit_link(object)
|
15
|
+
short_object_link object, 'edit', class: 'edit_link', target: '_blank',
|
16
|
+
title: ::I18n.t('eac_rails_base0.links.edit_object',
|
17
|
+
label: object.to_s)
|
18
|
+
end
|
19
|
+
|
20
|
+
def short_goto_link(url)
|
21
|
+
value_or_sign(url, '') do |value|
|
22
|
+
link_to '', value, class: 'goto_link', target: '_blank',
|
23
|
+
title: ::I18n.t('eac_rails_base0.links.goto_url', url: value.to_s)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def short_show_link(object)
|
28
|
+
short_detail_show_link(object, false)
|
29
|
+
end
|
30
|
+
|
31
|
+
def short_detail_link(object)
|
32
|
+
short_detail_show_link(object, true)
|
33
|
+
end
|
34
|
+
|
35
|
+
def object_path(object, action = nil)
|
36
|
+
current_class = object.class
|
37
|
+
tried_paths = []
|
38
|
+
while current_class
|
39
|
+
path = object_path_by_class(current_class, action)
|
40
|
+
return send(path, object) if respond_to?(path)
|
41
|
+
tried_paths << path
|
42
|
+
current_class = current_class.superclass
|
43
|
+
end
|
44
|
+
raise "Path not found for {object: #{object.class}, action: \"#{action}\"}" \
|
45
|
+
"(Tried: #{tried_paths})"
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def short_detail_show_link(object, detail)
|
51
|
+
short_object_link object,
|
52
|
+
detail ? 'detail' : nil,
|
53
|
+
class: 'show_link', target: '_blank',
|
54
|
+
title: ::I18n.t('eac_rails_base0.links.show_object', label: object.to_s)
|
55
|
+
end
|
56
|
+
|
57
|
+
def short_object_link(object, action = nil, options = {})
|
58
|
+
value_or_sign(object, '') do |value|
|
59
|
+
link_to '', object_path(value, action), options
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def object_path_by_class(klass, action)
|
64
|
+
path = "#{klass.name.underscore.tr('/', '_')}_url"
|
65
|
+
path = "#{action}_#{path}" if action.present?
|
66
|
+
path
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/eac_rails_utils.rb
CHANGED
@@ -7,7 +7,6 @@ module EacRailsUtils
|
|
7
7
|
require 'ofx-parser'
|
8
8
|
require 'virtus'
|
9
9
|
|
10
|
-
require_dependency 'eac_rails_utils/helpers/formatter'
|
11
10
|
require 'eac_rails_utils/patches/action_controller_base'
|
12
11
|
require 'eac_rails_utils/patches/model_attribute_required'
|
13
12
|
require 'eac_rails_utils/patches/ofx_parser'
|
@@ -41,7 +40,6 @@ module EacRailsUtils
|
|
41
40
|
require 'eac/source_target_fixtures'
|
42
41
|
require 'eac/test_utils'
|
43
42
|
|
44
|
-
ActionView::Base.send :include, ::EacRailsUtils::Helpers::Formatter
|
45
43
|
ActionView::Base.send :include, Eac::CommonFormHelper
|
46
44
|
ActionView::Base.send :include, Eac::DataTableHelper
|
47
45
|
ActionView::Base.send :include, Eac::MenusHelper
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module EacRailsUtils
|
5
|
+
class FormatterHelperTest < ActionView::TestCase
|
6
|
+
include ::EacRailsUtils::FormatterHelper
|
7
|
+
|
8
|
+
test 'should convert BRL currency to float' do
|
9
|
+
brl_currency = { a: '1', b: '1,2', c: '1,23', d: '123.456.789,01',
|
10
|
+
e: 'R$1,23', f: 'R$ 123.4,56' }
|
11
|
+
float_currency = { a: 1, b: 1.2, c: 1.23, d: 123_456_789.01,
|
12
|
+
e: 1.23, f: 123_4.56 }
|
13
|
+
|
14
|
+
brl_currency.each do |k, v|
|
15
|
+
assert_equal float_currency[k], brl_currency_to_float(v),
|
16
|
+
"#{v} should be #{float_currency[k]}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_rails_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- E.A.C.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel-associations
|
@@ -135,6 +135,8 @@ extensions: []
|
|
135
135
|
extra_rdoc_files: []
|
136
136
|
files:
|
137
137
|
- Rakefile
|
138
|
+
- app/helpers/eac_rails_utils/formatter_helper.rb
|
139
|
+
- app/helpers/eac_rails_utils/links_helper.rb
|
138
140
|
- app/helpers/eac_rails_utils/open_graph_protocol_helper.rb
|
139
141
|
- lib/assets/javascripts/currency_field.js
|
140
142
|
- lib/assets/javascripts/eac_rails_utils.js
|
@@ -179,12 +181,12 @@ files:
|
|
179
181
|
- lib/eac/test_utils.rb
|
180
182
|
- lib/eac_rails_utils.rb
|
181
183
|
- lib/eac_rails_utils/engine.rb
|
182
|
-
- lib/eac_rails_utils/helpers/formatter.rb
|
183
184
|
- lib/eac_rails_utils/patches/action_controller_base.rb
|
184
185
|
- lib/eac_rails_utils/patches/model_attribute_required.rb
|
185
186
|
- lib/eac_rails_utils/patches/ofx_parser.rb
|
186
187
|
- lib/eac_rails_utils/tableless_model.rb
|
187
188
|
- lib/eac_rails_utils/version.rb
|
189
|
+
- test/app/helpers/eac_rails_utils/formatter_helper_test.rb
|
188
190
|
- test/dummy/Rakefile
|
189
191
|
- test/dummy/app/models/job.rb
|
190
192
|
- test/dummy/app/models/user.rb
|
@@ -216,7 +218,6 @@ files:
|
|
216
218
|
- test/lib/eac/source_target_fixtures_test_files/a.target.yaml
|
217
219
|
- test/lib/eac/source_target_fixtures_test_files/b.source.html
|
218
220
|
- test/lib/eac/source_target_fixtures_test_files/c.target.yaml
|
219
|
-
- test/lib/eac_rails_utils/helpers/formatter_test.rb
|
220
221
|
- test/lib/eac_rails_utils/patches/model_attribute_required_test.rb
|
221
222
|
- test/lib/eac_rails_utils/tableless_model_test.rb
|
222
223
|
- test/test_helper.rb
|
@@ -245,7 +246,6 @@ specification_version: 4
|
|
245
246
|
summary: Código reutilizável para as aplicações Rails da E.A.C..
|
246
247
|
test_files:
|
247
248
|
- test/lib/eac_rails_utils/tableless_model_test.rb
|
248
|
-
- test/lib/eac_rails_utils/helpers/formatter_test.rb
|
249
249
|
- test/lib/eac_rails_utils/patches/model_attribute_required_test.rb
|
250
250
|
- test/lib/eac/source_target_fixtures_test.rb
|
251
251
|
- test/lib/eac/listable_test.rb
|
@@ -278,4 +278,5 @@ test_files:
|
|
278
278
|
- test/dummy/db/migrate/20160415125333_create_users.rb
|
279
279
|
- test/dummy/db/migrate/20160415143123_create_jobs.rb
|
280
280
|
- test/dummy/db/migrate/20160415143229_add_job_to_users.rb
|
281
|
+
- test/app/helpers/eac_rails_utils/formatter_helper_test.rb
|
281
282
|
- test/test_helper.rb
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module EacRailsUtils
|
3
|
-
module Helpers
|
4
|
-
module Formatter
|
5
|
-
include ActionView::Helpers::NumberHelper
|
6
|
-
|
7
|
-
def value_or_sign(value, sign = '-', &block)
|
8
|
-
return sign if value.blank?
|
9
|
-
return yield(value) if block
|
10
|
-
value
|
11
|
-
end
|
12
|
-
|
13
|
-
def format_real(value)
|
14
|
-
number_to_currency(
|
15
|
-
value,
|
16
|
-
unit: 'R$ ',
|
17
|
-
separator: ',',
|
18
|
-
delimiter: '.',
|
19
|
-
raise: true
|
20
|
-
)
|
21
|
-
end
|
22
|
-
|
23
|
-
def format_percentage(float_value)
|
24
|
-
number_to_percentage(float_value * 100, precision: 0)
|
25
|
-
end
|
26
|
-
|
27
|
-
def brl_currency_to_float(currency)
|
28
|
-
currency.to_s.gsub(/[R$ .]/, '').tr(',', '.').to_f
|
29
|
-
end
|
30
|
-
|
31
|
-
def format_cep(cep)
|
32
|
-
"#{cep[0, 5]}-#{cep[5, 3]}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'test_helper'
|
3
|
-
|
4
|
-
module EacRailsUtils
|
5
|
-
module Helpers
|
6
|
-
class FormatterTest < ActionView::TestCase
|
7
|
-
include ::EacRailsUtils::Helpers::Formatter
|
8
|
-
|
9
|
-
test 'should convert BRL currency to float' do
|
10
|
-
brl_currency = { a: '1', b: '1,2', c: '1,23', d: '123.456.789,01',
|
11
|
-
e: 'R$1,23', f: 'R$ 123.4,56' }
|
12
|
-
float_currency = { a: 1, b: 1.2, c: 1.23, d: 123_456_789.01,
|
13
|
-
e: 1.23, f: 123_4.56 }
|
14
|
-
|
15
|
-
brl_currency.each do |k, v|
|
16
|
-
assert_equal float_currency[k], brl_currency_to_float(v),
|
17
|
-
"#{v} should be #{float_currency[k]}"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|