padrino-helpers 0.9.1 → 0.9.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.
data/README.rdoc CHANGED
@@ -6,7 +6,6 @@ This component provides a great deal of view helpers related to html markup gene
6
6
  There are helpers for generating tags, forms, links, images, and more. Most of the basic
7
7
  methods should be very familiar to anyone who has used rails view helpers.
8
8
 
9
-
10
9
  === Output Helpers
11
10
 
12
11
  Output helpers are a collection of important methods for managing, capturing and displaying output
@@ -52,24 +51,8 @@ This will capture the template body passed into the form_tag block and then appe
52
51
  to the template through the use of <tt>concat_content</tt>. Note have been built to work for both haml and erb
53
52
  templates using the same syntax.
54
53
 
55
- The list of defined helpers in the 'output helpers' category:
56
-
57
- * <tt>content_for(key, &block)</tt>
58
- * Capture a block of content to be rendered at a later time.
59
- * <tt>content_for(:head) { ...content... }</tt>
60
- * Also supports arguments passed to the content block
61
- * <tt>content_for(:head) { |param1, param2| ...content... }</tt>
62
- * <tt>yield_content(key, *args)</tt>
63
- * Render the captured content blocks for a given key.
64
- * <tt>yield_content :head</tt>
65
- * Also supports arguments yielded to the content block
66
- * <tt>yield_content :head, param1, param2</tt>
67
- * <tt>capture_html(*args, &block)</tt>
68
- * Captures the html from a block of template code for erb or haml
69
- * <tt>capture_html(&block)</tt> => "...html..."
70
- * <tt>concat_content(text="")</tt>
71
- * Outputs the given text to the templates buffer directly in erb or haml
72
- * <tt>concat_content("This will be output to the template buffer in erb or haml")</tt>
54
+ For more information on using output helpers, check out the guide for
55
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
73
56
 
74
57
  === Tag Helpers
75
58
 
@@ -89,20 +72,8 @@ The input_tag is used to build tags that are related to accepting input from the
89
72
 
90
73
  Note that all of these accept html options and result in returning a string containing html tags.
91
74
 
92
- The list of defined helpers in the 'tag helpers' category:
93
-
94
- * <tt>tag(name, options={})</tt>
95
- * Creates an html tag with the given name and options
96
- * <tt>tag(:br, :style => 'clear:both')</tt> => <br style="clear:both" />
97
- * <tt>tag(:p, :content => "demo", :class => 'large')</tt> => <p class="large">demo</p>
98
- * <tt>content_tag(name, content, options={})</tt>
99
- * Creates an html tag with given name, content and options
100
- * <tt>content_tag(:p, "demo", :class => 'light')</tt> => <p class="light">demo</p>
101
- * <tt>content_tag(:p, :class => 'dark') { ...content... }</tt> => <p class="dark">...content...</p>
102
- * <tt>input_tag(type, options = {})</tt>
103
- * Creates an html input field with given type and options
104
- * <tt>input_tag :text, :class => "demo"</tt>
105
- * <tt>input_tag :password, :value => "secret", :class => "demo"</tt>
75
+ For more information on using tag helpers, check out the guide for
76
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
106
77
 
107
78
  === Asset Helpers
108
79
 
@@ -122,31 +93,8 @@ simple view template:
122
93
  %p Mail me at #{mail_to 'fake@faker.com', "Fake Email Link", :cc => "test@demo.com"}
123
94
  %p= image_tag 'padrino.png', :width => '35', :class => 'logo'
124
95
 
125
- The list of defined helpers in the 'asset helpers' category:
126
-
127
- * <tt>flash_tag(kind, options={})</tt>
128
- * Creates a div to display the flash of given type if it exists
129
- * <tt>flash_tag(:notice, :class => 'flash', :id => 'flash-notice')</tt>
130
- * <tt>link_to(*args, &block)</tt>
131
- * Creates a link element with given name, url and options
132
- * <tt>link_to 'click me', '/dashboard', :class => 'linky'</tt>
133
- * <tt>link_to 'click me', '/dashboard', :class => 'linky', :if => @foo.present?</tt>
134
- * <tt>link_to 'click me', '/dashboard', :class => 'linky', :unless => @foo.blank?</tt>
135
- * <tt>link_to 'click me', '/dashboard', :class => 'linky', :unless => :current</tt>
136
- * <tt>link_to('/dashboard', :class => 'blocky') { ...content... }</tt>
137
- * <tt>mail_to(email, caption=nil, mail_options={})</tt>
138
- * Creates a mailto link tag to the specified email_address
139
- * <tt>mail_to "me@demo.com"</tt>
140
- * <tt>mail_to "me@demo.com", "My Email", :subject => "Feedback", :cc => 'test@demo.com'</tt>
141
- * <tt>image_tag(url, options={})</tt>
142
- * Creates an image element with given url and options
143
- * <tt>image_tag('icons/avatar.png')</tt>
144
- * <tt>stylesheet_link_tag(*sources)</tt>
145
- * Returns a stylesheet link tag for the sources specified as arguments
146
- * <tt>stylesheet_link_tag 'style', 'application', 'layout'</tt>
147
- * <tt>javascript_include_tag(*sources)</tt>
148
- * Returns an html script tag for each of the sources provided.
149
- * <tt>javascript_include_tag 'application', 'special'</tt>
96
+ For more information on using asset helpers, check out the guide for
97
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
150
98
 
151
99
  === Form Helpers
152
100
 
@@ -170,58 +118,8 @@ example of constructing a non-object form would be:
170
118
  - field_set_tag(:class => 'buttons') do
171
119
  = submit_tag "Remove"
172
120
 
173
- The list of defined helpers in the 'form helpers' category:
174
-
175
- * <tt>form_tag(url, options={}, &block)</tt>
176
- * Constructs a form without object based on options
177
- * Supports form methods 'put' and 'delete' through hidden field
178
- * <tt>form_tag('/register', :class => 'example') { ... }</tt>
179
- * <tt>field_set_tag(*args, &block)</tt>
180
- * Constructs a field_set to group fields with given options
181
- * <tt>field_set_tag(:class => 'office-set') { }</tt>
182
- * <tt>field_set_tag("Office", :class => 'office-set') { }</tt>
183
- * <tt>error_messages_for(:record, options={})</tt>
184
- * Constructs list html for the errors for a given object
185
- * <tt>error_messages_for :user</tt>
186
- * <tt>label_tag(name, options={}, &block)</tt>
187
- * Constructs a label tag from the given options
188
- * <tt>label_tag :username, :class => 'long-label'</tt>
189
- * <tt>label_tag(:username, :class => 'blocked-label') { ... }</tt>
190
- * <tt>hidden_field_tag(name, options={})</tt>
191
- * Constructs a hidden field input from the given options
192
- * <tt>hidden_field_tag :session_key, :value => 'secret'</tt>
193
- * <tt>text_field_tag(name, options={})</tt>
194
- * Constructs a text field input from the given options
195
- * <tt>text_field_tag :username, :class => 'long'</tt>
196
- * <tt>text_area_tag(name, options={})</tt>
197
- * Constructs a text area input from the given options
198
- * <tt>text_area_tag :username, :class => 'long'</tt>
199
- * <tt>password_field_tag(name, options={})</tt>
200
- * Constructs a password field input from the given options
201
- * <tt>password_field_tag :password, :class => 'long'</tt>
202
- * <tt>check_box_tag(name, options={})</tt>
203
- * Constructs a checkbox input from the given options
204
- * <tt>check_box_tag :remember_me, :checked => true</tt>
205
- * <tt>radio_button_tag(name, options={})</tt>
206
- * Constructs a radio button input from the given options
207
- * <tt>radio_button_tag :gender, :value => 'male'</tt>
208
- * <tt>select_tag(name, settings={})</tt>
209
- * Constructs a select tag with options from the given settings
210
- * <tt>select_tag(:favorite_color, :options => ['1', '2', '3'], :selected => '1')</tt>
211
- * <tt>select_tag(:more_color, :options => [['label', '1'], ['label2', '2']])</tt>
212
- * <tt>select_tag(:multiple_color, :options => [...], :multiple => true)</tt>
213
- * <tt>file_field_tag(name, options={})</tt>
214
- * Constructs a file field input from the given options
215
- * <tt>file_field_tag :photo, :class => 'long'</tt>
216
- * <tt>submit_tag(caption, options={})</tt>
217
- * Constructs a submit button from the given options
218
- * <tt>submit_tag "Create", :class => 'success'</tt>
219
- * <tt>button_tag(caption, options={})</tt>
220
- * Constructs an input (type => 'button') from the given options
221
- * <tt>button_tag "Cancel", :class => 'clear'</tt>
222
- * <tt>image_submit_tag(source, options={})</tt>
223
- * Constructs an image submit button from the given options
224
- * <tt>image_submit_tag "submit.png", :class => 'success'</tt>
121
+ For more information on using form helpers, check out the guide for
122
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
225
123
 
