recursive_replace 0.1.1 → 0.1.2
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/VERSION +1 -1
- data/lib/recursive_replace.rb +8 -2
- data/recursive_replace.gemspec +4 -2
- data/spec/fixtures/test/back_slash +1 -0
- data/spec/fixtures/test/forward_slash +1 -0
- data/spec/lib/recursive_replace_spec.rb +29 -11
- metadata +15 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/recursive_replace.rb
CHANGED
@@ -25,8 +25,8 @@ class RecursiveReplace
|
|
25
25
|
# Set Defaults
|
26
26
|
options[:verbose] = false if options[:verbose].nil?
|
27
27
|
|
28
|
-
original =
|
29
|
-
replacement =
|
28
|
+
original = prepare(original) # escape any special characters
|
29
|
+
replacement = prepare(replacement)
|
30
30
|
|
31
31
|
results = system("sed -i 's/#{original}/#{replacement}/g' #{options[:path]}")
|
32
32
|
puts "success".green + "\t" + INDENTATION + print_path(options[:path]) if !File.directory?(options[:path]) && options[:verbose]
|
@@ -49,4 +49,10 @@ class RecursiveReplace
|
|
49
49
|
path.nil? ? Dir.glob(File.join("**", "*")) : Dir.glob(File.join(path, "**", "*"))
|
50
50
|
end
|
51
51
|
|
52
|
+
def self.prepare(string) # prepare string for use in replacement: escape, etc.
|
53
|
+
prepared = Regexp.escape(string)
|
54
|
+
prepared = prepared.sub("/", "\\/") # prepend escape characted forward slash with since it will be be used with sed in shell
|
55
|
+
#print "Postprepare #{string} => #{prepared}"
|
56
|
+
return prepared
|
57
|
+
end
|
52
58
|
end
|
data/recursive_replace.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{recursive_replace}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dave Hulihan", "Hulihan Applications"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-09-09}
|
13
13
|
s.description = %q{recursive_replace is a ruby gem for recursively replacing text in multiple files and directories. It also escapes special characters, so you can replace code syntax and special characters easily.}
|
14
14
|
s.email = %q{dave@hulihanapplications.com}
|
15
15
|
s.executables = ["recursive_replace"]
|
@@ -27,8 +27,10 @@ Gem::Specification.new do |s|
|
|
27
27
|
"bin/recursive_replace",
|
28
28
|
"lib/recursive_replace.rb",
|
29
29
|
"recursive_replace.gemspec",
|
30
|
+
"spec/fixtures/test/back_slash",
|
30
31
|
"spec/fixtures/test/bad",
|
31
32
|
"spec/fixtures/test/file",
|
33
|
+
"spec/fixtures/test/forward_slash",
|
32
34
|
"spec/fixtures/test/good",
|
33
35
|
"spec/fixtures/test/subdirectory/file",
|
34
36
|
"spec/fixtures/test/syntax/file.erb",
|
@@ -0,0 +1 @@
|
|
1
|
+
string\with\backslashes
|
@@ -0,0 +1 @@
|
|
1
|
+
string/with/forwardslashes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe RecursiveReplace do
|
4
|
-
describe "
|
4
|
+
describe "replace" do
|
5
5
|
before(:each) do
|
6
6
|
# create test dir
|
7
7
|
@test_dir_fixture = File.expand_path("../../fixtures/test", __FILE__)
|
@@ -28,19 +28,37 @@ describe RecursiveReplace do
|
|
28
28
|
File.read(path).should == "bad"
|
29
29
|
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
31
|
+
it "should replace forward slashes" do
|
32
|
+
path = File.join(@test_dir, "forward_slash")
|
33
|
+
original = "string/with/forwardslashes"
|
34
|
+
File.read(path).should == original
|
35
|
+
described_class.replace("/", "_", :path => path)
|
36
|
+
File.read(path).should == "string_with_forwardslashes"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should replace backslashes" do
|
40
|
+
path = File.join(@test_dir, "back_slash")
|
41
|
+
original = "string\\with\\backslashes"
|
42
|
+
File.read(path).should == original
|
43
|
+
described_class.replace("\\", "_", :path => path)
|
44
|
+
File.read(path).should == "string_with_backslashes"
|
45
|
+
end
|
46
|
+
|
47
|
+
context "syntax" do
|
48
|
+
describe "erb" do
|
49
|
+
it "should replace erb code fine" do
|
50
|
+
original = "<%= print @object[:symbol] %>"
|
51
|
+
replacement = "<%= puts @new_object[:new_symbol] %>"
|
52
|
+
path = File.join(@test_dir, "syntax", "file.erb")
|
53
|
+
File.read(path).should == original
|
54
|
+
described_class.replace(original, replacement, :path => path)
|
55
|
+
File.read(path).should == replacement
|
56
|
+
end
|
57
|
+
end
|
40
58
|
end
|
59
|
+
|
41
60
|
|
42
61
|
context "console" do
|
43
|
-
|
44
62
|
end
|
45
63
|
end
|
46
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recursive_replace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-09-09 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: colored
|
17
|
-
requirement: &
|
17
|
+
requirement: &87032140 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *87032140
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: shoulda
|
28
|
-
requirement: &
|
28
|
+
requirement: &87031870 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *87031870
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bundler
|
39
|
-
requirement: &
|
39
|
+
requirement: &87031620 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.0.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *87031620
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: jeweler
|
50
|
-
requirement: &
|
50
|
+
requirement: &87031370 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.6.3
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *87031370
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: rcov
|
61
|
-
requirement: &
|
61
|
+
requirement: &87031090 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *87031090
|
70
70
|
description: recursive_replace is a ruby gem for recursively replacing text in multiple
|
71
71
|
files and directories. It also escapes special characters, so you can replace code
|
72
72
|
syntax and special characters easily.
|
@@ -87,8 +87,10 @@ files:
|
|
87
87
|
- bin/recursive_replace
|
88
88
|
- lib/recursive_replace.rb
|
89
89
|
- recursive_replace.gemspec
|
90
|
+
- spec/fixtures/test/back_slash
|
90
91
|
- spec/fixtures/test/bad
|
91
92
|
- spec/fixtures/test/file
|
93
|
+
- spec/fixtures/test/forward_slash
|
92
94
|
- spec/fixtures/test/good
|
93
95
|
- spec/fixtures/test/subdirectory/file
|
94
96
|
- spec/fixtures/test/syntax/file.erb
|
@@ -112,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
114
|
version: '0'
|
113
115
|
segments:
|
114
116
|
- 0
|
115
|
-
hash:
|
117
|
+
hash: 789706593
|
116
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
119
|
none: false
|
118
120
|
requirements:
|