string_master 0.3.5 → 0.3.6

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/Gemfile CHANGED
@@ -5,6 +5,5 @@ gem "actionpack"
5
5
  group :development do
6
6
  gem "bundler"
7
7
  gem "jeweler"
8
- gem "rcov"
9
8
  gem "rspec"
10
9
  end
data/Gemfile.lock CHANGED
@@ -1,22 +1,21 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionpack (3.1.3)
5
- activemodel (= 3.1.3)
6
- activesupport (= 3.1.3)
4
+ actionpack (3.2.4)
5
+ activemodel (= 3.2.4)
6
+ activesupport (= 3.2.4)
7
7
  builder (~> 3.0.0)
8
8
  erubis (~> 2.7.0)
9
- i18n (~> 0.6)
10
- rack (~> 1.3.5)
11
- rack-cache (~> 1.1)
12
- rack-mount (~> 0.8.2)
9
+ journey (~> 1.0.1)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
13
12
  rack-test (~> 0.6.1)
14
- sprockets (~> 2.0.3)
15
- activemodel (3.1.3)
16
- activesupport (= 3.1.3)
13
+ sprockets (~> 2.1.3)
14
+ activemodel (3.2.4)
15
+ activesupport (= 3.2.4)
17
16
  builder (~> 3.0.0)
17
+ activesupport (3.2.4)
18
18
  i18n (~> 0.6)
19
- activesupport (3.1.3)
20
19
  multi_json (~> 1.0)
21
20
  builder (3.0.0)
22
21
  diff-lcs (1.1.3)
@@ -24,29 +23,31 @@ GEM
24
23
  git (1.2.5)
25
24
  hike (1.2.1)
26
25
  i18n (0.6.0)
27
- jeweler (1.6.4)
26
+ jeweler (1.8.3)
28
27
  bundler (~> 1.0)
29
28
  git (>= 1.2.5)
30
29
  rake
31
- multi_json (1.0.3)
32
- rack (1.3.5)
33
- rack-cache (1.1)
30
+ rdoc
31
+ journey (1.0.3)
32
+ json (1.7.3)
33
+ multi_json (1.3.6)
34
+ rack (1.4.1)
35
+ rack-cache (1.2)
34
36
  rack (>= 0.4)
35
- rack-mount (0.8.3)
36
- rack (>= 1.0.0)
37
37
  rack-test (0.6.1)
38
38
  rack (>= 1.0)
39
39
  rake (0.9.2.2)
40
- rcov (0.9.11)
41
- rspec (2.7.0)
42
- rspec-core (~> 2.7.0)
43
- rspec-expectations (~> 2.7.0)
44
- rspec-mocks (~> 2.7.0)
45
- rspec-core (2.7.1)
46
- rspec-expectations (2.7.0)
47
- diff-lcs (~> 1.1.2)
48
- rspec-mocks (2.7.0)
49
- sprockets (2.0.3)
40
+ rdoc (3.12)
41
+ json (~> 1.4)
42
+ rspec (2.10.0)
43
+ rspec-core (~> 2.10.0)
44
+ rspec-expectations (~> 2.10.0)
45
+ rspec-mocks (~> 2.10.0)
46
+ rspec-core (2.10.1)
47
+ rspec-expectations (2.10.0)
48
+ diff-lcs (~> 1.1.3)
49
+ rspec-mocks (2.10.1)
50
+ sprockets (2.1.3)
50
51
  hike (~> 1.2)
51
52
  rack (~> 1.0)
52
53
  tilt (~> 1.1, != 1.3.0)
@@ -59,5 +60,4 @@ DEPENDENCIES
59
60
  actionpack
60
61
  bundler
61
62
  jeweler
62
- rcov
63
63
  rspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -101,19 +101,30 @@ class StringMaster
101
101
 
102
102
  # Finds lines of text that satisfy a 'regexp' and wraps them into an
103
103
  # opening and closing 'tag'. Best example of usage is #wrap_code.
