sugar-high 0.3.2 → 0.3.3
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/sugar-high/file.rb +15 -4
- data/spec/fixtures/class_file.rb +6 -0
- data/spec/sugar-high/file/file_mutate_spec.rb +8 -0
- data/sugar-high.gemspec +3 -1
- metadata +4 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.3
|
data/lib/sugar-high/file.rb
CHANGED
@@ -2,6 +2,7 @@ require 'sugar-high/blank'
|
|
2
2
|
require 'sugar-high/arguments'
|
3
3
|
require 'sugar-high/path'
|
4
4
|
require 'sugar-high/regexp'
|
5
|
+
require 'sugar-high/string'
|
5
6
|
|
6
7
|
class File
|
7
8
|
def self.delete! name
|
@@ -126,10 +127,13 @@ class File
|
|
126
127
|
return nil if content.blank? || (file.read =~ /#{content}/)
|
127
128
|
|
128
129
|
place, marker = if options[:before]
|
129
|
-
|
130
|
+
[ :before, options[:before] ]
|
131
|
+
elsif options[:before_last]
|
132
|
+
[ :before_last, options[:before_last] ]
|
130
133
|
else
|
131
|
-
|
134
|
+
[ :after, options[:after] ]
|
132
135
|
end
|
136
|
+
|
133
137
|
|
134
138
|
marker = Insert.get_marker marker
|
135
139
|
|
@@ -165,8 +169,15 @@ class File
|
|
165
169
|
|
166
170
|
module Mutate
|
167
171
|
def self.mutate_file file, marker, place, &block
|
168
|
-
raise ArgumentError, "You must define a replacement marker for a :before or :after key" if !marker
|
169
|
-
|
172
|
+
raise ArgumentError, "You must define a replacement marker for a :before, :before_last or :after key" if !marker
|
173
|
+
|
174
|
+
if place == :before_last
|
175
|
+
content = File.read(file)
|
176
|
+
content = content.insert_before_last yield, marker
|
177
|
+
File.open(file, 'wb') { |file| file.write(content) }
|
178
|
+
return
|
179
|
+
end
|
180
|
+
|
170
181
|
replace_in_file file, /(#{marker})/mi do |match|
|
171
182
|
place == :after ? "#{match}\n #{yield}" : "#{yield}\n #{match}"
|
172
183
|
end
|
@@ -4,6 +4,7 @@ require 'sugar-high/file'
|
|
4
4
|
describe "SugarHigh::File" do
|
5
5
|
let(:empty_file) { fixture_file 'empty.txt' }
|
6
6
|
let(:non_empty_file) { fixture_file 'non-empty.txt'}
|
7
|
+
let(:class_file) { fixture_file 'class_file.rb'}
|
7
8
|
let(:replace_file) { fixture_file 'file.txt' }
|
8
9
|
|
9
10
|
before :each do
|
@@ -145,5 +146,12 @@ describe "SugarHigh::File" do
|
|
145
146
|
File.insert_into insertion_file, :content => ' Hello', :after => /Goodbye/
|
146
147
|
File.read(insertion_file).should match /Goodbye\s+Hello/
|
147
148
|
end
|
149
|
+
|
150
|
+
it "should insert Hello before last end statement" do
|
151
|
+
File.insert_into class_file, :content => ' # Hello', :before_last => 'end'
|
152
|
+
puts File.read(class_file)
|
153
|
+
File.read(class_file).should match /end\s+# Hello\s+end/
|
154
|
+
File.remove_content_from class_file, :content => ' # Hello'
|
155
|
+
end
|
148
156
|
end
|
149
157
|
end
|
data/sugar-high.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sugar-high}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
@@ -41,6 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
"lib/sugar-high/rspec/configure.rb",
|
42
42
|
"lib/sugar-high/rspec/matchers/have_aliases.rb",
|
43
43
|
"lib/sugar-high/string.rb",
|
44
|
+
"spec/fixtures/class_file.rb",
|
44
45
|
"spec/fixtures/empty.txt",
|
45
46
|
"spec/fixtures/non-empty.txt",
|
46
47
|
"spec/spec_helper.rb",
|
@@ -65,6 +66,7 @@ Gem::Specification.new do |s|
|
|
65
66
|
s.rubygems_version = %q{1.3.7}
|
66
67
|
s.summary = %q{Ruby convenience sugar packs!}
|
67
68
|
s.test_files = [
|
69
|
+
"spec/fixtures/class_file.rb",
|
68
70
|
"spec/spec_helper.rb",
|
69
71
|
"spec/sugar-high/alias_spec.rb",
|
70
72
|
"spec/sugar-high/arguments_spec.rb",
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 3
|
9
|
+
version: 0.3.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- lib/sugar-high/rspec/configure.rb
|
97
97
|
- lib/sugar-high/rspec/matchers/have_aliases.rb
|
98
98
|
- lib/sugar-high/string.rb
|
99
|
+
- spec/fixtures/class_file.rb
|
99
100
|
- spec/fixtures/empty.txt
|
100
101
|
- spec/fixtures/non-empty.txt
|
101
102
|
- spec/spec_helper.rb
|
@@ -147,6 +148,7 @@ signing_key:
|
|
147
148
|
specification_version: 3
|
148
149
|
summary: Ruby convenience sugar packs!
|
149
150
|
test_files:
|
151
|
+
- spec/fixtures/class_file.rb
|
150
152
|
- spec/spec_helper.rb
|
151
153
|
- spec/sugar-high/alias_spec.rb
|
152
154
|
- spec/sugar-high/arguments_spec.rb
|