bb-ruby 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/History.txt +4 -0
  2. data/lib/bb-ruby.rb +117 -36
  3. metadata +2 -2
@@ -1,3 +1,7 @@
1
+ == 0.8.3 2008-12-16
2
+
3
+ * RDoc documentation updates
4
+
1
5
  == 0.8.2 2008-12-16
2
6
 
3
7
  * No major enhancements:
@@ -2,9 +2,12 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module BBRuby
5
- VERSION = '0.8.2'
5
+ VERSION = '0.8.3'
6
6
 
7
+ # allowable image formats
7
8
  @@imageformats = 'png|bmp|jpg|gif|jpeg'
9
+
10
+ # built-in BBCode tabs that will be processed
8
11
  @@tags = {
9
12
  # tag name => [regex, replace, description, example, enable/disable symbol]
10
13
  'Bold' => [
@@ -198,50 +201,128 @@ module BBRuby
198
201
  :email]
199
202
  }
200
203
 
201
- def self.to_html(text, tags_alternative_definition = {}, escape_html=true, method=:disable, *tags)
202
- text = text.clone
203
- # escape < and > to remove any html
204
- if escape_html
205
- text.gsub!( '<', '&lt;' )
206
- text.gsub!( '>', '&gt;' )
207
- end
208
-
209
- tags_definition = @@tags.merge(tags_alternative_definition)
204
+ class << self
205
+ # Convert a string with BBCode markup into its corresponding HTML markup
206
+ #
207
+ # === Basic Usage
208
+ #
209
+ # The first parameter is the string off BBCode markup to be processed
210
+ #
211
+ # text = "[b]some bold text to markup[/b]"
212
+ # output = BBRuby.to_html(text)
213
+ # # output => "<strong>some bold text to markup</strong>"
214
+ #
215
+ # === Custom BBCode translations
216
+ #
217
+ # You can supply your own BBCode markup translations to create your own custom markup
218
+ # or override the default BBRuby translations (parameter is a hash of custom translations).
219
+ #
220
+ # The hash takes the following format: "name" => [regexp, replacement, description, example, enable_symbol]
221
+ #
222
+ # custom_blockquote = {
223
+ # 'Quote' => [
224
+ # /\[quote(:.*)?=(.*?)\](.*?)\[\/quote\1?\]/mi,
225
+ # '<div class="quote"><p><cite>\2</cite></p><blockquote>\3</blockquote></div>',
226
+ # 'Quote with citation',
227
+ # '[quote=mike]please quote me[/quote]',
228
+ # :quote
229
+ # ]
230
+ # }
231
+ #
232
+ # === Enable and Disable specific tags
233
+ #
234
+ # BBRuby will allow you to only enable certain BBCode tags, or to explicitly disable certain tags.
235
+ # Pass in either :disable or :enable to set your method, followed by the comma-separated list of tags
236
+ # you wish to disable or enable
237
+ #
238
+ # BBRuby.to_html(text, {}, true, :enable, :image, :bold, :quote)
239
+ # BBRuby.to_html(text, {}, true, :disable, :image, :video, :color)
240
+ #
241
+ def to_html(text, tags_alternative_definition = {}, escape_html=true, method=:disable, *tags)
242
+ text = text.clone
243
+ # escape < and > to remove any html
244
+ if escape_html
245
+ text.gsub!( '<', '&lt;' )
246
+ text.gsub!( '>', '&gt;' )
247
+ end
248
+
249
+ tags_definition = @@tags.merge(tags_alternative_definition)
210
250
 
211
- # parse bbcode tags
212
- case method
213
- when :enable
214
- tags_definition.each_value { |t| text.gsub!(t[0], t[1]) if tags[0].include?(t[4]) }
215
- when :disable
216
- # this works nicely because the default is disable and the default set of tags is [] (so none disabled) :)
217
- tags_definition.each_value { |t| text.gsub!(t[0], t[1]) unless tags[0].include?(t[4]) }
218
- end
251
+ # parse bbcode tags
252
+ case method
253
+ when :enable
254
+ tags_definition.each_value { |t| text.gsub!(t[0], t[1]) if tags[0].include?(t[4]) }
255
+ when :disable
256
+ # this works nicely because the default is disable and the default set of tags is [] (so none disabled) :)
257
+ tags_definition.each_value { |t| text.gsub!(t[0], t[1]) unless tags[0].include?(t[4]) }
258
+ end
219
259
 