104
- def wrap_lines(tag, regexp)
105
- code_open = false; result = ""
104
+ #
105
+ # Also receives an option :remove_newlines (default is false)
106
+ # which removes \n around the tag that wraps the lines of text. Useful if
107
+ # you're using this method with #newlines_to_br to avoid extra space that may or
108
+ # may not be in the user's input.
109
+ def wrap_lines(tag, regexp, options={remove_newlines: false})
110
+ code_tag = nil; result = ""
106
111
  @modified_string.each_line do |line|
107
112
  if line =~ regexp
108
- result += "<#{tag}>" unless code_open
109
- code_open = true
113
+ unless code_tag == :opened
114
+ result.chomp! if options[:remove_newlines]
115
+ result += "<#{tag}>"
116
+ code_tag = :opened
117
+ end
110
118
  result += line.sub(regexp, '')
111
119
  else
112
- if code_open
120
+ if code_tag == :opened
121
+ code_tag = :closed
113
122
  result.chomp!
114
- result += "</#{tag}>\n"
123
+ result += "</#{tag}>"
124
+ elsif code_tag == :closed
125
+ code_tag = nil
126
+ result.chomp! if options[:remove_newlines]
115
127
  end
116
- code_open = false
117
128
  result += line
118
129
  end
119
130
  end
@@ -125,7 +136,7 @@ class StringMaster
125
136
  # It also transforms each occurence of 2 or more spaces into an &nbsp; entity,
126
137
  # which is available as a standalone method #preserve_whitespace
127
138
  def wrap_code
128
- wrap_lines("code", /\A\s{4}/)
139
+ wrap_lines("code", /\A\s{4}/, remove_newlines: true)
129
140
  preserve_whitespace_within("code") # already returns `self`
130
141
  end
131
142
 
@@ -44,12 +44,10 @@ I have a piece of code
44
44
  and here's what my code looks like.
45
45
  CODE
46
46
  StringMaster.new(code).wrap_code.to_s.should == <<WRAPPED_CODE
47
- I have a piece of code
48
- <code>def say_hello
47
+ I have a piece of code<code>def say_hello
49
48
  &nbsp;&nbsp;puts "hello world"
50
49
  &nbsp;&nbsp;return true
51
- end</code>
52
- and here's what my code looks like.
50
+ end</code>and here's what my code looks like.
53
51
  WRAPPED_CODE
54
52
  end
55
53
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "string_master"
8
- s.version = "0.3.5"
8
+ s.version = "0.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roman Snitko"]
@@ -47,20 +47,17 @@ Gem::Specification.new do |s|
47
47
  s.add_runtime_dependency(%q<actionpack>, [">= 0"])
48
48
  s.add_development_dependency(%q<bundler>, [">= 0"])
49
49
  s.add_development_dependency(%q<jeweler>, [">= 0"])
50
- s.add_development_dependency(%q<rcov>, [">= 0"])
51
50
  s.add_development_dependency(%q<rspec>, [">= 0"])
52
51
  else
53
52
  s.add_dependency(%q<actionpack>, [">= 0"])
54
53
  s.add_dependency(%q<bundler>, [">= 0"])
55
54
  s.add_dependency(%q<jeweler>, [">= 0"])
56
- s.add_dependency(%q<rcov>, [">= 0"])
57
55
  s.add_dependency(%q<rspec>, [">= 0"])
58
56
  end
59
57
  else
60
58
  s.add_dependency(%q<actionpack>, [">= 0"])
61
59
  s.add_dependency(%q<bundler>, [">= 0"])
62
60
  s.add_dependency(%q<jeweler>, [">= 0"])
63
- s.add_dependency(%q<rcov>, [">= 0"])
64
61
  s.add_dependency(%q<rspec>, [">= 0"])
65
62
  end
66
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string_master
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -59,22 +59,6 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: rcov
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
62
  - !ruby/object:Gem::Dependency
79
63
  name: rspec
80
64
  requirement: !ruby/object:Gem::Requirement
@@ -133,7 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
117
  version: '0'
134
118
  segments:
135
119
  - 0
136
- hash: -380418558032014970
120
+ hash: -1937837215791656684
137
121
  required_rubygems_version: !ruby/object:Gem::Requirement
138
122
  none: false
139
123
  requirements: