rbsed 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,13 +1,16 @@
1
1
  ## simple text formatting
2
2
 
3
- Usage:
3
+ Usage (from `tests/rbsed_test.rb`):
4
4
 
5
5
  ```ruby
6
- "Foobar".sed('s/o/p/') # => Fpobar
7
- "Foobar".sed('s/O/p') # => Foobar
8
- "Foobar".sed('s/O/p/i') # => Fpobar
9
- "Foobar".sed('s/o/p/g') # => Fppbar
10
- "Foobar".sed('s/O/p/ig') # => Fppbar
6
+ "Foobar".sed('s/o/p') # => "Fpobar"
7
+ "Foobar".sed('s/O/p') # => "Foobar"
8
+ "Foobar".sed('s/o/p/') # => "Fpobar"
9
+ "Foobar".sed('s/O/p/') # => "Foobar"
10
+ "Foobar".sed('s/O/p/i') # => "Fpobar"
11
+ "Foobar".sed('s/o/p/g') # => "Fppbar"
12
+ "Foobar".sed('s/O/p/ig') # => "Fppbar"
13
+ "Foobar".sed('s/O/p/g') # => "Foobar"
11
14
  ```
12
15
 
13
16
  ## License
@@ -1,12 +1,12 @@
1
1
  $: << File.dirname(__FILE__) unless $:.include?(File.dirname(__FILE__))
2
2
 
3
3
  class String
4
-
5
- def sed(str)
4
+ def sed!(str)
6
5
  match = nil
7
6
  flags = []
8
7
  options = 0
9
8
  parts = str.split('/')
9
+ result = ''
10
10
 
11
11
  raise "Invalid sed command" if parts.length < 3
12
12
 
@@ -35,4 +35,8 @@ class String
35
35
 
36
36
  self
37
37
  end
38
+
39
+ def sed(str)
40
+ self.clone.sed!(str)
41
+ end
38
42
  end
@@ -1,3 +1,3 @@
1
1
  module RBSed
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -13,4 +13,27 @@ context 'RBSed - ' do
13
13
  asserts("Foobar".sed('s/O/p/ig')) { "Fppbar" }
14
14
  asserts("Foobar".sed('s/O/p/g' )) { "Foobar" }
15
15
  end
16
+
17
+ context 'newlines' do
18
+ asserts("Foobar\nFoobar".sed('s/o/p' )) { "Fpobar\nFpobar" }
19
+ asserts("Foobar\nFoobar".sed('s/O/p' )) { "Foobar\nFoobar" }
20
+ asserts("Foobar\nFoobar".sed('s/o/p/' )) { "Fpobar\nFpobar" }
21
+ asserts("Foobar\nFoobar".sed('s/O/p/' )) { "Foobar\nFoobar" }
22
+ asserts("Foobar\nFoobar".sed('s/O/p/i' )) { "Fpobar\nFpobar" }
23
+ asserts("Foobar\nFoobar".sed('s/o/p/g' )) { "Fppbar\nFppbar" }
24
+ asserts("Foobar\nFoobar".sed('s/O/p/ig')) { "Fppbar\nFppbar" }
25
+ asserts("Foobar\nFoobar".sed('s/O/p/g' )) { "Foobar\nFoobar" }
26
+ end
27
+
28
+ context 'nondestructive' do
29
+ x = "Foobar"
30
+ x.sed('s/o/p')
31
+ asserts(x) { "Foobar" }
32
+ end
33
+
34
+ context 'destructive' do
35
+ x = "Foobar"
36
+ x.sed!('s/o/p')
37
+ asserts(x) { "Fpobar" }
38
+ end
16
39
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rbsed
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nick Markwell