padrino-helpers 0.2.9 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ end
26
26
 
27
27
  require 'rake/testtask'
28
28
  Rake::TestTask.new(:test) do |test|
29
- test.libs << 'lib' << 'test'
29
+ test.libs << 'test'
30
30
  test.pattern = 'test/**/test_*.rb'
31
31
  test.verbose = true
32
32
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.9
1
+ 0.4.5
@@ -1,6 +1,9 @@
1
1
  require 'padrino-core/support_lite'
2
2
  Dir[File.dirname(__FILE__) + '/padrino-helpers/**/*.rb'].each {|file| require file }
3
3
 
4
+ # Load our locales
5
+ I18n.load_path += Dir["#{File.dirname(__FILE__)}/padrino-helpers/locale/*.yml"]
6
+
4
7
  module Padrino
5
8
  module Helpers
6
9
  def self.registered(app)
@@ -45,7 +45,7 @@ module Padrino
45
45
  # meta_tag "text/html; charset=UTF-8", :http-equiv => "Content-Type" => <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
46
46
  def meta_tag(content, options={})
47
47
  options.reverse_merge!("content" => content)
48
- content_tag(:meta, '', options)
48
+ tag(:meta, options)
49
49
  end
50
50
 
51
51
  # Creates an image element with given url and options
@@ -174,8 +174,8 @@ module Padrino
174
174
  # 'put' and 'delete' are just specified using hidden fields with form action still 'put'.
175
175
  # hidden_form_method_field('delete') => <input name="_method" value="delete" />
176
176
  def hidden_form_method_field(desired_method)
177
- return '' if (desired_method =~ /get|post/)
178
- original_method = desired_method.dup
177
+ return '' if (desired_method.to_s =~ /get|post/)
178
+ original_method = desired_method.to_s.dup
179
179
  desired_method.replace('post')
180
180
  hidden_field_tag(:_method, :value => original_method)
181
181
  end
@@ -65,42 +65,106 @@ module Padrino
65
65
  end * "\n"
66
66
  end
67
67
 
68
- # Smart time helper which returns relative text representing times for recent dates
69
- # and absolutes for dates that are far removed from the current date
70
- # time_in_words(10.days.ago) => '10 days ago'
71
- def time_in_words(date)
72
- date = date.to_date
73
- date = Date.parse(date, true) unless /Date.*/ =~ date.class.to_s
74
- days = (date - Date.today).to_i
68
+ # Reports the approximate distance in time between two Time or Date objects or integers as seconds.
69
+ # Set <tt>include_seconds</tt> to true if you want more detailed approximations when distance < 1 min, 29 secs
70
+ # Distances are reported based on the following table:
71
+ #
72
+ # 0 <-> 29 secs # => less than a minute
73
+ # 30 secs <-> 1 min, 29 secs # => 1 minute
74
+ # 1 min, 30 secs <-> 44 mins, 29 secs # => [2..44] minutes
75
+ # 44 mins, 30 secs <-> 89 mins, 29 secs # => about 1 hour
76
+ # 89 mins, 29 secs <-> 23 hrs, 59 mins, 29 secs # => about [2..24] hours
77
+ # 23 hrs, 59 mins, 29 secs <-> 47 hrs, 59 mins, 29 secs # => 1 day
78
+ # 47 hrs, 59 mins, 29 secs <-> 29 days, 23 hrs, 59 mins, 29 secs # => [2..29] days
79
+ # 29 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs # => about 1 month
80
+ # 59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 1 sec # => [2..12] months
81
+ # 1 yr <-> 1 yr, 3 months # => about 1 year
82
+ # 1 yr, 3 months <-> 1 yr, 9 months # => over 1 year
83
+ # 1 yr, 9 months <-> 2 yr minus 1 sec # => almost 2 years
84
+ # 2 yrs <-> max time or date # => (same rules as 1 yr)
85
+ #
86
+ # With <tt>include_seconds</tt> = true and the difference < 1 minute 29 seconds:
87
+ # 0-4 secs # => less than 5 seconds
88
+ # 5-9 secs # => less than 10 seconds
89
+ # 10-19 secs # => less than 20 seconds
90
+ # 20-39 secs # => half a minute
91
+ # 40-59 secs # => less than a minute
92
+ # 60-89 secs # => 1 minute
93
+ #
94
+ # ==== Examples
95
+ # from_time = Time.now
96
+ # distance_of_time_in_words(from_time, from_time + 50.minutes) # => about 1 hour
97
+ # distance_of_time_in_words(from_time, 50.minutes.from_now) # => about 1 hour
98
+ # distance_of_time_in_words(from_time, from_time + 15.seconds) # => less than a minute
99
+ # distance_of_time_in_words(from_time, from_time + 15.seconds, true) # => less than 20 seconds
100
+ # distance_of_time_in_words(from_time, 3.years.from_now) # => about 3 years
101
+ # distance_of_time_in_words(from_time, from_time + 60.hours) # => about 3 days
102
+ # distance_of_time_in_words(from_time, from_time + 45.seconds, true) # => less than a minute
103
+ # distance_of_time_in_words(from_time, from_time - 45.seconds, true) # => less than a minute
104
+ # distance_of_time_in_words(from_time, 76.seconds.from_now) # => 1 minute
105
+ # distance_of_time_in_words(from_time, from_time + 1.year + 3.days) # => about 1 year
106
+ # distance_of_time_in_words(from_time, from_time + 3.years + 6.months) # => over 3 years
107
+ # distance_of_time_in_words(from_time, from_time + 4.years + 9.days + 30.minutes + 5.seconds) # => about 4 years
108
+ #
109
+ # to_time = Time.now + 6.years + 19.days
110
+ # distance_of_time_in_words(from_time, to_time, true) # => about 6 years
111
+ # distance_of_time_in_words(to_time, from_time, true) # => about 6 years
112
+ # distance_of_time_in_words(Time.now, Time.now) # => less than a minute
113
+ #
114
+ def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false, options = {})
115
+ from_time = from_time.to_time if from_time.respond_to?(:to_time)
116
+ to_time = to_time.to_time if to_time.respond_to?(:to_time)
117
+ distance_in_minutes = (((to_time - from_time).abs)/60).round
118
+ distance_in_seconds = ((to_time - from_time).abs).round
75
119
 
