jackdempsey-beet 0.0.8 → 0.0.9

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/Rakefile CHANGED
@@ -17,20 +17,28 @@ rescue LoadError
17
17
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
18
  end
19
19
 
20
- require 'spec/rake/spectask'
21
- Spec::Rake::SpecTask.new(:spec) do |spec|
22
- spec.libs << 'lib' << 'spec'
23
- spec.spec_files = FileList['spec/**/*_spec.rb']
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/*_test.rb'
24
+ test.verbose = true
24
25
  end
25
26
 
26
- Spec::Rake::SpecTask.new(:rcov) do |spec|
27
- spec.libs << 'lib' << 'spec'
28
- spec.pattern = 'spec/**/*_spec.rb'
29
- spec.rcov = true
27
+ begin
28
+ require 'rcov/rcovtask'
29
+ Rcov::RcovTask.new do |test|
30
+ test.libs << 'test'
31
+ test.pattern = 'test/**/*_test.rb'
32
+ test.verbose = true
33
+ end
34
+ rescue LoadError
35
+ task :rcov do
36
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
+ end
30
38
  end
31
39
 
32
40
 
33
- task :default => :spec
41
+ task :default => :test
34
42
 
35
43
  require 'rake/rdoctask'
36
44
  Rake::RDocTask.new do |rdoc|
@@ -42,7 +50,7 @@ Rake::RDocTask.new do |rdoc|
42
50
  end
43
51
 
44
52
  rdoc.rdoc_dir = 'rdoc'
45
- rdoc.title = "beet #{version}"
53
+ rdoc.title = "beet_shoulda #{version}"
46
54
  rdoc.rdoc_files.include('README*')
47
55
  rdoc.rdoc_files.include('lib/**/*.rb')
48
56
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
data/beet.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{beet}
5
- s.version = "0.0.8"
5
+ s.version = "0.0.9"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jack Dempsey"]
9
- s.date = %q{2009-05-29}
9
+ s.date = %q{2009-05-30}
10
10
  s.default_executable = %q{beet}
11
11
  s.email = %q{jack.dempsey@gmail.com}
12
12
  s.executables = ["beet"]
@@ -42,8 +42,8 @@ Gem::Specification.new do |s|
42
42
  "lib/beet/scm.rb",
43
43
  "lib/beet/scm/git.rb",
44
44
  "lib/beet/scm/svn.rb",
45
- "spec/beet_spec.rb",
46
- "spec/spec_helper.rb"
45
+ "test/file_system_shoulda_test.rb",
46
+ "test/test_helper.rb"
47
47
  ]
