bbcodeizer 0.1.2 → 0.1.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.
@@ -1,3 +1,3 @@
1
1
  module Bbcodeizer
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/bbcodeizer.rb CHANGED
@@ -68,10 +68,14 @@ module BBCodeizer
68
68
  :image => [ :image, :flickr ] }
69
69
 
70
70
  # Parses all bbcode in +text+ and returns a new HTML-formatted string.
71
- def bbcodeize(text)
71
+ def bbcodeize(text, options = Hash.new)
72
72
  text = text.dup
73
- @deactivated ||= Array.new
74
- (TagList - @deactivated).each do |tag|
73
+
74
+ disabled = Array.new
75
+ disabled += @deactivated if @deactivated
76
+ disabled += decode_tags(options[:disabled]) if options[:disabled]
77
+
78
+ (TagList - disabled).each do |tag|
75
79
  if Tags.has_key?(tag)
76
80
  apply_tag(text, tag)
77
81
  else
@@ -87,19 +91,13 @@ module BBCodeizer
87
91
  # Configuration option to deactivate particular +tags+.
88
92
  def deactivate(*tags)
89
93
  @deactivated ||= Array.new
90
- @deactivated = tags.inject(@deactivated) do |deactivated, tag|
91
- tag = TagGroups[tag] if TagGroups.key?(tag)
92
- deactivated + Array(tag)
93
- end
94
+ @deactivated += decode_tags(*tags)
94
95
  end
95
96
 
96
97
  # Configuration option to reactivate particular +tags+.
97
98
  def activate(*tags)
98
99
  @deactivated ||= Array.new
99
- @deactivated = tags.inject(@deactivated) do |deactivated, tag|
100
- tag = TagGroups[tag] if TagGroups.key?(tag)
101
- deactivated - Array(tag)
102
- end
100
+ @deactivated -= decode_tags(*tags)
103
101
  end
104
102
 
105
103
  # Configuration option to change the replacement string used for a particular +tag+. The source
@@ -157,6 +155,13 @@ module BBCodeizer
157
155
  end
158
156
  alias_method :apply_tag, :apply_tags
159
157
 
158
+ def decode_tags(*tags)
159
+ tags.inject(Array.new) do |decoded_tags, tag|
160
+ decoded_tag = TagGroups.key?(tag) ? TagGroups[tag] : tag
161
+ decoded_tags + Array(decoded_tag)
162
+ end
163
+ end
164
+
160
165
  # http://stackoverflow.com/questions/88311/how-best-to-generate-a-random-string-in-ruby
161
166
  def random_string
162
167
  (0...16).map{ ('a'..'z').to_a[rand(26)] }.join
@@ -2,7 +2,7 @@ require 'bbcodeizer'
2
2
 
3
3
  module BBCodeizeHelper
4
4
  # Parses all bbcode in +text+ and returns a new HTML-formatted string.
5
- def bbcodeize(text)
6
- BBCodeizer.bbcodeize(text)
5
+ def bbcodeize(text, options = Hash.new)
6
+ BBCodeizer.bbcodeize(text, options)
7
7
  end
8
8
  end
@@ -137,7 +137,7 @@
137
137
 
138
138
  <div class="method-heading">
139
139
  <span class="method-name">bbcodeize</span><span
140
- class="method-args">(text)</span>
140
+ class="method-args">(text, options = Hash.new)</span>
141
141
  <span class="method-click-advice">click to toggle source</span>
142
142
  </div>
143
143
 
@@ -151,8 +151,8 @@
151
151
  <div class="method-source-code" id="bbcodeize-source">
152
152
  <pre>
153
153
  <span class="ruby-comment"># File lib/bbcodeizer_helper.rb, line 5</span>
154
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">bbcodeize</span>(<span class="ruby-identifier">text</span>)
155
- <span class="ruby-constant">BBCodeizer</span>.<span class="ruby-identifier">bbcodeize</span>(<span class="ruby-identifier">text</span>)
154
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">bbcodeize</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">options</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>)
155
+ <span class="ruby-constant">BBCodeizer</span>.<span class="ruby-identifier">bbcodeize</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">options</span>)
156
156
  <span class="ruby-keyword">end</span></pre>
157
157
  </div><!-- bbcodeize-source -->
158
158
 
data/rdoc/created.rid CHANGED
@@ -1,5 +1,5 @@
1
- Sun, 11 Sep 2011 16:44:25 -0700
1
+ Sun, 11 Sep 2011 17:03:49 -0700
2
2
  README Sun, 11 Sep 2011 15:37:41 -0700
3
- lib/bbcodeizer/version.rb Sun, 11 Sep 2011 16:43:57 -0700
4
- lib/bbcodeizer.rb Sun, 11 Sep 2011 16:43:01 -0700
5
- lib/bbcodeizer_helper.rb Sun, 11 Sep 2011 16:31:58 -0700
3
+ lib/bbcodeizer/version.rb Sun, 11 Sep 2011 17:03:43 -0700
4
+ lib/bbcodeizer.rb Sun, 11 Sep 2011 17:02:51 -0700
5
+ lib/bbcodeizer_helper.rb Sun, 11 Sep 2011 17:00:47 -0700
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2011-09-11 16:43:57 -0700</dd>
27
+ <dd class="modified-date">2011-09-11 17:03:43 -0700</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2011-09-11 16:31:58 -0700</dd>
27
+ <dd class="modified-date">2011-09-11 17:00:47 -0700</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2011-09-11 16:43:01 -0700</dd>
27
+ <dd class="modified-date">2011-09-11 17:02:51 -0700</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -106,6 +106,15 @@ class BbcodeizerTest < Test::Unit::TestCase
106
106
  bbcodeize("[color=red]Red Text[/color]"))
107
107
  end
108
108
 
109
+ def test_disable
110
+ assert_equal(
111
+ "I am [b]really[/b] happy!",
112
+ bbcodeize("I am [b]really[/b] happy!", :disabled => [ :bold ]))
113
+ assert_equal(
114
+ "I am <strong>really</strong> happy!",
115
+ bbcodeize("I am [b]really[/b] happy!", :disabled => [ :video ]))
116
+ end
117
+
109
118
  def test_deactivation
110
119
  BBCodeizer.deactivate(:bold)
111
120
  assert_equal(
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: bbcodeizer
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.2
5
+ version: 0.1.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jonathan Dance