sparehand 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class CommentBlockCLITest < Test::Unit::TestCase
4
+ def setup
5
+ @ruby = 'ruby'
6
+ @ruby_opts = "-I#{$:.last}"
7
+ @cli = File.join(File.dirname(__FILE__), '..', 'bin', 'comment_block')
8
+ @file = fixtures 'example_hosts_file'
9
+ @command = "#{@ruby} #{@ruby_opts} #{@cli} #{@file}"
10
+ @original_data = File.read(@file)
11
+ end
12
+
13
+ def teardown
14
+ File.open(@file, 'w') { |f| f.print @original_data }
15
+ end
16
+
17
+ def test_cli_comment_operation
18
+ `#{@command} comment internal`
19
+ assert(/^#internal/ =~ File.read(@file))
20
+ assert(/^#external/ =~ File.read(@file))
21
+ `#{@command} toggle external`
22
+ assert(/^#internal/ =~ File.read(@file))
23
+ assert(/^external/ =~ File.read(@file))
24
+ `#{@command} uncomment external`
25
+ assert(/^#internal/ =~ File.read(@file))
26
+ assert(/^external/ =~ File.read(@file))
27
+ end
28
+ end
@@ -0,0 +1,66 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require 'comment_block'
3
+ require 'stringio'
4
+
5
+ class CommentBlockTest < Test::Unit::TestCase
6
+ @@input = <<EOF
7
+ uncommented
8
+ #BEGIN a
9
+ to be commented
10
+ #END a
11
+ EOF
12
+
13
+ @@comment_expected = <<EOF
14
+ uncommented
15
+ #BEGIN a
16
+ #to be commented
17
+ #END a
18
+ EOF
19
+ @@uncomment_expected = <<EOF
20
+ uncommented
21
+ #BEGIN a
22
+ to be commented
23
+ #END a
24
+ EOF
25
+
26
+ def test_ignore_doesnt_change_line
27
+ assert_equal('hi', Sparehand::CommentBlock.ignore('hi'))
28
+ end
29
+
30
+ def test_comment_operation_forces_comment
31
+ assert_equal('#hi', process('hi', :comment))
32
+ assert_equal('#hi', process('#hi', :comment))
33
+ end
34
+
35
+ def test_uncomment_operation_forces_uncomment
36
+ assert_equal('hi', process('#hi', :uncomment))
37
+ assert_equal('hi', process('hi', :uncomment))
38
+ end
39
+
40
+ def test_any_other_operation_causes_toggle
41
+ assert_equal('hi', process('#hi', :toggle))
42
+ assert_equal('#hi', process('hi', :something_other_than_toggle))
43
+ end
44
+
45
+ def test_comment_character_can_be_changed
46
+ assert_equal('hi', process('//hi', :uncomment, '//'))
47
+ assert_equal('hi', process('//hi', :toggle, '//'))
48
+ end
49
+
50
+ def process data, op, comment = '#'
51
+ Sparehand::CommentBlock.process_line(data, op, comment)
52
+ end
53
+
54
+ def test_process_should_operate_between_blocks
55
+ assert_equal(@@comment_expected, Sparehand::CommentBlock.process(@@input, 'a', :comment))
56
+ assert_equal(@@comment_expected, Sparehand::CommentBlock.process(@@input, 'a', :toggle))
57
+ assert_equal(@@uncomment_expected, Sparehand::CommentBlock.process(@@input, 'a', :uncomment))
58
+ end
59
+
60
+ def test_process_should_operate_on_streams_and_return_nil
61
+ input = StringIO.new(@@input)
62
+ output = StringIO.new
63
+ assert_nil Sparehand::CommentBlock.process(@@input, 'a', :toggle, '#', output)
64
+ assert_equal(@@comment_expected, output.string)
65
+ end
66
+ end
@@ -0,0 +1,7 @@
1
+ #BEGIN internal
2
+ internal host
3
+ #END internal
4
+
5
+ #BEGIN external
6
+ #external host
7
+ #END external
@@ -0,0 +1 @@
1
+ changed!
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require 'safe_modify'
3
+
4
+ class SafeModifyTest < Test::Unit::TestCase
5
+ def setup
6
+ @file = fixtures('safe_modify_data')
7
+ end
8
+
9
+ def test_problem_in_block_should_leave_original
10
+ original = File.read @file
11
+ begin
12
+ File.safe_modify(@file) do |input, output|
13
+ raise 'Error on write'
14
+ end
15
+ rescue Exception
16
+ end
17
+
18
+ assert_equal original, File.read(@file)
19
+ end
20
+
21
+ def test_should_load_and_modify_file
22
+ File.safe_modify(@file) do |input, output|
23
+ assert_equal File.read(@file), input.read
24
+ output.print 'changed!'
25
+ end
26
+ assert_equal 'changed!', File.read(@file)
27
+ end
28
+ end
@@ -0,0 +1,8 @@
1
+ require 'test/unit'
2
+ $: << File.join(File.dirname(__FILE__), '..', 'lib')
3
+
4
+ class Test::Unit::TestCase
5
+ def fixtures file
6
+ File.join(File.dirname(__FILE__), 'fixtures', file)
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.1
3
+ specification_version: 1
4
+ name: sparehand
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.1
7
+ date: 2007-02-10 00:00:00 -05:00
8
+ summary: A collection of utilities for system manipulations both from Ruby or CLI.
9
+ require_paths:
10
+ - lib
11
+ email: mat.schaffer@gmail.com
12
+ homepage: http://phillyonrails.rubyforge.org/sparehand
13
+ rubyforge_project: phillyonrails
14
+ description: A collection of utilities for system manipulations both from Ruby or CLI.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Mat Schaffer
31
+ files:
32
+ - History.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ - Rakefile
36
+ - bin/comment_block
37
+ - coverage/index.html
38
+ - coverage/lib-comment_block_rb.html
39
+ - lib/comment_block.rb
40
+ - lib/safe_modify.rb
41
+ - lib/sparehand/version.rb
42
+ - setup.rb
43
+ - test/comment_block_cli_test.rb
44
+ - test/comment_block_test.rb
45
+ - test/fixtures/example_hosts_file
46
+ - test/fixtures/safe_modify_data
47
+ - test/safe_modify_test.rb
48
+ - test/test_helper.rb
49
+ test_files:
50
+ - test/comment_block_cli_test.rb
51
+ - test/comment_block_test.rb
52
+ - test/safe_modify_test.rb
53
+ rdoc_options: []
54
+
55
+ extra_rdoc_files: []
56
+
57
+ executables:
58
+ - comment_block
59
+ extensions: []
60
+
61
+ requirements: []
62
+
63
+ dependencies: []
64
+