heredoc_unindent 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.rdoc +9 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/Wishlist.rdoc +11 -8
- data/lib/heredoc_unindent.rb +2 -2
- data/test/test_heredoc_unindent.rb +21 -4
- metadata +5 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
=== 1.1.1 / 2011-01-29
|
2
|
+
|
3
|
+
* 1 bugfix
|
4
|
+
|
5
|
+
* Replaced <tt>\s</tt>, which is equivalent to <tt>[ \t\r\n\f]</tt>,
|
6
|
+
by <tt>[ \t]</tt> in regular expression
|
7
|
+
* empty lines could lead to wrong behaviour
|
8
|
+
* Added tests to prevent the just-fixed bug to ever come back
|
9
|
+
|
1
10
|
=== 1.1.0 / 2011-01-29
|
2
11
|
|
3
12
|
* 3 minor enhancements
|
data/README.rdoc
CHANGED
@@ -75,7 +75,7 @@ implement equivalent unindenting functionality:
|
|
75
75
|
|
76
76
|
1. {outdent}[http://rubygems.org/gems/outdent] (formerly {unindentable}[http://rubygems.org/gems/unindentable])
|
77
77
|
2. {unindent}[http://rubygems.org/gems/unindent]
|
78
|
-
3. {indentation}[http://rubygems.org/gems/indentation] -- this gem has a broader scope,
|
78
|
+
3. {indentation}[http://rubygems.org/gems/indentation] -- this gem has a broader scope, in addition to String#reset_indentation
|
79
79
|
|
80
80
|
=== So why another one?
|
81
81
|
|
data/Rakefile
CHANGED
data/Wishlist.rdoc
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
== SUGGESTIONS
|
2
2
|
|
3
|
-
*
|
4
|
-
*
|
5
|
-
*
|
6
|
-
*
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
* added a mechanism for "ignoring" blank lines, i.e.,
|
4
|
+
* not include the margin of blank lines in the minimum calculation
|
5
|
+
* let them untouched (i.e., unprocessed)
|
6
|
+
* possible implementation:
|
7
|
+
re = Regexp.new '^\s{' + n.to_s + '}(\S+)$'
|
8
|
+
s.gsub(re,'\1')
|
9
|
+
instead of
|
10
|
+
re = Regexp.new '^\s{' + n.to_s + '}'
|
11
|
+
s.gsub(re, '')
|
12
|
+
* re-benchmark to make sure it does not hurt performance and performance
|
13
|
+
figures in README are still valid
|
data/lib/heredoc_unindent.rb
CHANGED
@@ -26,7 +26,7 @@ module CoreExt
|
|
26
26
|
def unindent_base_new(in_place, warn_first_not_min)
|
27
27
|
m_first = nil
|
28
28
|
m_min = nil
|
29
|
-
self.scan(
|
29
|
+
self.scan(/^[ \t]*/) do |m|
|
30
30
|
ms = m.size
|
31
31
|
m_first ||= ms
|
32
32
|
m_min = ms if !m_min || ms < m_min
|
@@ -43,7 +43,7 @@ module CoreExt
|
|
43
43
|
# about 10% faster in ree, 20% in ruby-1.8.7 (old vs new)
|
44
44
|
#
|
45
45
|
def unindent_base_old(in_place, warn_first_not_min)
|
46
|
-
margins = self.scan(
|
46
|
+
margins = self.scan(/^[ \t]*/).map(&:size)
|
47
47
|
margins_min = margins.min
|
48
48
|
if margins.first != margins_min && warn_first_not_min
|
49
49
|
puts "warning: margin of the first line differs from minimum margin"
|
@@ -41,6 +41,21 @@ EOS
|
|
41
41
|
The third line
|
42
42
|
EOS
|
43
43
|
|
44
|
+
pretty = <<EOS
|
45
|
+
The first line
|
46
|
+
|
47
|
+
The third line
|
48
|
+
EOS
|
49
|
+
return ugly, pretty
|
50
|
+
end
|
51
|
+
|
52
|
+
def prep_sing4
|
53
|
+
ugly = <<-EOS
|
54
|
+
The first line
|
55
|
+
|
56
|
+
The third line
|
57
|
+
EOS
|
58
|
+
|
44
59
|
pretty = <<EOS
|
45
60
|
The first line
|
46
61
|
|
@@ -64,8 +79,10 @@ EOS
|
|
64
79
|
end
|
65
80
|
|
66
81
|
def test_unindent
|
67
|
-
|
68
|
-
|
82
|
+
1.upto(4) do |n|
|
83
|
+
m = method "prep_sing#{n}"
|
84
|
+
perform_tests(*m.call)
|
85
|
+
end
|
69
86
|
perform_tests(*prep_mult)
|
70
87
|
end
|
71
88
|
|
@@ -74,11 +91,11 @@ EOS
|
|
74
91
|
assert_equal pretty, ugly.unindent(false)
|
75
92
|
assert_equal pretty, ugly.heredoc_unindent(false)
|
76
93
|
assert_equal ugly_bak, ugly, '#unindent should have no side-effects'
|
77
|
-
assert_equal pretty, ugly.heredoc_unindent!(false)
|
94
|
+
assert_equal pretty, ugly.heredoc_unindent!(false) unless pretty == ugly
|
78
95
|
assert_equal pretty, ugly
|
79
96
|
assert_equal nil, ugly.heredoc_unindent!(false)
|
80
97
|
ugly = ugly_bak.dup
|
81
|
-
assert_equal pretty, ugly.unindent!(false)
|
98
|
+
assert_equal pretty, ugly.unindent!(false) unless pretty == ugly
|
82
99
|
assert_equal pretty, ugly
|
83
100
|
assert_equal nil, ugly.unindent!(false)
|
84
101
|
aux = pretty.unindent(false)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heredoc_unindent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 17
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Adriano Mitre
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements: []
|
116
116
|
|
117
117
|
rubyforge_project: heredoc_unindent
|
118
|
-
rubygems_version: 1.
|
118
|
+
rubygems_version: 1.3.7
|
119
119
|
signing_key:
|
120
120
|
specification_version: 3
|
121
121
|
summary: This gem removes common margin from indented strings, such as the ones produced by indented heredocs
|
metadata.gz.sig
CHANGED
Binary file
|