226
124
  === FormBuilders
227
125
 
@@ -253,51 +151,6 @@ A form_for using these basic fields might look like:
253
151
  = location.text_field :city
254
152
  %p
255
153
  = f.submit "Create", :class => 'button'
256
-
257
- The list of defined helpers in the 'form builders' category:
258
-
259
- * <tt>form_for(object, url, settings={}, &block)</tt>
260
- * Constructs a form using given or default form_builder
261
- * Supports form methods 'put' and 'delete' through hidden field
262
- * Defaults to StandardFormBuilder but you can easily create your own!
263
- * <tt>form_for(@user, '/register', :id => 'register') { |f| ...field-elements... }</tt>
264
- * <tt>form_for(:user, '/register', :id => 'register') { |f| ...field-elements... }</tt>
265
- * <tt>fields_for(object, settings={}, &block)</tt>
266
- * Constructs fields for a given object for use in an existing form
267
- * Defaults to StandardFormBuilder but you can easily create your own!
268
- * <tt>fields_for @user.assignment do |assignment| ... end</tt>
269
- * <tt>fields_for :assignment do |assigment| ... end</tt>
270
-
271
- The following are fields provided by AbstractFormBuilder that can be used within a form_for or fields_for:
272
-
273
- * <tt>error_messages(options={})</tt>
274
- * Displays list html for the errors on form object
275
- * <tt>f.errors_messages</tt>
276
- * <tt>label(field, options={})</tt>
277
- * <tt>f.label :name, :class => 'long'</tt>
278
- * <tt>text_field(field, options={})</tt>
279
- * <tt>f.text_field :username, :class => 'long'</tt>
280
- * <tt>check_box(field, options={})</tt>
281
- * Uses hidden field to provide a 'unchecked' value for field
282
- * <tt>f.check_box :remember_me, :uncheck_value => 'false'</tt>
283
- * <tt>radio_button(field, options={})</tt>
284
- * <tt>f.radio_button :gender, :value => 'male'</tt>
285
- * <tt>hidden_field(field, options={})</tt>
286
- * <tt>f.hidden_field :session_id, :class => 'hidden'</tt>
287
- * <tt>text_area(field, options={})</tt>
288
- * <tt>f.text_area :summary, :class => 'long'</tt>
289
- * <tt>password_field(field, options={})</tt>
290
- * <tt>f.password_field :secret, :class => 'long'</tt>
291
- * <tt>file_field(field, options={})</tt>
292
- * <tt>f.file_field :photo, :class => 'long'</tt>
293
- * <tt>select(field, options={})</tt>
294
- * <tt>f.select(:state, :options => ['California', 'Texas', 'Wyoming'])</tt>
295
- * <tt>f.select(:state, :collection => @states, :fields => [:name, :id])</tt>
296
- * <tt>f.select(:state, :options => [...], :include_blank => true)</tt>
297
- * <tt>submit(caption, options={})</tt>
298
- * <tt>f.submit "Update", :class => 'long'</tt>
299
- * <tt>image_submit(source, options={})</tt>
300
- * <tt>f.image_submit "submit.png", :class => 'long'</tt>
301
154
 