76
- return 'today' if days >= 0 and days < 1
77
- return 'tomorrow' if days >= 1 and days < 2
78
- return 'yesterday' if days >= -1 and days < 0
120
+ I18n.with_options :locale => options[:locale], :scope => :'datetime.distance_in_words' do |locale|
121
+ case distance_in_minutes
122
+ when 0..1
123
+ return distance_in_minutes == 0 ?
124
+ locale.t(:less_than_x_minutes, :count => 1) :
125
+ locale.t(:x_minutes, :count => distance_in_minutes) unless include_seconds
79
126
 
80
- return "in #{days} days" if days.abs < 60 and days > 0
81
- return "#{days.abs} days ago" if days.abs < 60 and days < 0
127
+ case distance_in_seconds
128
+ when 0..4 then locale.t :less_than_x_seconds, :count => 5
129
+ when 5..9 then locale.t :less_than_x_seconds, :count => 10
130
+ when 10..19 then locale.t :less_than_x_seconds, :count => 20
131
+ when 20..39 then locale.t :half_a_minute
132
+ when 40..59 then locale.t :less_than_x_minutes, :count => 1
133
+ else locale.t :x_minutes, :count => 1
134
+ end
82
135
 
83
- return date.strftime('%A, %B %e') if days.abs < 182
84
- return date.strftime('%A, %B %e, %Y')
136
+ when 2..44 then locale.t :x_minutes, :count => distance_in_minutes
137
+ when 45..89 then locale.t :about_x_hours, :count => 1
138
+ when 90..1439 then locale.t :about_x_hours, :count => (distance_in_minutes.to_f / 60.0).round
139
+ when 1440..2529 then locale.t :x_days, :count => 1
140
+ when 2530..43199 then locale.t :x_days, :count => (distance_in_minutes.to_f / 1440.0).round
141
+ when 43200..86399 then locale.t :about_x_months, :count => 1
142
+ when 86400..525599 then locale.t :x_months, :count => (distance_in_minutes.to_f / 43200.0).round
143
+ else
144
+ distance_in_years = distance_in_minutes / 525600
145
+ minute_offset_for_leap_year = (distance_in_years / 4) * 1440
146
+ remainder = ((distance_in_minutes - minute_offset_for_leap_year) % 525600)
147
+ if remainder < 131400
148
+ locale.t(:about_x_years, :count => distance_in_years)
149
+ elsif remainder < 394200
150
+ locale.t(:over_x_years, :count => distance_in_years)
151
+ else
152
+ locale.t(:almost_x_years, :count => distance_in_years + 1)
153
+ end
154
+ end
155
+ end
85
156
  end
