padrino-helpers 0.10.6 → 0.10.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,7 @@ require 'padrino-core/support_lite' unless defined?(SupportLite)
2
2
  require 'cgi'
3
3
  require 'i18n'
4
4
  require 'enumerator'
5
+ require 'active_support/time_with_zone' # next extension depends on this
5
6
  require 'active_support/core_ext/string/conversions' # to_date
6
7
  require 'active_support/core_ext/float/rounding' # round
7
8
  require 'active_support/option_merger' # with_options
@@ -37,7 +38,7 @@ module Padrino
37
38
  #
38
39
  # @example Register the helper module
39
40
  # require 'padrino-helpers'
40
- # class Padrino::Appliocation
41
+ # class Padrino::Application
41
42
  # register Padrino::Helpers
42
43
  # end
43
44
  #
@@ -244,11 +244,11 @@ module Padrino
244
244
  def error_message_on(object, field, options={})
245
245
  object = object.is_a?(Symbol) ? instance_variable_get("@#{object}") : object
246
246
  error = object.errors[field] rescue nil
247
- if error
247
+ # Array(error).first is necessary because some ORMs give us an array others directly a value
248
+ if error = Array(error)[0]
248
249
  options.reverse_merge!(:tag => :span, :class => :error)
249
250
  tag = options.delete(:tag)
250
- # Array(error).first is necessary because some orm give us an array others directly a value
251
- error = [options.delete(:prepend), Array(error).first, options.delete(:append)].compact.join(" ")
251
+ error = [options.delete(:prepend), error, options.delete(:append)].compact.join(" ")
252
252
  content_tag(tag, error, options)
253
253
  else
254
254
  ''
@@ -703,7 +703,7 @@ module Padrino
703
703
  # Returns the options tags for a select based on the given option items
704
704
  #
705
705
  def options_for_select(option_items, selected_value=nil)
706
- return '' if option_items.blank?
706
+ return [] if option_items.blank?
707
707
  option_items.map do |caption, value|
708
708
  value ||= caption
709
709
  content_tag(:option, caption, :value => value, :selected => option_is_selected?(value, caption, selected_value))
@@ -0,0 +1,103 @@
1
+ ro:
2
+ number:
3
+ # Used in number_with_delimiter()
4
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
5
+ format:
6
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
7
+ separator: ","
8
+ # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
9
+ delimiter: "."
10
+ # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
11
+ precision: 2
12
+
13
+ # Used in number_to_currency()
14
+ currency:
15
+ format:
16
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
17
+ format: "%n %u"
18
+ unit: "lei"
19
+ # These three are to override number.format and are optional
20
+ separator: ","
21
+ delimiter: "."
22
+ precision: 2
23
+
24
+ # Used in number_to_percentage()
25
+ percentage:
26
+ format:
27
+ # These three are to override number.format and are optional
28
+ # separator:
29
+ delimiter: ""
30
+ # precision:
31
+
32
+ # Used in number_to_precision()
33
+ precision:
34
+ format:
35
+ # These three are to override number.format and are optional
36
+ # separator:
37
+ delimiter: ""
38
+ # precision:
39
+
40
+ # Used in number_to_human_size()
41
+ human:
42
+ format:
43
+ # These three are to override number.format and are optional
44
+ # separator:
45
+ delimiter: ""
46
+ precision: 1
47
+ storage_units:
48
+ # Storage units output formatting.
49
+ # %u is the storage unit, %n is the number (default: 2 MB)
50
+ format: "%n %u"
51
+ units:
52
+ byte:
53
+ one: "Byte"
54
+ other: "Bytes"
55
+ kb: "KB"
56
+ mb: "MB"
57
+ gb: "GB"
58
+ tb: "TB"
59
+
60
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
61
+ datetime:
62
+ distance_in_words:
63
+ half_a_minute: "jumătate de minut"
64
+ less_than_x_seconds:
65
+ one: "mai puțin de o secundă"
66
+ other: "mai puțin de %{count} secunde"
67
+ x_seconds:
68
+ one: "o secundă"
69
+ other: "%{count} secunde"
70
+ less_than_x_minutes:
71
+ one: "mai puțin de un minut"
72
+ other: "mai puțin de %{count} minute"
73
+ x_minutes:
74
+ one: "un minut"
75
+ other: "%{count} minute"
76
+ about_x_hours:
77
+ one: "aproximativ o oră"
78
+ other: "aproximativ %{count} ore"
79
+ x_days:
80
+ one: "o zi"
81
+ other: "%{count} zile"
82
+ about_x_months:
83
+ one: "aproximativ o lună"
84
+ other: "aproximativ %{count} luni"
85
+ x_months:
86
+ one: "o lună"
87
+ other: "%{count} luni"
88
+ about_x_years:
89
+ one: "aproximativ un an"
90
+ other: "aproximativ %{count} ani"
91
+ over_x_years:
92
+ one: "peste un an"
93
+ other: "peste %{count} ani"
94
+ almost_x_years:
95
+ one: "aproape un an"
96
+ other: "aproape %{count} ani"
97
+ models:
98
+ errors:
99
+ template:
100
+ header:
101
+ one: "Nu s-a putut salva %{model}, a avut loc o eroare."
102
+ other: "Nu s-a putut salva %{model}, au avut loc %{count} erori."
103
+ body: "Există probleme cu următoarele câmpuri:"
@@ -0,0 +1,103 @@
1
+ sv:
2
+ number:
3
+ # Used in number_with_delimiter()
4
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
5
+ format:
6
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
7
+ separator: ","
8
+ # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
9
+ delimiter: " "
10
+ # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
11
+ precision: 2
12
+
13
+ # Used in number_to_currency()
14
+ currency:
15
+ format:
16
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
17
+ format: "%n %u"
18
+ unit: "kr"
19
+ # These three are to override number.format and are optional
20
+ separator: ","
21
+ delimiter: " "
22
+ precision: 2
23
+
24
+ # Used in number_to_percentage()
25
+ percentage:
26
+ format:
27
+ # These three are to override number.format and are optional
28
+ # separator:
29
+ delimiter: ""
30
+ # precision:
31
+
32
+ # Used in number_to_precision()
33
+ precision:
34
+ format:
35
+ # These three are to override number.format and are optional
36
+ # separator:
37
+ delimiter: ""
38
+ # precision:
39
+
40
+ # Used in number_to_human_size()
41
+ human:
42
+ format:
43
+ # These three are to override number.format and are optional
44
+ # separator:
45
+ delimiter: ""
46
+ precision: 1
47
+ storage_units:
48
+ # Storage units output formatting.
49
+ # %u is the storage unit, %n is the number (default: 2 MB)
50
+ format: "%n %u"
51
+ units:
52
+ byte:
53
+ one: "Byte"
54
+ other: "Bytes"
55
+ kb: "KB"
56
+ mb: "MB"
57
+ gb: "GB"
58
+ tb: "TB"
59
+
60
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
61
+ datetime:
62
+ distance_in_words:
63
+ half_a_minute: "en halv minut"
64
+ less_than_x_seconds:
65
+ one: "mindre än 1 sekund"
66
+ other: "mindre än %{count} sekunder"
67
+ x_seconds:
68
+ one: "1 sekund"
69
+ other: "%{count} sekunder"
70
+ less_than_x_minutes:
71
+ one: "mindre än en minut"
72
+ other: "mindre än %{count} minuter"
73
+ x_minutes:
74
+ one: "1 minut"
75
+ other: "%{count} minuter"
76
+ about_x_hours:
77
+ one: "cirka 1 timme"
78
+ other: "cirka %{count} timmar"
79
+ x_days:
80
+ one: "1 dag"
81
+ other: "%{count} dagar"
82
+ about_x_months:
83
+ one: "cirka 1 månad"
84
+ other: "cirka %{count} månader"
85
+ x_months:
86
+ one: "1 månad"
87
+ other: "%{count} månader"
88
+ about_x_years:
89
+ one: "cirka 1 år"
90
+ other: "cirka %{count} år"
91
+ over_x_years:
92
+ one: "över 1 år"
93
+ other: "över %{count} år"
94
+ almost_x_years:
95
+ one: "nästan 1 år"
96
+ other: "nästan %{count} år"
97
+ models:
98
+ errors:
99
+ template:
100
+ header:
101
+ one: "1 fel hindrade denna %{model} från att sparas"
102
+ other: "%{count} fel hindrade denna %{model} från att sparas"
103
+ body: "Följande fält innehåller fel:"
@@ -31,9 +31,9 @@ module Padrino
31
31
  # @handler.capture_from_template(&block) => "...html..."