302
155
  There is also an additional StandardFormBuilder which builds on the abstract fields that can be used within a form_for.
303
156
 
@@ -320,50 +173,10 @@ and would generate this html (with each input contained in a paragraph and conta
320
173
  <p><input type="submit" value="Create" class="button"></p>
321
174
  </form>
322
175
 
323
- The following are fields provided by StandardFormBuilder that can be used within a form_for or fields_for:
324
-
325
- * <tt>text_field_block(field, options={}, label_options={})</tt>
326
- * <tt>text_field_block(:nickname, :class => 'big', :caption => "Username")</tt>
327
- * <tt>text_area_block(field, options={}, label_options={})</tt>
328
- * <tt>text_area_block(:about, :class => 'big')</tt>
329
- * <tt>password_field_block(field, options={}, label_options={})</tt>
330
- * <tt>password_field_block(:code, :class => 'big')</tt>
331
- * <tt>file_field_block(field, options={}, label_options={})</tt>
332
- * <tt>file_field_block(:photo, :class => 'big')</tt>
333
- * <tt>check_box_block(field, options={}, label_options={})</tt>
334
- * <tt>check_box_block(:remember_me, :class => 'big')</tt>
335
- * <tt>select_block(field, options={}, label_options={})</tt>
336
- * <tt>select_block(:country, :option => ['USA', 'Canada'])</tt>
337
- * <tt>submit_block(caption, options={})</tt>
338
- * <tt>submit_block(:username, :class => 'big')</tt>
339
- * <tt>image_submit_block(source, options={})</tt>
340
- * <tt>image_submit_block('submit.png', :class => 'big')</tt>
341
-
342
- You can also easily build your own FormBuilder which allows for customized fields and behavior:
343
-
344
- class MyCustomFormBuilder < AbstractFormBuilder
345
- # Here we have access to a number of useful variables
346
- #
347
- # * template (use this to invoke any helpers)(ex. template.hidden_field_tag(...))
348
- # * object (the record for this form) (ex. object.valid?)
349
- # * object_name (object's underscored type) (ex. object_name => 'admin_user')
350
- #
351
- # We also have access to self.field_types => [:text_field, :text_area, ...]
352
- # In addition, we have access to all the existing field tag helpers (text_field, hidden_field, file_field, ...)
353
- end
354
-
355
- Once a custom builder is defined, any call to form_for can use the new builder:
356
-
357
- - form_for @user, '/register', :builder => 'MyCustomFormBuilder', :id => 'register' do |f|
358
- ...fields here...
359
-
360
- The form builder can even be made into the default builder when form_for is invoked:
176
+ You can also easily build your own FormBuilder which allows for customized fields and behavior.
361
177
 
362
- # anywhere in the Padrino or Sinatra application
363
- set :default_builder, 'MyCustomFormBuilder'
364
-
365
- And there you have it, a fairly complete form builder solution for Padrino (and Sinatra).
366
- I hope to create or merge in an even better 'default' form_builder in the near future.
178
+ For more information on using the Padrino form builders, check out the guide for
179
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
367
180
 
368
181
  === Format Helpers
369
182
 
@@ -390,37 +203,8 @@ Format helpers also includes a number of useful text manipulation functions such
390
203
 
391
204
  These helpers can be invoked from any route or view within your application.
392
205
 
393
- The list of defined helpers in the 'format helpers' category:
394
-
395
- * <tt>simple_format(text, html_options)</tt>
396
- * Returns text transformed into HTML using simple formatting rules.
397
- * <tt>simple_format("hello\nworld")</tt> => "<p>hello<br/>world</p>"
398
- * <tt>pluralize(count, singular, plural = nil)</tt>
399
- * Attempts to pluralize the singular word unless count is 1.
400
- * <tt>pluralize(2, 'person')</tt> => '2 people'
401
- * <tt>word_wrap(text, *args)</tt>
402
- * Wraps the text into lines no longer than line_width width.
403
- * <tt>word_wrap('Once upon a time', :line_width => 8)</tt> => "Once upon\na time"
404
- * <tt>truncate(text, *args)</tt>
405
- * Truncates a given text after a given :length if text is longer than :length (defaults to 30).
406
- * <tt>truncate("Once upon a time in a world far far away", :length => 8)</tt> => "Once upon..."
407
- * <tt>escape_html</tt> (alias <tt>h</tt> and <tt>h!</tt>)
408
- * (from RackUtils) Escape ampersands, brackets and quotes to their HTML/XML entities.
409
- * <tt>relative_time_ago(date)</tt>
410
- * Returns relative time in words referencing the given date
411
- * <tt>relative_time_ago(2.days.ago)</tt> => "2 days"
412
- * <tt>relative_time_ago(5.minutes.ago)</tt> => "5 minutes"
413
- * <tt>relative_time_ago(2800.days.ago)</tt> => "over 7 years"
414
- * <tt>time_in_words(date)</tt>
415
- * Returns relative time in the past or future using appropriate date format
416
- * <tt>time_in_words(2.days.ago)</tt> => "2 days ago"
417
- * <tt>time_in_words(100.days.ago)</tt> => "Tuesday, July 21"
418
- * <tt>time_in_words(1.day.from_now)</tt> => "tomorrow"
419
- * <tt>js_escape_html(html_content)</tt>
420
- * Escapes html to allow passing information to javascript. Used for passing data inside an ajax .js.erb template
421
- * <tt>js_escape_html("<h1>Hey</h1>")</tt>
422
-
423
- See the wiki article for additional information: <...WIKI...>
206
+ For more information on using the format helpers, check out the guide for
207
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
424
208
 
425
209
  === Render Helpers
426
210
 
@@ -439,34 +223,13 @@ There is also a method which renders the first view matching the path and remove
439
223
 
440
224
  render 'path/to/any/template'
441
225
 
442
- It is worth noting these are mostly for convenience. With nested view file paths in Sinatra, this becomes tiresome:
443
-
444
- haml :"the/path/to/file"
445
- erb "/path/to/file".to_sym
446
-
447
226
  Finally, we have the all-important partials support for rendering mini-templates onto a page:
448
227
 
449
228
  partial 'photo/_item', :object => @photo, :locals => { :foo => 'bar' }
450
229
  partial 'photo/_item', :collection => @photos
451
230
 
452
- This works as you would expect and also supports the collection counter inside the partial <tt>item_counter</tt>
453
-
454
- # /views/photo/_item.haml
455
- # Access to collection counter with <partial_name>_counter i.e item_counter
456
- # Access the object with the partial_name i.e item
457
-
458
- The list of defined helpers in the 'render helpers' category:
459
-
460
- * <tt>render(engine, data, options, locals)</tt>
461
- * Renders the specified template with the given options
462
- * <tt>render ‘user/new’'</tt>
463
- * <tt>render :erb, ‘users/new’, :layout => false</tt>
464
- * <tt>partial(template, *args)</tt>
465
- * Renders the html related to the partial template for object or collection
466
- * <tt>partial 'photo/_item', :object => @photo, :locals => { :foo => 'bar' }</tt>
467
- * <tt>partial 'photo/_item', :collection => @photos</tt>
468
-
469
- See the wiki article for additional information: <...WIKI...>
231
+ For more information on using the render and partial helpers, check out the guide for
232
+ {Padrino Helpers}[http://wiki.github.com/padrino/padrino-framework/application-helpers].
470
233
 
471
234
  == Copyright
472
235
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.1
1
+ 0.9.2
@@ -208,10 +208,13 @@ module Padrino
208
208
 
209
209
  ##
210
210
  # Generates a favicon link.
211
- # example:
212
- # favicon_tag 'images/favicon.png'
213
- # or override some options
214
- # favicon_tag 'images/favicon.png', :type => 'image/ico'
211
+ #
212
+ # ==== Examples
213
+ #
214
+ # favicon_tag 'images/favicon.png'
215
+ # # or override some options
216
+ # favicon_tag 'images/favicon.png', :type => 'image/ico'
217
+ #
215
218
  def favicon_tag(source,options={})
216
219
  type = File.extname(source).gsub('.','')
217
220
  options = options.dup.reverse_merge!(:href => source, :rel => 'icon', :type => "image/#{type}")
@@ -67,15 +67,15 @@ module Padrino
67
67
  def check_box(field, options={})
68
68
  unchecked_value = options.delete(:uncheck_value) || '0'
69
69
  options.reverse_merge!(:id => field_id(field), :value => '1')
70
- options.merge!(:checked => true) if values_matches_field?(field, options[:value])
71
- html = hidden_field(field, :value => unchecked_value, :id => nil)
70
+ options.reverse_merge!(:checked => true) if values_matches_field?(field, options[:value])
71
+ html = @template.hidden_field_tag(options[:name] || field_name(field), :value => unchecked_value, :id => nil)
72
72
  html << @template.check_box_tag(field_name(field), options)
73
73
  end
74
74
 
75
75
  # f.radio_button :gender, :value => 'male'
76
76
  def radio_button(field, options={})
77
77
  options.reverse_merge!(:id => field_id(field, options[:value]))
78
- options.merge!(:checked => true) if values_matches_field?(field, options[:value])
78
+ options.reverse_merge!(:checked => true) if values_matches_field?(field, options[:value])
79
79
  @template.radio_button_tag field_name(field), options
80
80
  end
81
81
 
@@ -122,7 +122,8 @@ module Padrino
122
122
 
123
123
  # Add a :invalid css class to the field if it contain an error
124
124
  def field_error(field, options)
125
- if @object && @object.respond_to?(:errors) && @object.errors.respond_to?(:[]) && @object.errors[field]
125
+ error = @object.errors[field] rescue nil
126
+ if error
126
127
  [options[:class], :invalid].flatten.compact.join(" ")
127
128
  else
128
129
  options[:class]
@@ -163,7 +163,8 @@ module Padrino
163
163
  #
164
164
  def error_message_on(object, field, options={})
165
165
  object = instance_variable_get("@#{object}")
166
- if object && object.respond_to?(:errors) && object.errors.respond_to?(:[]) && object.errors[field]
166
+ error = object.errors[field] rescue nil
167
+ if error
167
168
  options.reverse_merge!(:tag => :span, :class => :error)
168
169
  tag = options.delete(:tag)
169
170
  error = [options.delete(:prepend), Array(object.errors[field]).first, options.delete(:append)].compact.join(" ")
@@ -88,6 +88,32 @@ module Padrino
88
88
  end * "\n"
89
89
  end
90
90
 
91
+ ##
92
+ # Highlights one or more words everywhere in text by inserting it into a :highlighter string.
93
+ #
94
+ # The highlighter can be customized by passing :+highlighter+ as a single-quoted string
95
+ # with \1 where the phrase is to be inserted (defaults to ’<strong class="highlight">\1</strong>’)
96
+ #
97
+ # ==== Examples
98
+ #
99
+ # # => Lorem ipsum <strong class="highlight">dolor</strong> sit amet
100
+ # highlight('Lorem ipsum dolor sit amet', 'dolor')
101
+ #
102
+ # # => Lorem ipsum <span class="custom">dolor</span> sit amet
103
+ # highlight('Lorem ipsum dolor sit amet', 'dolor', :highlighter => '<span class="custom">\1</span>')
104
+ #
105
+ def highlight(text, words, *args)
106
+ options = args.extract_options!
107
+ options.reverse_merge!(:highlighter => '<strong class="highlight">\1</strong>')
108
+
109
+ if text.blank? || words.blank?
110
+ text
111
+ else
112
+ match = Array(words).map { |p| Regexp.escape(p) }.join('|')
113
+ text.gsub(/(#{match})(?!(?:[^<]*?)(?:["'])[^<>]*>)/i, options[:highlighter])
114
+ end
115
+ end
116
+
91
117
  ##
92
118
  # Reports the approximate distance in time between two Time or Date objects or integers as seconds.
93
119
  # Set <tt>include_seconds</tt> to true if you want more detailed approximations when distance < 1 min, 29 secs
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{padrino-helpers}
8
- s.version = "0.9.1"
8
+ s.version = "0.9.2"
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{2010-02-23}
12
+ s.date = %q{2010-03-01}
13
13
  s.description = %q{Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino}
14
14
  s.email = %q{padrinorb@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -76,7 +76,7 @@ Gem::Specification.new do |s|
76
76
  s.rdoc_options = ["--charset=UTF-8"]
77
77
  s.require_paths = ["lib"]
78
78
  s.rubyforge_project = %q{padrino-helpers}
79
- s.rubygems_version = %q{1.3.6}
79
+ s.rubygems_version = %q{1.3.5}
80
80
  s.summary = %q{Helpers for padrino}
81
81
 
82
82
  if s.respond_to? :specification_version then
@@ -84,14 +84,14 @@ Gem::Specification.new do |s|
84
84
  s.specification_version = 3
85
85
 
86
86
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
87
- s.add_runtime_dependency(%q<padrino-core>, ["= 0.9.1"])
87
+ s.add_runtime_dependency(%q<padrino-core>, ["= 0.9.2"])
88
88
  s.add_development_dependency(%q<haml>, [">= 2.2.1"])
89
89
  s.add_development_dependency(%q<shoulda>, [">= 2.10.3"])
90
90
  s.add_development_dependency(%q<mocha>, [">= 0.9.7"])
91
91
  s.add_development_dependency(%q<rack-test>, [">= 0.5.0"])
92
92
  s.add_development_dependency(%q<webrat>, [">= 0.5.1"])
93
93
  else
94
- s.add_dependency(%q<padrino-core>, ["= 0.9.1"])
94
+ s.add_dependency(%q<padrino-core>, ["= 0.9.2"])
95
95
  s.add_dependency(%q<haml>, [">= 2.2.1"])
96
96
  s.add_dependency(%q<shoulda>, [">= 2.10.3"])
97
97
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -99,7 +99,7 @@ Gem::Specification.new do |s|
99
99
  s.add_dependency(%q<webrat>, [">= 0.5.1"])
100
100
  end
101
101
  else
102
- s.add_dependency(%q<padrino-core>, ["= 0.9.1"])
102
+ s.add_dependency(%q<padrino-core>, ["= 0.9.2"])
103
103
  s.add_dependency(%q<haml>, [">= 2.2.1"])
104
104
  s.add_dependency(%q<shoulda>, [">= 2.10.3"])
105
105
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -61,6 +61,18 @@ class TestFormatHelpers < Test::Unit::TestCase
61
61
  end
62
62
  end
63
63
 
64
+ context 'for #highlight method' do
65
+ should 'highligth with defaults' do
66
+ actual_text = highlight('Lorem ipsum dolor sit amet', 'dolor')
67
+ assert_equal 'Lorem ipsum <strong class="highlight">dolor</strong> sit amet', actual_text
68
+ end
69
+
70
+ should 'highlight with highlighter' do
71
+ actual_text = highlight('Lorem ipsum dolor sit amet', 'dolor', :highlighter => '<span class="custom">\1</span>')
72
+ assert_equal 'Lorem ipsum <span class="custom">dolor</span> sit amet', actual_text
73
+ end
74
+ end
75
+
64
76
  context 'for #truncate method' do
65
77
  should "support default truncation" do
66
78
  actual_text = truncate("Once upon a time in a world far far away")
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-helpers
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 9
8
- - 1
9
- version: 0.9.1
4
+ version: 0.9.2
10
5
  platform: ruby
11
6
  authors:
12
7
  - Padrino Team
@@ -17,93 +12,69 @@ autorequire:
17
12
  bindir: bin
18
13
  cert_chain: []
19
14
 
20
- date: 2010-02-23 00:00:00 -08:00
15
+ date: 2010-03-01 00:00:00 +01:00
21
16
  default_executable:
22
17
  dependencies:
23
18
  - !ruby/object:Gem::Dependency
24
19
  name: padrino-core
25
- prerelease: false
26
- requirement: &id001 !ruby/object:Gem::Requirement
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
27
23
  requirements:
28
24
  - - "="
29
25
  - !ruby/object:Gem::Version
30
- segments:
31
- - 0
32
- - 9
33
- - 1
34
- version: 0.9.1
35
- type: :runtime
36
- version_requirements: *id001
26
+ version: 0.9.2
27
+ version:
37
28
  - !ruby/object:Gem::Dependency
38
29
  name: haml
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
30
+ type: :development
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
41
33
  requirements:
42
34
  - - ">="
43
35
  - !ruby/object:Gem::Version
44
- segments:
45
- - 2
46
- - 2
47
- - 1
48
36
  version: 2.2.1
49
- type: :development
50
- version_requirements: *id002
37
+ version:
51
38
  - !ruby/object:Gem::Dependency
52
39
  name: shoulda
53
- prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ type: :development
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
55
43
  requirements:
56
44
  - - ">="
57
45
  - !ruby/object:Gem::Version
58
- segments:
59
- - 2
60
- - 10
61
- - 3
62
46
  version: 2.10.3
63
- type: :development
64
- version_requirements: *id003
47
+ version:
65
48
  - !ruby/object:Gem::Dependency
66
49
  name: mocha
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ type: :development
51
+ version_requirement:
52
+ version_requirements: !ruby/object:Gem::Requirement
69
53
  requirements:
70
54
  - - ">="
71
55
  - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
- - 9
75
- - 7
76
56
  version: 0.9.7
77
- type: :development
78
- version_requirements: *id004
57
+ version:
79
58
  - !ruby/object:Gem::Dependency
80
59
  name: rack-test
81
- prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ type: :development
61
+ version_requirement:
62
+ version_requirements: !ruby/object:Gem::Requirement
83
63
  requirements:
84
64
  - - ">="
85
65
  - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
- - 5
89
- - 0
90
66
  version: 0.5.0
91
- type: :development
92
- version_requirements: *id005
67
+ version:
93
68
  - !ruby/object:Gem::Dependency
94
69
  name: webrat
95
- prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
70
+ type: :development
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
97
73
  requirements:
98
74
  - - ">="
99
75
  - !ruby/object:Gem::Version
100
- segments:
101
- - 0
102
- - 5
103
- - 1
104
76
  version: 0.5.1
105
- type: :development
106
- version_requirements: *id006
77
+ version:
107
78
  description: Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino
108
79
  email: padrinorb@gmail.com
109
80
  executables: []
@@ -181,20 +152,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
152
  requirements:
182
153
  - - ">="
183
154
  - !ruby/object:Gem::Version
184
- segments:
185
- - 0
186
155
  version: "0"
156
+ version:
187
157
  required_rubygems_version: !ruby/object:Gem::Requirement
188
158
  requirements:
189
159
  - - ">="
190
160
  - !ruby/object:Gem::Version
191
- segments:
192
- - 0
193
161
  version: "0"
162
+ version:
194
163
  requirements: []
195
164
 
196
165
  rubyforge_project: padrino-helpers
197
- rubygems_version: 1.3.6
166
+ rubygems_version: 1.3.5
198
167
  signing_key:
199
168
  specification_version: 3
200
169
  summary: Helpers for padrino