86
- alias time_ago time_in_words
87
157
 
88
- # Returns relative time in words referencing the given date
89
- # relative_time_ago(Time.now) => 'about a minute ago'
90
- def relative_time_ago(from_time)
91
- distance_in_minutes = (((Time.now - from_time.to_time).abs)/60).round
92
- case distance_in_minutes
93
- when 0..1 then 'about a minute'
94
- when 2..44 then "#{distance_in_minutes} minutes"
95
- when 45..89 then 'about 1 hour'
96
- when 90..1439 then "about #{(distance_in_minutes.to_f / 60.0).round} hours"
97
- when 1440..2879 then '1 day'
98
- when 2880..43199 then "#{(distance_in_minutes / 1440).round} days"
99
- when 43200..86399 then 'about 1 month'
100
- when 86400..525599 then "#{(distance_in_minutes / 43200).round} months"
101
- when 525600..1051199 then 'about 1 year'
102
- else "over #{(distance_in_minutes / 525600).round} years"
103
- end
158
+ # Like distance_of_time_in_words, but where <tt>to_time</tt> is fixed to <tt>Time.now</tt>.
159
+ #
160
+ # ==== Examples
161
+ # time_ago_in_words(3.minutes.from_now) # => 3 minutes
162
+ # time_ago_in_words(Time.now - 15.hours) # => 15 hours
163
+ # time_ago_in_words(Time.now) # => less than a minute
164
+ #
165
+ # from_time = Time.now - 3.days - 14.minutes - 25.seconds # => 3 days
166
+ def time_ago_in_words(from_time, include_seconds = false)
167
+ distance_of_time_in_words(from_time, Time.now, include_seconds)
104
168
  end
105
169
 
106
170
  # Used in xxxx.js.erb files to escape html so that it can be passed to javascript from Padrino
@@ -0,0 +1,117 @@
1
+ en:
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: 3
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: "%u%n"
18
+ unit: "$"
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: "half a minute"
64
+ less_than_x_seconds:
65
+ one: "less than 1 second"
66
+ other: "less than {{count}} seconds"
67
+ x_seconds:
68
+ one: "1 second"
69
+ other: "{{count}} seconds"
70
+ less_than_x_minutes:
71
+ one: "less than a minute"
72
+ other: "less than {{count}} minutes"
73
+ x_minutes:
74
+ one: "1 minute"
75
+ other: "{{count}} minutes"
76
+ about_x_hours:
77
+ one: "about 1 hour"
78
+ other: "about {{count}} hours"
79
+ x_days:
80
+ one: "1 day"
81
+ other: "{{count}} days"
82
+ about_x_months:
83
+ one: "about 1 month"
84
+ other: "about {{count}} months"
85
+ x_months:
86
+ one: "1 month"
87
+ other: "{{count}} months"
88
+ about_x_years:
89
+ one: "about 1 year"
90
+ other: "about {{count}} years"
91
+ over_x_years:
92
+ one: "over 1 year"
93
+ other: "over {{count}} years"
94
+ almost_x_years:
95
+ one: "almost 1 year"
96
+ other: "almost {{count}} years"
97
+ prompts:
98
+ year: "Year"
99
+ month: "Month"
100
+ day: "Day"
101
+ hour: "Hour"
102
+ minute: "Minute"
103
+ second: "Seconds"
104
+
105
+ activemodel:
106
+ errors:
107
+ template:
108
+ header:
109
+ one: "1 error prohibited this {{model}} from being saved"
110
+ other: "{{count}} errors prohibited this {{model}} from being saved"
111
+ # The variable :count is also available
112
+ body: "There were problems with the following fields:"
113
+
114
+ support:
115
+ select:
116
+ # default value for :prompt => true in FormOptionsHelper
117
+ prompt: "Please select"
@@ -1,26 +1,6 @@
1
1
  module Padrino
2
2
  module Helpers
3
3
  module RenderHelpers
