header-inserter 1.0.2 → 1.0.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.
@@ -1,4 +1,9 @@
1
- == 1.0.1 2009-03-26
1
+ == 1.0.3 2009-03-27
2
+
3
+ * New version
4
+ * The replace of the old header should happen only once. If there are more comments around the code with a similar content, it is safer to let them there.
5
+
6
+ == 1.0.2 2009-03-26
2
7
 
3
8
  * New version
4
9
  * addHeader wasn't replacing the old header. Changed the behavior to do so. Also does not erase parts of the new header if they match the old header.
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module HeaderInserter
5
- VERSION = '1.0.2'
5
+ VERSION = '1.0.3'
6
6
  end
@@ -69,15 +69,29 @@ class ProjectFile
69
69
  end
70
70
  file.close
71
71
 
72
- content.gsub!(old_header, "") unless old_header.nil?
73
- content = header + content
72
+ content = remove old_header, content
74
73
 
75
74
  file = File.new absolute_path, "w"
76
- file.puts content
75
+ file.puts(header + content)
77
76
  file.close
78
77
  end
79
78
 
80
79
  protected
80
+
81
+ def remove old_header, content
82
+ replaced = false
83
+ unless old_header.nil?
84
+ content.gsub!(old_header) { |match|
85
+ if not replaced
86
+ replaced = true
87
+ ""
88
+ else
89
+ match
90
+ end
91
+ }
92
+ end
93
+ content
94
+ end
81
95
 
82
96
  def modifications
83
97
  @mods = version_control.history path if @mods.nil?
@@ -191,6 +191,18 @@ describe ProjectFile do
191
191
  read_content(file.absolute_path).should == new_header + content
192
192
  end
193
193
 
194
+ it "should add a header at the beginning of the file and remove the one specified even if a part matches only once" do
195
+ new_header = "/**\n * My fine header.\n * It has the date (2009-03-24, 21:43:58) and the first contributor (hugo).\n * And ends like nothing\n */\n/** A stupid header */\n\n"
196
+ stupid_header = "/** A stupid header */\n\n"
197
+ content = "class A {}\n"
198
+
199
+ file = ProjectFile.new @project, "A.java"
200
+ create_file file.absolute_path, stupid_header + content + stupid_header
201
+ file.add_header(new_header, stupid_header)
202
+
203
+ read_content(file.absolute_path).should == new_header + content + stupid_header
204
+ end
205
+
194
206
  after(:each) do
195
207
  FileUtils.rm_rf @project.path
196
208
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: header-inserter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - FIXME full name
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-26 00:00:00 -03:00
12
+ date: 2009-03-27 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency