padrino-helpers 0.13.1 → 0.13.2

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: 4ccbe094ccc953205bf65d9ddc14ccfb525603bf
4
- data.tar.gz: 8a332393574602aa2edf8bc1ccfae65d15aa40b3
3
+ metadata.gz: f4cd07c5d69526e5a313ac66077c95232f9897c4
4
+ data.tar.gz: 2d729f064bd09f49fcd7d580a9c0d0efb0a71bf3
5
5
  SHA512:
6
- metadata.gz: 1291b958e521faa721462f183cf6ad992a36602398237efc2e11a8d0c4c03c2965b6f51fb40f8732f2e37e40ced0428ad50dfeabc45ae4212b8a94f1c94bdcff
7
- data.tar.gz: 4fe10e8cd44419b3bf395b952f9017ec644744a5a4bc47f176dc680772f4bb1bdee575180eebe012d0111ace47073921528f9722b60456228b764dbdd1b8f18f
6
+ metadata.gz: 6a811845a52c9d07a6d3344ded444856705e35ee1460e257b9cbe3e1d95698556677709e504ca96c2bf2f18313b32edfd06b9df4c11b1430f74eefafaf19cddc
7
+ data.tar.gz: 5686b30bbbf57ea22e28bdfc7afc8fba531a4658a1426dae8d4774afde8181bc43c558ffa6b1de595d1794815ccbef1c8a3ae7198f208d7969681c9c3c96bc11
@@ -1,12 +1,6 @@
1
1
  require 'padrino-support'
2
2
  require 'i18n'
3
3
  require 'enumerator'
4
- require 'active_support/time_with_zone' # next extension depends on this
5
- require 'active_support/core_ext/string/conversions' # to_date
6
- require 'active_support/option_merger' # with_options
7
- require 'active_support/core_ext/object/with_options' # with_options
8
- require 'active_support/inflector' # humanize
9
- require 'active_support/core_ext/hash/except' # Hash#except
10
4
  require 'padrino/rendering'
11
5
 
12
6
  FileSet.glob_require('padrino-helpers/**/*.rb', __FILE__)
@@ -43,7 +37,7 @@ module Padrino
43
37
  #
44
38
  def registered(app)
45
39
  app.register Padrino::Rendering
46
- app.set :default_builder, 'StandardFormBuilder'
40
+ app.set :default_builder, 'StandardFormBuilder' unless app.respond_to?(:default_builder)
47
41
  included(app)
48
42
  end
49
43
 
@@ -85,7 +85,7 @@ module Padrino
85
85
  options = args.extract_options!
86
86
  name = block_given? ? '' : args.shift
87
87
  href = args.first
88
- options.reverse_merge!(:href => href || '#')
88
+ options = { :href => href || '#' }.update(options)
89
89
  return name unless parse_conditions(href, options)
90
90
  block_given? ? content_tag(:a, options, &block) : content_tag(:a, name, options)
91
91
  end
@@ -116,7 +116,7 @@ module Padrino
116
116
  #
117
117
  def feed_tag(mime, url, options={})
118
118
  full_mime = (mime == :atom) ? 'application/atom+xml' : 'application/rss+xml'
119
- tag(:link, options.reverse_merge(:rel => 'alternate', :type => full_mime, :title => mime, :href => url))
119
+ tag(:link, { :rel => 'alternate', :type => full_mime, :title => mime, :href => url }.update(options))
120
120
  end
121
121
 
122
122
  ##
@@ -167,7 +167,7 @@ module Padrino
167
167
  # # Generates: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
168
168
  #
169
169
  def meta_tag(content, options={})
170
- options.reverse_merge!("content" => content)
170
+ options = { "content" => content }.update(options)
171
171
  tag(:meta, options)
172
172
  end
173
173
 
@@ -189,7 +189,7 @@ module Padrino
189
189
  #
190
190
  def favicon_tag(source, options={})
191
191
  type = File.extname(source).sub('.','')