4
- # Renders a erb template based on the relative path
5
- # erb_template 'users/new'
6
- def erb_template(template_path, options={})
7
- render_template template_path, options.merge(:template_engine => :erb)
8
- end
9
-
10
- # Renders a haml template based on the relative path
11
- # haml_template 'users/new'
12
- def haml_template(template_path, options={})
13
- render_template template_path, options.merge(:template_engine => :haml)
14
- end
15
-
16
- # Renders a template from a file path automatically determining rendering engine
17
- # render_template 'users/new'
18
- # options = { :template_engine => 'haml' }
19
- def render_template(template_path, options={})
20
- template_engine = options.delete(:template_engine) || resolve_template_engine(template_path)
21
- render template_engine.to_sym, template_path.to_sym, options
22
- end
23
-
24
4
  # Partials implementation which includes collections support
25
5
  # partial 'photo/_item', :object => @photo
26
6
  # partial 'photo/_item', :collection => @photos
@@ -37,27 +17,16 @@ module Padrino
37
17
  collection.collect do |member|
38
18
  counter += 1
39
19
  options[:locals].merge!(object_name => member, "#{object_name}_counter".to_sym => counter)
40
- render_template(template_path, options.merge(:layout => false))
20
+ render(template_path, nil, options.merge(:layout => false))
41
21
  end.join("\n")
42
22
  else
43
23
  if member = options.delete(:object)
44
24
  options[:locals].merge!(object_name => member)
45
25
  end
46
- render_template(template_path, options.merge(:layout => false))
26
+ render(template_path, nil, options.merge(:layout => false))
47
27
  end
48
28
  end
49
- alias render_partial partial
50
-
51
- private
52
-
53
- # Returns the template engine (i.e haml) to use for a given template_path
54
- # resolve_template_engine('users/new') => :haml
55
- def resolve_template_engine(template_path)
56
- resolved_template_path = File.join(self.options.views, template_path.to_s + ".*")
57
- template_file = Dir[resolved_template_path].first
58
- raise "Template path '#{template_path}' could not be located in views!" unless template_file
59
- template_engine = File.extname(template_file)[1..-1].to_sym
60
- end
29
+ alias :render_partial :partial
61
30
  end
62
31
  end
63
32
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{padrino-helpers}
8
- s.version = "0.2.9"
8
+ s.version = "0.4.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", "Arthur Chiu"]
12
- s.date = %q{2009-12-22}
12
+ s.date = %q{2010-01-06}
13
13
  s.description = %q{Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino}