32
32
  #
33
33
  def capture_from_template(*args, &block)
34
- self.output_buffer, _buf_was = "", self.output_buffer
34
+ self.output_buffer, _buf_was = '', self.output_buffer
35
35
  block.call(*args)
36
- ret = eval("@_out_buf", block.binding)
36
+ ret = eval('@_out_buf', block.binding)
37
37
  self.output_buffer = _buf_was
38
38
  ret
39
39
  end
@@ -214,7 +214,7 @@ module Padrino
214
214
  if v.is_a?(Hash)
215
215
  nested_values(k, v)
216
216
  elsif BOOLEAN_ATTRIBUTES.include?(k)
217
- k.to_s
217
+ %(#{k}="#{k}")
218
218
  else
219
219
  %(#{k}="#{escape_value(v)}")
220
220
  end
@@ -1,13 +1,13 @@
1
- -@content = captured_content do
1
+ - @content = captured_content do
2
2
  span Captured Line 1
3
3
  span Captured Line 2
4
4
 
5
- ==@content
5
+ == @content
6
6
 
7
- ==determine_block_is_template('slim') do
7
+ - determine_block_is_template('slim') do
8
8
  span This is slim
9
9
  span This is slim
10
10
 
11
- ==concat_in_p('Concat Line 3')
11
+ == concat_in_p('Concat Line 3')
12
12
 
13
- ==ruby_not_template_block
13
+ == ruby_not_template_block
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- = link_to "Test 1 No Block", '/test1', :class => 'test', :id => 'test1'
1
+ == link_to "Test 1 No Block", '/test1', :class => 'test', :id => 'test1'
2
2
 
3
- - link_to("/test2", :class => 'test', :id => 'test2') do
3
+ == link_to("/test2", :class => 'test', :id => 'test2') do
4
4
  span Test 2 With Block
@@ -81,6 +81,12 @@ describe "AssetTagHelpers" do
81
81
  assert_have_selector :a, :content => "Test 1 No Block", :href => '/test1', :class => 'test', :id => 'test1'
82
82
  assert_have_selector :a, :content => "Test 2 With Block", :href => '/test2', :class => 'test', :id => 'test2'
83
83
  end
84
+
85
+ should "display link block element in slim" do
86
+ visit '/slim/link_to'
87
+ assert_have_selector :a, :content => "Test 1 No Block", :href => '/test1', :class => 'test', :id => 'test1'
88
+ assert_have_selector :a, :content => "Test 2 With Block", :href => '/test2', :class => 'test', :id => 'test2'
89
+ end
84
90
  end
85
91
 
86
92
  context 'for #mail_to method' do
@@ -177,6 +177,12 @@ describe "FormHelpers" do
177
177
  actual_html = error_message_on(:user, :fake, :prepend => "foo", :append => "bar")
178
178
  assert actual_html.blank?
179
179
  end
180
+
181
+ should "display no message when error isn't present in an Array" do
182
+ @user = mock_model("User", :errors => { :a => [], :b => "2" }, :blank? => false)
183
+ actual_html = error_message_on(:user, :a, :prepend => "foo", :append => "bar")
184
+ assert actual_html.blank?
185
+ end
180
186
  end
181
187
 
182
188
  context 'for #label_tag method' do
@@ -100,8 +100,7 @@ describe "OutputHelpers" do
100
100
  should_eventually "work for slim templates" do
101
101
  visit '/slim/capture_concat'
102
102
  assert_have_selector 'p', :content => "The slim block passed in is a template", :class => 'is_template'
103
- # TODO Get SLIM template detection working (fix block_is_erb? method)
104
- # assert_have_no_selector 'p', :content => "The ruby block passed in is a template", :class => 'is_template'
103
+ assert_have_no_selector 'p', :content => "The ruby block passed in is a template", :class => 'is_template'
105
104
  end
106
105
  end
107
106
 
metadata CHANGED
@@ -1,10 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: padrino-helpers
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.7
4
5
  prerelease:
5
- version: 0.10.6
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Padrino Team
9
9
  - Nathan Esquenazi
10
10
  - Davide D'Agostino
@@ -12,40 +12,48 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
-
16
- date: 2012-03-15 00:00:00 Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
15
+ date: 2012-06-20 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
19
18
  name: padrino-core
20
- prerelease: false
21
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
22
20
  none: false
23
- requirements:
24
- - - "="
25
- - !ruby/object:Gem::Version
26
- version: 0.10.6
21
+ requirements:
22
+ - - '='
23
+ - !ruby/object:Gem::Version
24
+ version: 0.10.7
27
25
  type: :runtime
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
30
- name: i18n
31
26
  prerelease: false
32
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - '='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.10.7
33
+ - !ruby/object:Gem::Dependency
34
+ name: i18n
35
+ requirement: !ruby/object:Gem::Requirement
33
36
  none: false
34
- requirements:
37
+ requirements:
35
38
  - - ~>
36
- - !ruby/object:Gem::Version
37
- version: "0.6"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.6'
38
41
  type: :runtime
39
- version_requirements: *id002
40
- description: Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '0.6'
49
+ description: Tag helpers, asset helpers, form helpers, form builders and many more
50
+ helpers for padrino
41
51
  email: padrinorb@gmail.com
42
52
  executables: []
43
-
44
53
  extensions: []
45
-
46
- extra_rdoc_files:
54
+ extra_rdoc_files:
47
55
  - README.rdoc
48
- files:
56
+ files:
49
57
  - .document
50
58
  - .gitignore
51
59
  - .yardopts
@@ -72,7 +80,9 @@ files:
72
80
  - lib/padrino-helpers/locale/no.yml
73
81
  - lib/padrino-helpers/locale/pl.yml
74
82
  - lib/padrino-helpers/locale/pt_br.yml
83
+ - lib/padrino-helpers/locale/ro.yml
75
84
  - lib/padrino-helpers/locale/ru.yml
85
+ - lib/padrino-helpers/locale/sv.yml
76
86
  - lib/padrino-helpers/locale/tr.yml
77
87
  - lib/padrino-helpers/locale/uk.yml
78
88
  - lib/padrino-helpers/locale/zh_cn.yml
@@ -147,32 +157,30 @@ files:
147
157
  - test/test_tag_helpers.rb
148
158
  homepage: http://www.padrinorb.com
149
159
  licenses: []
150
-
151
160
  post_install_message:
152
- rdoc_options:
161
+ rdoc_options:
153
162
  - --charset=UTF-8
154
- require_paths:
163
+ require_paths:
155
164
  - lib
156
- required_ruby_version: !ruby/object:Gem::Requirement
165
+ required_ruby_version: !ruby/object:Gem::Requirement
157
166
  none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: "0"
162
- required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
172
  none: false
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
167
176
  version: 1.3.6
168
177
  requirements: []
169
-
170
178
  rubyforge_project: padrino-helpers
171
- rubygems_version: 1.8.19
179
+ rubygems_version: 1.8.21
172
180
  signing_key:
173
181
  specification_version: 3
174
182
  summary: Helpers for padrino
175
- test_files:
183
+ test_files:
176
184
  - test/fixtures/markup_app/app.rb
177
185
  - test/fixtures/markup_app/views/capture_concat.erb
178
186
  - test/fixtures/markup_app/views/capture_concat.haml
@@ -231,3 +239,4 @@ test_files:
231
239
  - test/test_output_helpers.rb
232
240
  - test/test_render_helpers.rb
233
241
  - test/test_tag_helpers.rb
242
+ has_rdoc: