localizable_value 0.1.21 → 0.1.22

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d6cc6a6d8f8a439e5b57bb7feab8e2922123db8
4
- data.tar.gz: 70276c154a77cc2426100762a24cee802db5dcbc
3
+ metadata.gz: 32239c21069ff19b56e90880680b0526d522fb19
4
+ data.tar.gz: ef07f922c5d7e24b78d2febc3221fb15cc0b7c61
5
5
  SHA512:
6
- metadata.gz: f1779dfabb1591b05ef7372843c5f872903faf2e56a81246138c5f927484590f401c31e2cca250f0eb50454464d4a9372c39ea7622f11e6f7d4bcb1e51f40739
7
- data.tar.gz: 1a15a88b687b88377aeb241336e4dfd50a6fb8e829668d145d8d1248a936d8b32503e8c8f3d642ca8e48200e93e6ecf86ed8036344f9fbd5caaddb1683b77226
6
+ metadata.gz: b5159c2029b384de2982e5ccd401371f1ec2f0d912174059233afe7459eecee72e53216ac3f1407b2dcaf8531779ce466d18c14871589c88eeff8e630185bd6a
7
+ data.tar.gz: 85e7bfd8d44990111a1692927c4e84078c65b0cdd42ea8a1b4a88766968bdae1f27c276a5ff516c8da52238c4029660212e8b2e3ca8cf0388272b6f7d5f3830e
@@ -24,4 +24,79 @@ module LocalizableValueHelper
24
24
  def localized_value_link_attr(page, key, default_value, attrs)
25
25
  render partial: 'localizable_value/link_attr', :locals => { localized_page: page, key: key, default_value: default_value, attrs: attrs }
26
26
  end
27
+
28
+ def content_tag(*args)
29
+ if block_given?
30
+ tag = Tag.new(args[0], args[1] || {})
31
+ old_buf = @output_buffer
32
+ @output_buffer = ActionView::OutputBuffer.new
33
+ value = yield(tag)
34
+ content = tag.render(@output_buffer.presence || value)
35
+ @output_buffer = old_buf
36
+ content
37
+ else
38
+ super
39
+ end
40
+ end
41
+
42
+ class Tag
43
+ include ActionView::Helpers::CaptureHelper
44
+ attr_accessor :id
45
+ attr_reader :name, :css
46
+
47
+ def initialize(name, attributes = {})
48
+ @name = name
49
+ @attributes = attributes.with_indifferent_access
50
+ @attributes[:class] = Tag::CSS.new(attributes[:class])
51
+ end
52
+
53
+ def []=(k,v)
54
+ @attributes[k] = v
55
+ end
56
+
57
+ def [](k)
58
+ @attributes[k]
59
+ end
60
+
61
+ def render(content)
62
+ "<#{name}#{render_attributes}>#{content.strip}</#{name}>".html_safe
63
+ end
64
+
65
+ def render_attributes
66
+ attrs = @attributes.dup
67
+ if self[:class].empty?
68
+ attrs.delete :class
69
+ else
70
+ attrs[:class] = self[:class].to_s
71
+ end
72
+
73
+ attrs.keys.map do |k|
74
+ "#{k}='#{ERB::Util.html_escape(attrs[k])}'".html_safe
75
+ end.join(' ').prepend(' ')
76
+ end
77
+
78
+ class CSS
79
+
80
+ def initialize(css)
81
+ if css.is_a? String
82
+ @internals = css.split(' ')
83
+ else
84
+ @internals = css.to_a
85
+ end
86
+ end
87
+
88
+ def to_s
89
+ @internals.uniq.join(' ')
90
+ end
91
+
92
+ def empty?
93
+ @internals.empty?
94
+ end
95
+
96
+ def <<(name)
97
+ @internals << name
98
+ nil
99
+ end
100
+ end
101
+ end
27
102
  end
@@ -3,9 +3,9 @@
3
3
  .best_link
4
4
  = string_editor(localized_value, :value, "[troque o texto aqui]")
5
5
  = content_tag :a do |el|
6
- - attrs.each do |attr_item| el[attr_item[:name]] = attr_item[:value] end
6
+ - attrs.each {|key_name, value| el[attr_item[key_name]] = value end
7
7
  i.fa.fa-sign-in
8
8
  - else
9
9
  = content_tag :a do |el|
10
- - attrs.each do |attr_item| el[attr_item[:name]] = attr_item[:value] end
10
+ - attrs.each {|key_name, value| el[attr_item[key_name]] = value end
11
11
  = render partial: 'localizable_value/string_read', :locals => { localized_page: localized_page, :key => key, default_value: default_value }
@@ -1,3 +1,3 @@
1
1
  module LocalizableValue
2
- VERSION = "0.1.21"
2
+ VERSION = "0.1.22"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localizable_value
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.21
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique Rangel