48
48
  s.homepage = %q{http://github.com/jackdempsey/beet}
49
49
  s.rdoc_options = ["--charset=UTF-8"]
@@ -51,8 +51,8 @@ Gem::Specification.new do |s|
51
51
  s.rubygems_version = %q{1.3.3}
52
52
  s.summary = %q{A gem to help with easily generating projects}
53
53
  s.test_files = [
54
- "spec/beet_spec.rb",
55
- "spec/spec_helper.rb"
54
+ "test/file_system_shoulda_test.rb",
55
+ "test/test_helper.rb"
56
56
  ]
57
57
 
58
58
  if s.respond_to? :specification_version then
@@ -89,7 +89,11 @@ module Beet
89
89
  #
90
90
  def gsub_file(relative_destination, regexp, *args, &block)
91
91
  path = destination_path(relative_destination)
92
- content = File.read(path).gsub(regexp, *args, &block)
92
+ content = File.read(path)
93
+ check_for = args.first || yield('')
94
+ regex = Regexp.new(regexp.source + Regexp.escape(check_for))
95
+ return if content =~ regex # if we can match the text and its leadin regex, don't add again
96
+ content = content.gsub(regexp, *args, &block)
93
97
  File.open(path, 'wb') { |file| file.write(content) }
94
98
  end
95
99
 
@@ -104,6 +108,20 @@ module Beet
104
108
  File.open(path, 'ab') { |file| file.write(data) }
105
109
  end
106
110
 
111
+ # Add text after matching line
112
+ #
113
+ # ==== Example
114
+ #
115
+ # add_after 'config/environment.rb', '# config.gem "aws-s3", :lib => "aws/s3"'
116
+ #
117
+ def add_after(filename, matching_text, data=nil, &block)
118
+ gsub_file filename, /(#{Regexp.escape(matching_text)})/mi do |match|
119
+ "#{match}\n#{data || block.call}"
120
+ end
121
+ end
122
+
123
+ protected
124
+
107
125
  def destination_path(relative_destination)
108
126
  File.join(root, relative_destination)
109
127
  end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ include Beet::FileSystem
4
+
5
+ # define some methods that file_system recipes expect to exist
6
+ def root; '.'; end
7
+ class FileSystemShouldaTest < Test::Unit::TestCase
8
+ context "#add_after" do
9
+ setup do
10
+ @filename = 'test.file'
11
+ File.open(@filename,'w') do |f|
12
+ f.puts "first line"
13
+ f.puts "second line"
14
+ end
15
+ end
16
+
17
+ teardown do
18
+ File.unlink(@filename)
19
+ end
20
+
21
+ should "add the given text after the specified text" do
22
+ add_after @filename, "first line", "middle line"
23
+ assert_equal "first line\nmiddle line\nsecond line\n", File.read(@filename)
24
+ end
25
+
26
+ should "not add the given text if it already exists after the specified text" do
27
+ add_after @filename, "first line", "middle line"
28
+ assert_equal "first line\nmiddle line\nsecond line\n", File.read(@filename)
29
+ add_after @filename, "first line", "middle line"
30
+ assert_equal "first line\nmiddle line\nsecond line\n", File.read(@filename)
31
+ end
32
+
33
+ should "add the given text if it exists but only elsewhere in the specified text" do
34
+ add_after @filename, "first line", "middle line"
35
+ assert_equal "first line\nmiddle line\nsecond line\n", File.read(@filename)
36
+ add_after @filename, "first line", "second line"
37
+ assert_equal "first line\nsecond line\nmiddle line\nsecond line\n", File.read(@filename)
38
+ end
39
+ end
40
+
41
+ context "#append_file" do
42
+ setup do
43
+ @filename = 'test.file'
44
+ File.open(@filename,'w') do |f|
45
+ f.puts "first line"
46
+ f.puts "second line"
47
+ end
48
+ end
49
+
50
+ teardown do
51
+ File.unlink(@filename)
52
+ end
53
+
54
+ should "add text to the end of the file" do
55
+ append_file @filename, "third line"
56
+ assert_equal "first line\nsecond line\nthird line", File.read(@filename)
57
+ end
58
+ end
59
+ end
@@ -1,9 +1,10 @@
1
- require 'spec'
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
2
4
 
3
- $LOAD_PATH.unshift(File.dirname(__FILE__))
4
5
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
7
  require 'beet'
6
-
7
- Spec::Runner.configure do |config|
8
-
8
+ require 'ruby-debug'
9
+ class Test::Unit::TestCase
9
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jackdempsey-beet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Dempsey
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-29 00:00:00 -07:00
12
+ date: 2009-05-30 00:00:00 -07:00
13
13
  default_executable: beet
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -59,8 +59,8 @@ files:
59
59
  - lib/beet/scm.rb
60
60
  - lib/beet/scm/git.rb
61
61
  - lib/beet/scm/svn.rb
62
- - spec/beet_spec.rb
63
- - spec/spec_helper.rb
62
+ - test/file_system_shoulda_test.rb
63
+ - test/test_helper.rb
64
64
  has_rdoc: false
65
65
  homepage: http://github.com/jackdempsey/beet
66
66
  post_install_message:
@@ -88,5 +88,5 @@ signing_key:
88
88
  specification_version: 3
89
89
  summary: A gem to help with easily generating projects
90
90
  test_files:
91
- - spec/beet_spec.rb
92
- - spec/spec_helper.rb
91
+ - test/file_system_shoulda_test.rb
92
+ - test/test_helper.rb
data/spec/beet_spec.rb DELETED
@@ -1,7 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
- describe "beet" do
4
- it "should do nothing" do
5
- true.should == true
6
- end
7
- end