192
- options = options.dup.reverse_merge!(:href => image_path(source), :rel => 'icon', :type => "image/#{type}")
192
+ options = { :href => image_path(source), :rel => 'icon', :type => "image/#{type}" }.update(options)
193
193
  tag(:link, options)
194
194
  end
195
195
 
@@ -207,10 +207,22 @@ module Padrino
207
207
  # image_tag('icons/avatar.png')
208
208
  #
209
209
  def image_tag(url, options={})
210
- options.reverse_merge!(:src => image_path(url))
210
+ options = { :src => image_path(url) }.update(options)
211
+ options[:alt] ||= image_alt(url) unless url.to_s =~ /\A(?:cid|data):|\A\Z/
211
212
  tag(:img, options)
212
213
  end
213
214
 
215
+ ##
216
+ # Returns a string suitable for an alt attribute of img element.
217
+ #
218
+ # @param [String] src
219
+ # The source path for the image tag.
220
+ # @return [String] The alt attribute value.
221
+ #
222
+ def image_alt(src)
223
+ File.basename(src, '.*').sub(/-[[:xdigit:]]{32,64}\z/, '').tr('-_', ' ').capitalize
224
+ end
225
+
214
226
  ##
215
227
  # Returns a html link tag for each of the sources provided.
216
228
  # You can pass in the filename without extension or a symbol and we search it in your +appname.public_folder+
@@ -31,9 +31,7 @@ module Padrino
31
31
  end
32
32
 
33
33
  def label(field, options={}, &block)
34
- options[:id] ||= nil
35
- options[:caption] ||= I18n.t("#{model_name}.attributes.#{field}", :count => 1, :default => field.to_s.humanize, :scope => :models) + ': '
36
- @template.label_tag(field_id(field), default_options(field, options), &block)
34
+ @template.label_tag(field_id(field), { :caption => "#{field_human_name(field)}: " }.update(options), &block)
37
35
  end
38
36
 
39
37
  def hidden_field(field, options={})
@@ -106,7 +104,7 @@ module Padrino
106
104
 
107
105
  def file_field(field, options={})
108
106
  self.multipart = true
109
- @template.file_field_tag field_name(field), default_options(field, options).except(:value)
107
+ @template.file_field_tag field_name(field), default_options(field, options).reject{ |key, _| key == :value }
110
108
  end
111
109
 
112
110
  def submit(*args)
@@ -171,14 +169,24 @@ module Padrino
171
169
 
172
170
  # Returns the known field types for a Formbuilder.
173
171
  def self.field_types
174
- [:hidden_field, :text_field, :text_area, :password_field, :file_field, :radio_button, :check_box, :select]
172
+ [:hidden_field, :text_field, :text_area, :password_field, :file_field, :radio_button, :check_box, :select,
173
+ :number_field, :telephone_field, :email_field, :search_field, :url_field,
174
+ :datetime_field, :datetime_local_field, :date_field, :month_field, :week_field, :time_field, :color_field,
175
+ ]
175
176
  end
176
177
 
177
178
  ##
178
179
  # Returns the human name of the field. Look that use builtin I18n.
179
180
  #
180
181
  def field_human_name(field)
