sparehand 0.0.1

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.
@@ -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
+