14
14
  s.email = %q{nesquena@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  "lib/padrino-helpers/form_builder/standard_form_builder.rb",
29
29
  "lib/padrino-helpers/form_helpers.rb",
30
30
  "lib/padrino-helpers/format_helpers.rb",
31
+ "lib/padrino-helpers/locale/en.yml",
31
32
  "lib/padrino-helpers/output_helpers.rb",
32
33
  "lib/padrino-helpers/render_helpers.rb",
33
34
  "lib/padrino-helpers/tag_helpers.rb",
@@ -1,41 +1,15 @@
1
- require 'sinatra/base'
2
- require 'haml'
1
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
2
+ PADRINO_ENV = 'test' unless defined? PADRINO_ENV
3
+
4
+ require 'padrino-core'
3
5
 
4
6
  class RenderUser
5
7
  attr_accessor :name
6
8
  def initialize(name); @name = name; end
7
9
  end
8
10
 
9
- class RenderDemo < Sinatra::Base
10
- register Padrino::Helpers
11
-
12
- configure do
13
- set :root, File.dirname(__FILE__)
14
- end
15
-
16
- # haml_template
17
- get '/render_haml' do
18
- @template = 'haml'
19
- haml_template 'haml/test'
20
- end
21
-
22
- # erb_template
23
- get '/render_erb' do
24
- @template = 'erb'
25
- erb_template 'erb/test'
26
- end
27
-
28
- # render_template with explicit engine
29
- get '/render_template/:engine' do
30
- @template = params[:engine]
31
- render_template "template/#{@template}_template", :template_engine => @template
32
- end
33
-
34
- # render_template without explicit engine
35
- get '/render_template' do
36
- render_template "template/some_template"
37
- end
38
-
11
+ class RenderDemo < Padrino::Application
12
+
39
13
  # partial with object
40
14
  get '/partial/object' do
41
15
  partial 'template/user', :object => RenderUser.new('John'), :locals => { :extra => "bar" }
@@ -5,10 +5,8 @@ require 'mocha'
5
5
  require 'rack/test'
6
6
  require 'webrat'
7
7
 
8
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
9
- $LOAD_PATH.unshift(File.dirname(__FILE__))
10
8
  require 'support_helpers'
11
- require File.dirname(__FILE__) + '/../lib/padrino-helpers'
9
+ require 'padrino-helpers'
12
10
 
13
11
  class Test::Unit::TestCase
14
12
  include Padrino::Helpers::OutputHelpers
@@ -1,5 +1,20 @@
1
+ require 'padrino-core/support_lite'
1
2
  unless Fixnum.method_defined?(:days)
2
- require 'active_support/core_ext/object/misc'
3
+ # We don't add active_support/core_ext/object/misc because override some extlib defaults
4
+ if Padrino.support == :extlib
5
+ class Object
6
+ # A duck-type assistant method. For example, Active Support extends Date
7
+ # to define an acts_like_date? method, and extends Time to define
8
+ # acts_like_time?. As a result, we can do "x.acts_like?(:time)" and
9
+ # "x.acts_like?(:date)" to do duck-type-safe comparisons, since classes that
10
+ # we want to act like Time simply need to define an acts_like_time? method.
11
+ def acts_like?(duck)
12
+ respond_to? "acts_like_#{duck}?"
13
+ end
14
+ end
15
+ else
16
+ require 'active_support/core_ext/object/misc'
17
+ end
3
18
  require 'active_support/core_ext/date'
4
19
  require 'active_support/core_ext/time'
5
20
  require 'active_support/core_ext/numeric'
@@ -87,60 +87,57 @@ class TestFormatHelpers < Test::Unit::TestCase
87
87
  end
88
88
  end
89
89
 
90
- context 'for #time_in_words method' do
90
+ context 'for #time_ago_in_words method' do
91
91
  should "display today" do
92
- assert_equal 'today', time_in_words(Time.now)
92
+ assert_equal 'less than a minute', time_ago_in_words(Time.now)
93
93
  end
94
94
  should "display yesterday" do
95
- assert_equal 'yesterday', time_in_words(1.day.ago)
95
+ assert_equal '1 day', time_ago_in_words(1.day.ago)
96
96
  end
97
97
  should "display tomorrow" do
98
- assert_equal 'tomorrow', time_in_words(1.day.from_now)
98
+ assert_equal '1 day', time_ago_in_words(1.day.from_now)
99
99
  end
100
100
  should "return future number of days" do
101
- assert_equal 'in 4 days', time_in_words(4.days.from_now)
101
+ assert_equal '4 days', time_ago_in_words(4.days.from_now)
102
102
  end
103
103
  should "return past days ago" do
104
- assert_equal '4 days ago', time_in_words(4.days.ago)
104
+ assert_equal '4 days', time_ago_in_words(4.days.ago)
105
105
  end
106
106
  should "return formatted archived date" do
107
- assert_equal 100.days.ago.strftime('%A, %B %e'), time_in_words(100.days.ago)
107
+ assert_equal '3 months', time_ago_in_words(100.days.ago)
108
108
  end
109
109
  should "return formatted archived year date" do
110
- assert_equal 500.days.ago.strftime('%A, %B %e, %Y'), time_in_words(500.days.ago)
110
+ assert_equal 'over 1 year', time_ago_in_words(500.days.ago)
111
111
  end
112
- end
113
-
114
- context 'for #relative_time_ago method' do
115
112
  should 'display now as a minute ago' do
116
- assert_equal 'about a minute', relative_time_ago(1.minute.ago)
113
+ assert_equal '1 minute', time_ago_in_words(1.minute.ago)
117
114
  end
118
115
  should "display a few minutes ago" do
119
- assert_equal '4 minutes', relative_time_ago(4.minute.ago)
116
+ assert_equal '4 minutes', time_ago_in_words(4.minute.ago)
120
117
  end
121
118
  should "display an hour ago" do
122
- assert_equal 'about 1 hour', relative_time_ago(1.hour.ago + 5.minutes.ago.sec)
119
+ assert_equal 'about 1 hour', time_ago_in_words(1.hour.ago + 5.minutes.ago.sec)
123
120
  end
124
121
  should "display a few hours ago" do
125
- assert_equal 'about 3 hours', relative_time_ago(3.hour.ago + 5.minutes.ago.sec)
122
+ assert_equal 'about 3 hours', time_ago_in_words(3.hour.ago + 5.minutes.ago.sec)
126
123
  end
127
124
  should "display a day ago" do
128
- assert_equal '1 day', relative_time_ago(1.day.ago)
125
+ assert_equal '1 day', time_ago_in_words(1.day.ago)
129
126
  end
130
127
  should "display a few days ago" do
131
- assert_equal '5 days', relative_time_ago(5.days.ago - 5.minutes.ago.sec)
128
+ assert_equal '5 days', time_ago_in_words(5.days.ago - 5.minutes.ago.sec)
132
129
  end
133
130
  should "display a month ago" do
134
- assert_equal 'about 1 month', relative_time_ago(32.days.ago + 5.minutes.ago.sec)
131
+ assert_equal 'about 1 month', time_ago_in_words(32.days.ago + 5.minutes.ago.sec)
135
132
  end
136
133
  should "display a few months ago" do
137
- assert_equal '6 months', relative_time_ago(180.days.ago - 5.minutes.ago.sec)
134
+ assert_equal '6 months', time_ago_in_words(180.days.ago - 5.minutes.ago.sec)
138
135
  end
139
136
  should "display a year ago" do
140
- assert_equal 'about 1 year', relative_time_ago(365.days.ago - 5.minutes.ago.sec)
137
+ assert_equal 'about 1 year', time_ago_in_words(365.days.ago - 5.minutes.ago.sec)
141
138
  end
142
139
  should "display a few years ago" do
143
- assert_equal 'over 7 years', relative_time_ago(2800.days.ago - 5.minutes.ago.sec)
140
+ assert_equal 'over 7 years', time_ago_in_words(2800.days.ago - 5.minutes.ago.sec)
144
141
  end
145
142
  end
146
143
 
@@ -6,34 +6,6 @@ class TestRenderHelpers < Test::Unit::TestCase
6
6
  RenderDemo.tap { |app| app.set :environment, :test }
7
7
  end
8
8
 
9
- context 'for #haml_template method' do
10
- setup { visit '/render_haml' }
11
- should('render template properly') do
12
- assert_have_selector "h1", :content => "This is a haml template!"
13
- end
14
- end
15
-
16
- context 'for #erb_template method' do
17
- setup { visit '/render_erb' }
18
- should('render template properly') do
19
- assert_have_selector "h1", :content => "This is a erb template!"
20
- end
21
- end
22
-
23
- context 'for #render_template method with explicit engine' do
24
- setup { visit '/render_template/haml' }
25
- should('render template properly') do
26
- assert_have_selector "h1", :content => "This is a haml template sent from render_template!"
27
- end
28
- end
29
-
30
- context 'for #render_template method without explicit engine' do
31
- setup { visit '/render_template' }
32
- should('render template properly') do
33
- assert_have_selector "h1", :content => "This is a haml template which was detected!"
34
- end
35
- end
36
-
37
9
  context 'for #partial method and object' do
38
10
  setup { visit '/partial/object' }
39
11
  should "render partial html with object" do
@@ -46,7 +18,7 @@ class TestRenderHelpers < Test::Unit::TestCase
46
18
  assert_have_selector 'p', :content => "Extra is bar"
47
19
  end
48
20
  end
49
-
21
+
50
22
  context 'for #partial method and collection' do
51
23
  setup { visit '/partial/collection' }
52
24
  should "render partial html with collection" do
@@ -61,7 +33,7 @@ class TestRenderHelpers < Test::Unit::TestCase
61
33
  assert_have_selector 'p', :content => "Extra is bar"
62
34
  end
63
35
  end
64
-
36
+
65
37
  context 'for #partial method and locals' do
66
38
  setup { visit '/partial/locals' }
67
39
  should "render partial html with locals" do
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.2.9
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-12-22 00:00:00 -08:00
15
+ date: 2010-01-06 00:00:00 +01:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
@@ -106,6 +106,7 @@ files:
106
106
  - lib/padrino-helpers/form_builder/standard_form_builder.rb
107
107
  - lib/padrino-helpers/form_helpers.rb
108
108
  - lib/padrino-helpers/format_helpers.rb
109
+ - lib/padrino-helpers/locale/en.yml
109
110
  - lib/padrino-helpers/output_helpers.rb
110
111
  - lib/padrino-helpers/render_helpers.rb
111
112
  - lib/padrino-helpers/tag_helpers.rb