recursive_replace 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -25,8 +25,8 @@ class RecursiveReplace
25
25
  # Set Defaults
26
26
  options[:verbose] = false if options[:verbose].nil?
27
27
 
28
- original = Regexp.escape(original) # escape any special characters
29
- replacement = Regexp.escape(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
@@ -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.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-08-30}
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 "go" do
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
- describe "erb" do
32
- it "should replace erb code fine" do
33
- original = "<%= print @object[:symbol] %>"
34
- replacement = "<%= puts @new_object[:new_symbol] %>"
35
- path = File.join(@test_dir, "syntax", "file.erb")
36
- File.read(path).should == original
37
- described_class.replace(original, replacement, :path => path)
38
- File.read(path).should == replacement
39
- end
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.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-08-30 00:00:00.000000000Z
13
+ date: 2011-09-09 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: colored
17
- requirement: &84378770 !ruby/object:Gem::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: *84378770
25
+ version_requirements: *87032140
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: shoulda
28
- requirement: &84378400 !ruby/object:Gem::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: *84378400
36
+ version_requirements: *87031870
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &84378040 !ruby/object:Gem::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: *84378040
47
+ version_requirements: *87031620
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: jeweler
50
- requirement: &84377410 !ruby/object:Gem::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: *84377410
58
+ version_requirements: *87031370
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rcov
61
- requirement: &84376740 !ruby/object:Gem::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: *84376740
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: 989666097
117
+ hash: 789706593
116
118
  required_rubygems_version: !ruby/object:Gem::Requirement
117
119
  none: false
118
120
  requirements: