bb-ruby 0.8.2 → 0.8.3

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.
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