181
- I18n.translate("#{object_model_name}.attributes.#{field}", :count => 1, :default => field.to_s.humanize, :scope => :models)
182
+ I18n.translate("#{model_name}.attributes.#{field}", :count => 1, :default => field.to_s.humanize, :scope => :models)
183
+ end
184
+
185
+ ##
186
+ # Returns the object's models name.
187
+ #
188
+ def object_model_name(explicit_object=object)
189
+ explicit_object.is_a?(Symbol) ? explicit_object : explicit_object.class.to_s.underscore.gsub(/\//, '_')
182
190
  end
183
191
 
184
192
  ##
@@ -17,7 +17,10 @@ module Padrino
17
17
  (self.field_types - [ :hidden_field, :radio_button ]).each do |field_type|
18
18
  class_eval <<-EOF
19
19
  def #{field_type}_block(field, options={}, label_options={})
20
- label_options.reverse_merge!(:caption => options.delete(:caption)) if options[:caption]
20
+ if options[:caption]
21
+ options = options.dup
22
+ label_options = { :caption => options.delete(:caption) }.update(label_options)
23
+ end
21
24
  field_html = label(field, label_options)
22
25
  field_html << #{field_type}(field, options)
23
26
  @template.content_tag(:p, field_html)
@@ -45,7 +45,7 @@ module Padrino
45
45
  instance = builder_instance(object, options)
46
46
  # this can erect instance.multipart flag if the block calls instance.file_field
47
47
  html = capture_html(instance, &block)
48
- options = { :multipart => instance.multipart }.update(options.except(:namespace, :as))
48
+ options = { :multipart => instance.multipart }.update(options.reject{ |key,_| [:namespace, :as].include?(key) })
49
49
  form_tag(url, options) { html }
50
50
  end
51
51
 
@@ -398,8 +398,7 @@ module Padrino
398
398
  #
399
399
  def text_area_tag(name, options={})
400
400
  inner_html = TagHelpers::NEWLINE + options.delete(:value).to_s
401
- options = { :name => name, :rows => "", :cols => "" }.update(options)
402
- content_tag(:textarea, inner_html, options)
401
+ content_tag(:textarea, inner_html, { :name => name }.update(options))
403
402
  end
404
403
 
405
404
  ##
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  module Padrino
3
2
  module Helpers
4
3
  ###
@@ -126,7 +125,7 @@ module Padrino
126
125
  # truncate("Once upon a time in a world far far away", :length => 8) => "Once upon..."
127
126
  #
128
127
  def truncate(text, options={})
129
- options.reverse_merge!(:length => 30, :omission => "...")
128
+ options = { :length => 30, :omission => "..." }.update(options)
130
129
  if text
131
130
  len = options[:length] - options[:omission].length
132
131
  chars = text
@@ -153,7 +152,7 @@ module Padrino
153
152
  # truncate_words("Once upon a time in a world far far away", :length => 8) => "Once upon a time in a world far..."
154
153
  #
155
154
  def truncate_words(text, options={})
156
- options.reverse_merge!(:length => 30, :omission => "...")
155
+ options = { :length => 30, :omission => "..." }.update(options)
157
156
  if text
158
157
  words = text.split()
159
158
  words[0..(options[:length]-1)].join(' ') + (words.length > options[:length] ? options[:omission] : '')
@@ -182,7 +181,7 @@ module Padrino
182
181
  unless args.blank?
183
182
  options[:line_width] = args[0] || 80
184
183
  end
185
- options.reverse_merge!(:line_width => 80)
184
+ options = { :line_width => 80 }.update(options)
186
185
 
187
186
  text.split("\n").map do |line|
188
187
  line.length > options[:line_width] ? line.gsub(/(.{1,#{options[:line_width]}})(\s+|$)/, "\\1\n").strip : line
@@ -215,8 +214,7 @@ module Padrino
215
214
  # # => Lorem ipsum <strong class="custom">dolor</strong> sit amet
216
215
  #
217
216
  def highlight(text, words, *args)
218
- options = args.extract_options!
219
- options.reverse_merge!(:highlighter => '<strong class="highlight">\1</strong>')
217
+ options = { :highlighter => '<strong class="highlight">\1</strong>' }.update(args.extract_options!)
220
218
 
221
219
  if text.blank? || words.blank?
222
220
  text
@@ -291,42 +289,43 @@ module Padrino
291
289
  distance_in_minutes = (((to_time.to_i - from_time.to_i).abs)/60).round
292
290
  distance_in_seconds = ((to_time.to_i - from_time.to_i).abs).round
293
291
 
294
- I18n.with_options :locale => options[:locale], :scope => :'datetime.distance_in_words' do |locale|
292
+ phrase, locals =
295
293
  case distance_in_minutes
296
294
  when 0..1
297
- return distance_in_minutes == 0 ?
298
- locale.t(:less_than_x_minutes, :count => 1) :
299
- locale.t(:x_minutes, :count => distance_in_minutes) unless include_seconds
300
-
301
- case distance_in_seconds
302
- when 0..4 then locale.t :less_than_x_seconds, :count => 5
303
- when 5..9 then locale.t :less_than_x_seconds, :count => 10
304
- when 10..19 then locale.t :less_than_x_seconds, :count => 20
305
- when 20..39 then locale.t :half_a_minute
306
- when 40..59 then locale.t :less_than_x_minutes, :count => 1
307
- else locale.t :x_minutes, :count => 1
295
+ if include_seconds
296
+ case distance_in_seconds
297
+ when 0..4 then [:less_than_x_seconds, :count => 5 ]
298
+ when 5..9 then [:less_than_x_seconds, :count => 10]
299
+ when 10..19 then [:less_than_x_seconds, :count => 20]
300
+ when 20..39 then [:half_a_minute ]
301
+ when 40..59 then [:less_than_x_minutes, :count => 1 ]
302
+ else [:x_minutes, :count => 1 ]
303
+ end
304
+ else
305
+ distance_in_minutes == 0 ?
306
+ [:less_than_x_minutes, :count => 1] :
307
+ [:x_minutes, :count => distance_in_minutes]
308
308
  end
309
-
310
- when 2..44 then locale.t :x_minutes, :count => distance_in_minutes
311
- when 45..89 then locale.t :about_x_hours, :count => 1
312
- when 90..1439 then locale.t :about_x_hours, :count => (distance_in_minutes.to_f / 60.0).round
313
- when 1440..2529 then locale.t :x_days, :count => 1
314
- when 2530..43199 then locale.t :x_days, :count => (distance_in_minutes.to_f / 1440.0).round
315
- when 43200..86399 then locale.t :about_x_months, :count => 1
316
- when 86400..525599 then locale.t :x_months, :count => (distance_in_minutes.to_f / 43200.0).round
309
+ when 2..44 then [:x_minutes, :count => distance_in_minutes ]
310
+ when 45..89 then [:about_x_hours, :count => 1 ]
311
+ when 90..1439 then [:about_x_hours, :count => (distance_in_minutes.to_f / 60.0).round ]
312
+ when 1440..2529 then [:x_days, :count => 1 ]
313
+ when 2530..43199 then [:x_days, :count => (distance_in_minutes.to_f / 1440.0).round ]
314
+ when 43200..86399 then [:about_x_months, :count => 1 ]
315
+ when 86400..525599 then [:x_months, :count => (distance_in_minutes.to_f / 43200.0).round]
317
316
  else
318
317
  distance_in_years = distance_in_minutes / 525600
319
318
  minute_offset_for_leap_year = (distance_in_years / 4) * 1440
320
319
  remainder = ((distance_in_minutes - minute_offset_for_leap_year) % 525600)
321
320
  if remainder < 131400
322
- locale.t(:about_x_years, :count => distance_in_years)
321
+ [:about_x_years, :count => distance_in_years]
323
322
  elsif remainder < 394200
324
- locale.t(:over_x_years, :count => distance_in_years)
323
+ [:over_x_years, :count => distance_in_years]
325
324
  else
326
- locale.t(:almost_x_years, :count => distance_in_years + 1)
325
+ [:almost_x_years, :count => distance_in_years + 1]
327
326
  end
328
327
  end
329
- end
328
+ I18n.translate phrase, locals.merge(:locale => options[:locale], :scope => :'datetime.distance_in_words')
330
329
  end
331
330
 
332
331
  ##
@@ -24,6 +24,6 @@ Gem::Specification.new do |s|
24
24
  s.rdoc_options = ["--charset=UTF-8"]
25
25
 
26
26
  s.add_dependency("padrino-support", Padrino.version)
27
- s.add_dependency("tilt", "~> 1.4.1")
27
+ s.add_dependency("tilt", ">= 1.4.1", "< 3")
28
28
  s.add_dependency("i18n", "~> 0.6", ">= 0.6.7")
29
29
  end
data/test/helper.rb CHANGED
@@ -5,9 +5,10 @@ require 'minitest/pride'
5
5
  require 'mocha/setup'
6
6
  require 'rack/test'
7
7
  require 'webrat'
8
- require 'active_support/time'
9
8
  require 'builder'
10
9
  require 'padrino-helpers'
10
+ require 'tilt/liquid'
11
+ require 'tilt/builder'
11
12
 
12
13
  require 'ext/minitest-spec'
13
14
  require 'ext/rack-test-methods'
@@ -32,7 +33,7 @@ class MiniTest::Spec
32
33
 
33
34
  # mock_model("Business", :new_record? => true) => <Business>
34
35
  def mock_model(klazz, options={})
35
- options.reverse_merge!(:class => klazz, :new_record? => false, :id => 20, :errors => {})
36
+ options = { :class => klazz, :new_record? => false, :id => 20, :errors => {}}.update(options)
36
37
  record = stub(options)
37
38
  record.stubs(:to_ary => [record])
38
39
  record
@@ -76,6 +76,19 @@ describe "AssetTagHelpers" do
76
76
  assert_has_tag('img', :src => "/my/fancy/image.png") { actual_link }
77
77
  end
78
78
 
79
+ it 'should render alt text by default' do
80
+ actual_tag = image_tag("/my/fancy/image.png")
81
+ assert_has_tag('img', :src => "/my/fancy/image.png", :alt => "Image") { actual_tag }
82
+
83
+ actual_tag = image_tag("/my/fancy/image_white.png")
84
+ assert_has_tag('img', :src => "/my/fancy/image_white.png", :alt => "Image white") { actual_tag }
85
+ end
86
+
87
+ it 'should remove hash value from src path' do
88
+ actual_tag = image_tag("/my/fancy/sprite-47bce5c74f589f4867dbd57e9ca9f808.png")
89
+ assert_has_tag('img', :src => "/my/fancy/sprite-47bce5c74f589f4867dbd57e9ca9f808.png", :alt => "Sprite") { actual_tag }
90
+ end
91
+
79
92
  it 'should display link block element in haml' do
80
93
  visit '/haml/link_to'
81
94
  assert_have_selector :a, :content => "Test 1 No Block", :href => '/test1', :class => 'test', :id => 'test1'
@@ -223,7 +236,7 @@ describe "AssetTagHelpers" do
223
236
  end
224
237
 
225
238
  it 'should have xhtml convention tag' do
226
- assert_equal image_tag('/absolute/pic.gif'), '<img src="/absolute/pic.gif" />'
239
+ assert_equal image_tag('/absolute/pic.gif'), '<img src="/absolute/pic.gif" alt="Pic" />'
227
240
  end
228
241
  end
229
242
 
@@ -57,25 +57,6 @@ describe "FormatHelpers" do
57
57
  end
58
58
  end
59
59
 
60
- describe 'for #pluralize method' do
61
- it 'should return singular count for 1 item collections' do
62
- actual_text = pluralize(1, 'person')
63
- assert_equal '1 person', actual_text
64
- end
65
- it 'should return plural count for empty collections' do
66
- actual_text = pluralize(0, 'person')
67
- assert_equal '0 people', actual_text
68
- end
69
- it 'should return plural count for many collections' do
70
- actual_text = pluralize(2, 'person')
71
- assert_equal '2 people', actual_text
72
- end
73
- it 'should return pluralized word specified as argument' do
74
- actual_text = pluralize(3, 'person', 'users')
75
- assert_equal '3 users', actual_text
76
- end
77
- end
78
-
79
60
  describe 'for #word_wrap method' do
80
61
  it 'should return proper formatting for 8 max width' do
81
62
  actual_text = word_wrap('Once upon a time', :line_width => 8)
@@ -158,6 +139,8 @@ describe "FormatHelpers" do
158
139
  end
159
140
 
160
141
  describe 'for #time_ago_in_words method' do
142
+ _DAY = 24*60*60
143
+
161
144
  it 'should less than 5 seconds' do
162
145
  assert_equal 'less than 5 seconds', time_ago_in_words(Time.now, true)
163
146
  end
@@ -177,52 +160,49 @@ describe "FormatHelpers" do
177
160
  assert_equal 'less than a minute', time_ago_in_words(Time.now)
178
161
  end
179
162
  it 'should display yesterday' do
180
- assert_equal '1 day', time_ago_in_words(1.day.ago)
163
+ assert_equal '1 day', time_ago_in_words(Time.now - _DAY)
181
164
  end
182
165
  it 'should display tomorrow' do
183
- assert_equal '1 day', time_ago_in_words(1.day.from_now)
166
+ assert_equal '1 day', time_ago_in_words(Time.now + _DAY)
184
167
  end
185
168
  it 'should return future number of days' do
186
- assert_equal '4 days', time_ago_in_words(4.days.from_now)
169
+ assert_equal '4 days', time_ago_in_words(Time.now + 4*_DAY)
187
170
  end
188
171
  it 'should return past days ago' do
189
- assert_equal '4 days', time_ago_in_words(4.days.ago)
172
+ assert_equal '4 days', time_ago_in_words(Time.now - 4*_DAY)
190
173
  end
191
174
  it 'should return formatted archived date' do
192
- assert_equal '3 months', time_ago_in_words(100.days.ago)
175
+ assert_equal '3 months', time_ago_in_words(Time.now - 100*_DAY)
193
176
  end
194
177
  it 'should return formatted archived year date' do
195
- assert_equal 'over 1 year', time_ago_in_words(500.days.ago)
178
+ assert_equal 'over 1 year', time_ago_in_words(Time.now - 500*_DAY)
196
179
  end
197
180
  it 'should display now as a minute ago' do
198
- assert_equal '1 minute', time_ago_in_words(1.minute.ago)
181
+ assert_equal '1 minute', time_ago_in_words(Time.now - 60)
199
182
  end
200
183
  it 'should display a few minutes ago' do
201
- assert_equal '4 minutes', time_ago_in_words(4.minute.ago)
184
+ assert_equal '4 minutes', time_ago_in_words(Time.now - 4*60)
202
185
  end
203
186
  it 'should display an hour ago' do
204
- assert_equal 'about 1 hour', time_ago_in_words(1.hour.ago + 5.minutes.ago.sec)
187
+ assert_equal 'about 1 hour', time_ago_in_words(Time.now - 60*60 + 5)
205
188
  end
206
189
  it 'should display a few hours ago' do
207
- assert_equal 'about 3 hours', time_ago_in_words(3.hour.ago + 5.minutes.ago.sec)
208
- end
209
- it 'should display a day ago' do
210
- assert_equal '1 day', time_ago_in_words(1.day.ago)
190
+ assert_equal 'about 3 hours', time_ago_in_words(Time.now - 3*60*60 + 5*60)
211
191
  end
212
192
  it 'should display a few days ago' do
213
- assert_equal '5 days', time_ago_in_words(5.days.ago - 5.minutes.ago.sec)
193
+ assert_equal '5 days', time_ago_in_words(Time.now - 5*_DAY - 5*60)
214
194
  end
215
195
  it 'should display a month ago' do
216
- assert_equal 'about 1 month', time_ago_in_words(32.days.ago + 5.minutes.ago.sec)
196
+ assert_equal 'about 1 month', time_ago_in_words(Time.now - 32*_DAY + 5*60)
217
197
  end
218
198
  it 'should display a few months ago' do
219
- assert_equal '6 months', time_ago_in_words(180.days.ago - 5.minutes.ago.sec)
199
+ assert_equal '6 months', time_ago_in_words(Time.now - 180*_DAY - 5*60)
220
200
  end
221
201
  it 'should display a year ago' do
222
- assert_equal 'about 1 year', time_ago_in_words(365.days.ago - 5.minutes.ago.sec)
202
+ assert_equal 'about 1 year', time_ago_in_words(Time.now - 365*_DAY - 5*60)
223
203
  end
224
204
  it 'should display a few years ago' do
225
- assert_equal 'over 7 years', time_ago_in_words(2800.days.ago - 5.minutes.ago.sec)
205
+ assert_equal 'over 7 years', time_ago_in_words(Time.now - 2800*_DAY - 5*60)
226
206
  end
227
207
  end
228
208
 
data/test/test_helpers.rb CHANGED
@@ -7,4 +7,12 @@ describe "Padrino::Helpers" do
7
7
  end
8
8
  assert_equal '<div>bar</div>', Foo.new.content_tag(:div, 'bar')
9
9
  end
10
+
11
+ it 'should not overwrite default_builder setting' do
12
+ mock_app do
13
+ set :default_builder, 'FancyBuilder'
14
+ register Padrino::Helpers
15
+ end
16
+ assert_equal 'FancyBuilder', @app.default_builder
17
+ end
10
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-01-17 00:00:00.000000000 Z
14
+ date: 2016-05-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: padrino-support
@@ -19,46 +19,52 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.13.1
22
+ version: 0.13.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.13.1
29
+ version: 0.13.2
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: tilt
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - ~>
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 1.4.1
37
+ - - "<"
38
+ - !ruby/object:Gem::Version
39
+ version: '3'
37
40
  type: :runtime
38
41
  prerelease: false
39
42
  version_requirements: !ruby/object:Gem::Requirement
40
43
  requirements:
41
- - - ~>
44
+ - - ">="
42
45
  - !ruby/object:Gem::Version
43
46
  version: 1.4.1
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '3'
44
50
  - !ruby/object:Gem::Dependency
45
51
  name: i18n
46
52
  requirement: !ruby/object:Gem::Requirement
47
53
  requirements:
48
- - - ~>
54
+ - - "~>"
49
55
  - !ruby/object:Gem::Version
50
56
  version: '0.6'
51
- - - '>='
57
+ - - ">="
52
58
  - !ruby/object:Gem::Version
53
59
  version: 0.6.7
54
60
  type: :runtime
55
61
  prerelease: false
56
62
  version_requirements: !ruby/object:Gem::Requirement
57
63
  requirements:
58
- - - ~>
64
+ - - "~>"
59
65
  - !ruby/object:Gem::Version
60
66
  version: '0.6'
61
- - - '>='
67
+ - - ">="
62
68
  - !ruby/object:Gem::Version
63
69
  version: 0.6.7
64
70
  description: Tag helpers, asset helpers, form helpers, form builders and many more
@@ -69,9 +75,9 @@ extensions: []
69
75
  extra_rdoc_files:
70
76
  - README.rdoc
71
77
  files:
72
- - .document
73
- - .gitignore
74
- - .yardopts
78
+ - ".document"
79
+ - ".gitignore"
80
+ - ".yardopts"
75
81
  - LICENSE.txt
76
82
  - README.rdoc
77
83
  - Rakefile
@@ -224,17 +230,17 @@ licenses:
224
230
  metadata: {}
225
231
  post_install_message:
226
232
  rdoc_options:
227
- - --charset=UTF-8
233
+ - "--charset=UTF-8"
228
234
  require_paths:
229
235
  - lib
230
236
  required_ruby_version: !ruby/object:Gem::Requirement
231
237
  requirements:
232
- - - '>='
238
+ - - ">="
233
239
  - !ruby/object:Gem::Version
234
240
  version: '0'
235
241
  required_rubygems_version: !ruby/object:Gem::Requirement
236
242
  requirements:
237
- - - '>='
243
+ - - ">="
238
244
  - !ruby/object:Gem::Version
239
245
  version: 1.3.6
240
246
  requirements: []