220
- # parse spacing
221
- text.gsub!( /\r\n?/, "\n" )
222
- text.gsub!( /\n/, "<br />" )
260
+ # parse spacing
261
+ text.gsub!( /\r\n?/, "\n" )
262
+ text.gsub!( /\n/, "<br />" )
223
263
 
224
- # return markup
225
- text
226
- end
264
+ # return markup
265
+ text
266
+ end
227
267
 
228
- def self.tags
229
- @@tags.each { |tn, ti|
230
- # yields the tag name, a description of it and example
231
- yield tn, ti[2], ti[3] if ti[2]
232
- }
233
- end
234
-
235
- def self.tag_list
236
- @@tags
237
- end
238
- end
268
+ # Returns the list of tags processed by BBRuby in a Hash object
269
+ def tag_list
270
+ @@tags
271
+ end
272
+ end # class << self
273
+
274
+ end # class BBRuby
239
275
 
240
276
  class String
277
+ # Convert a string with BBCode markup into its corresponding HTML markup
278
+ #
279
+ # === Basic Usage
280
+ #
281
+ # text = "[b]some bold text to markup[/b]"
282
+ # output = text.bbcode_to_html
283
+ # # output => "<strong>some bold text to markup</strong>"
284
+ #
285
+ # === Custom BBCode translations
286
+ #
287
+ # You can supply your own BBCode markup translations to create your own custom markup
288
+ # or override the default BBRuby translations (parameter is a hash of custom translations).
289
+ #
290
+ # The hash takes the following format: "name" => [regexp, replacement, description, example, enable_symbol]
291
+ #
292
+ # custom_blockquote = {
293
+ # 'Quote' => [
294
+ # /\[quote(:.*)?=(.*?)\](.*?)\[\/quote\1?\]/mi,
295
+ # '<div class="quote"><p><cite>\2</cite></p><blockquote>\3</blockquote></div>',
296
+ # 'Quote with citation',
297
+ # '[quote=mike]please quote me[/quote]',
298
+ # :quote
299
+ # ]
300
+ # }
301
+ #
302
+ # output = text.bbcode_to_html(custom_blockquote)
303
+ #
304
+ # === Enable and Disable specific tags
305
+ #
306
+ # BBRuby will allow you to only enable certain BBCode tags, or to explicitly disable certain tags.
307
+ # Pass in either :disable or :enable to set your method, followed by the comma-separated list of tags
308
+ # you wish to disable or enable
309
+ #
310
+ # output = text.bbcode_to_html({}, true, :enable, :image, :bold, :quote)
311
+ # output = text.bbcode_to_html({}, true, :disable, :image, :video, :color)
312
+ #
313
+ # === HTML auto-escaping
314
+ #
315
+ # By default, BBRuby will auto-escape HTML. You can prevent this by passing in false as the second
316
+ # parameter
317
+ #
318
+ # output = text.bbcode_to_html({}, false)
319
+ #
241
320
  def bbcode_to_html(tags_alternative_definition = {}, escape_html=true, method=:disable, *tags)
242
321
  BBRuby.to_html(self, tags_alternative_definition, escape_html, method, tags)
243
322
  end
323
+
324
+ # Replace the string contents with the HTML-converted markup
244
325
  def bbcode_to_html!(tags_alternative_definition = {}, escape_html=true, method=:disable, *tags)
245
326
  self.replace(BBRuby.to_html(self, tags_alternative_definition, escape_html, method, tags))
246
327
  end
247
- end
328
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bb-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig P Jolicoeur
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.1.0
23
+ version: 1.2.1
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hoe