bbcodeizer 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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