sow 0.4.0

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.
Files changed (94) hide show
  1. data/COPYING +622 -0
  2. data/HISTORY +14 -0
  3. data/MANIFEST +138 -0
  4. data/NOTES +86 -0
  5. data/README +157 -0
  6. data/bin/sow +4 -0
  7. data/lib/sow.rb +12 -0
  8. data/lib/sow/command.rb +201 -0
  9. data/lib/sow/context.rb +29 -0
  10. data/lib/sow/core_ext.rb +47 -0
  11. data/lib/sow/generators/base.rb +321 -0
  12. data/lib/sow/generators/create.rb +111 -0
  13. data/lib/sow/generators/delete.rb +50 -0
  14. data/lib/sow/generators/update.rb +47 -0
  15. data/lib/sow/logger.rb +73 -0
  16. data/lib/sow/manager.rb +101 -0
  17. data/lib/sow/metadata.rb +115 -0
  18. data/lib/sow/plugin.rb +484 -0
  19. data/lib/sow/script.rb +186 -0
  20. data/lib/sow/session.rb +150 -0
  21. data/meta/authors +1 -0
  22. data/meta/contact +1 -0
  23. data/meta/description +1 -0
  24. data/meta/homepage +1 -0
  25. data/meta/loadpath +2 -0
  26. data/meta/package +1 -0
  27. data/meta/project +1 -0
  28. data/meta/repository +1 -0
  29. data/meta/requires +2 -0
  30. data/meta/ruby +2 -0
  31. data/meta/version +1 -0
  32. data/plug/sow/seeds/bin/.meta/created +1 -0
  33. data/plug/sow/seeds/bin/.meta/description +1 -0
  34. data/plug/sow/seeds/bin/.meta/license +1 -0
  35. data/plug/sow/seeds/bin/.meta/package +1 -0
  36. data/plug/sow/seeds/bin/.meta/requires +1 -0
  37. data/plug/sow/seeds/bin/.meta/title +1 -0
  38. data/plug/sow/seeds/bin/.meta/version +1 -0
  39. data/plug/sow/seeds/bin/SCRIPT.rb +22 -0
  40. data/plug/sow/seeds/bin/template/bin/command.rb +12 -0
  41. data/plug/sow/seeds/hoe/SCRIPT.rb +28 -0
  42. data/plug/sow/seeds/hoe/template/History.txt +7 -0
  43. data/plug/sow/seeds/hoe/template/Manifest.txt +8 -0
  44. data/plug/sow/seeds/hoe/template/README.txt +49 -0
  45. data/plug/sow/seeds/hoe/template/Rakefile +13 -0
  46. data/plug/sow/seeds/hoe/template/bin/__name__ +0 -0
  47. data/plug/sow/seeds/hoe/template/lib/__name__.rb +4 -0
  48. data/plug/sow/seeds/hoe/template/test/test___name__.rb +1 -0
  49. data/plug/sow/seeds/license/SCRIPT.rb +27 -0
  50. data/plug/sow/seeds/license/template/META/license +1 -0
  51. data/plug/sow/seeds/license/template/gpl/LICENSE +622 -0
  52. data/plug/sow/seeds/license/template/lgpl/LICENSE +789 -0
  53. data/plug/sow/seeds/license/template/mit/LICENSE +22 -0
  54. data/plug/sow/seeds/ruby/COPY.yml +14 -0
  55. data/plug/sow/seeds/ruby/DATA.yml +8 -0
  56. data/plug/sow/seeds/ruby/USAGE.txt +8 -0
  57. data/plug/sow/seeds/ruby/script.sow.rb +17 -0
  58. data/plug/sow/seeds/ruby/template/COPYING +622 -0
  59. data/plug/sow/seeds/ruby/template/History.rdoc +18 -0
  60. data/plug/sow/seeds/ruby/template/README.rdoc +43 -0
  61. data/plug/sow/seeds/ruby/template/README.rdoc.till +43 -0
  62. data/plug/sow/seeds/ruby/template/Rakefile +1 -0
  63. data/plug/sow/seeds/ruby/template/bin/__package__ +2 -0
  64. data/plug/sow/seeds/ruby/template/lib/__package__.rb +3 -0
  65. data/plug/sow/seeds/ruby/template/meta/created +1 -0
  66. data/plug/sow/seeds/ruby/template/meta/description +1 -0
  67. data/plug/sow/seeds/ruby/template/meta/license +1 -0
  68. data/plug/sow/seeds/ruby/template/meta/package +1 -0
  69. data/plug/sow/seeds/ruby/template/meta/requires +1 -0
  70. data/plug/sow/seeds/ruby/template/meta/title +1 -0
  71. data/plug/sow/seeds/ruby/template/meta/version +1 -0
  72. data/plug/sow/seeds/ruby/template/setup.rb +1467 -0
  73. data/plug/sow/seeds/ruby/template/test/template.rb +17 -0
  74. data/plug/sow/seeds/testunit/COPY.yml +12 -0
  75. data/plug/sow/seeds/testunit/DATA.yml +23 -0
  76. data/plug/sow/seeds/testunit/USAGE.txt +11 -0
  77. data/plug/sow/seeds/testunit/_SCRIPT.rb +42 -0
  78. data/plug/sow/seeds/testunit/template/form/testunit +24 -0
  79. data/plug/sow/seeds/testunit/template/test/test_template.rb +15 -0
  80. data/plug/sow/seeds/website/template/assets/styles/color.css +0 -0
  81. data/plug/sow/seeds/website/template/assets/styles/font.css +0 -0
  82. data/plug/sow/seeds/website/template/assets/styles/index.css +4 -0
  83. data/plug/sow/seeds/website/template/assets/styles/reset.css +0 -0
  84. data/plug/sow/seeds/website/template/assets/styles/struct.css +0 -0
  85. data/plug/sow/seeds/website/template/index.html +15 -0
  86. data/test/features/scaffold.feature +13 -0
  87. data/test/features/step_definitions/cli_steps.rb +0 -0
  88. data/test/features/step_definitions/fixture_steps.rb +72 -0
  89. data/test/features/support/env.rb +41 -0
  90. data/test/unit/fixtures/README +5 -0
  91. data/test/unit/helper.rb +23 -0
  92. data/test/unit/test_metadata.rb +17 -0
  93. data/test/unit/test_scaffold.rb +37 -0
  94. metadata +178 -0
@@ -0,0 +1,17 @@
1
+ require '<%= package %>'
2
+ require 'test/unit'
3
+
4
+ class TC_Sample < Test::Unit::TestCase
5
+
6
+ def setup
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_sample
13
+ assert(true)
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,12 @@
1
+ ---
2
+ - from : test
3
+ to : <%= test_dir %>
4
+
5
+ - from : form/testunit
6
+ to : <%= form_dir %>/testunit
7
+ chmod: 0754
8
+
9
+ - from : test/test_template.rb
10
+ to : <%= test_dir %>/test_<%= test_name %>.rb
11
+ if : name
12
+
@@ -0,0 +1,23 @@
1
+ # Test::Unit Template
2
+
3
+ validate:
4
+ abort "Test name must ba a single word" if name =~ /\s+/
5
+
6
+ name:
7
+ options['name'] || metadata.package
8
+
9
+ test_dir:
10
+ argument #dir if dir
11
+
12
+ class_name:
13
+ name.modulize if name
14
+
15
+ test_name:
16
+ name.pathize if name
17
+
18
+ test_dir:
19
+ (Dir['{test/unit,test}/'].first || 'test').chomp('/')
20
+
21
+ form_dir:
22
+ (Dir['{form{,s}/'].first || 'form/').chomp('/')
23
+
@@ -0,0 +1,11 @@
1
+ Generate Test::Unit Scaffolding
2
+
3
+ Usage:
4
+ --testunit
5
+ --testunit.dir=<PATH>
6
+ --testunit.name=<TEST>
7
+
8
+ Generates scaffolding for using Test::Unit in your
9
+ Ruby project. If a test name is given will also
10
+ template a test by that name.
11
+
@@ -0,0 +1,42 @@
1
+ # Test::Unit Scaffold
2
+
3
+ module Sow::Plugins
4
+
5
+ class TestUnit < Script
6
+
7
+ attr_accessor :dir
8
+
9
+ attr_accessor :name
10
+
11
+ #
12
+ def setup
13
+ @dir ||= argument
14
+
15
+ if name
16
+ abort "Test name must ba a single word" if name =~ /\s+/
17
+
18
+ metadata.class_name = name.modulize
19
+ metadata.test_name = name.pathize
20
+ end
21
+ end
22
+
23
+ #
24
+ def manifest
25
+ test_dir = (Dir['{test/unit,test}/'].first || 'test').chomp('/')
26
+ form_dir = (Dir['{form{,s}/'].first || 'form').chomp('/')
27
+
28
+ test_dir = dir if dir
29
+
30
+ copy "test" , test_dir
31
+ copy "form/testunit", form_dir + "/testunit", :chmod => 0755
32
+
33
+ if name
34
+ copy "test/test_template.rb", "#{test_dir}/test_#{metadata.test_name}.rb"
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
42
+
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+
5
+ force = ARGV.delete('-f') || ARGV.delete('--force')
6
+ name = ARGV.first
7
+ file = "test/test_#{name}"
8
+
9
+ content = <<-END
10
+ require 'test_helper.rb'
11
+
12
+ class TC_#{name} < Test::Unit::TestCase
13
+ def test_#{name}
14
+ end
15
+ end
16
+ END
17
+
18
+ if File.exist?(file) && !force
19
+ puts "overwrite -- #{file}"
20
+ else
21
+ mkdir_p("test")
22
+ File.open("test/test_#{name}", 'w'){ |f| f << content }
23
+ end
24
+
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class Test<%= class_name %> < Test::Unit::TestCase
4
+ def setup
5
+ end
6
+
7
+ def teardown
8
+ end
9
+
10
+ # Replace this with your real tests.
11
+ def test_truth
12
+ assert true
13
+ end
14
+ end
15
+
@@ -0,0 +1,4 @@
1
+ @import reset.css
2
+ @import struct.css
3
+ @import font.css
4
+ @import color.css
@@ -0,0 +1,15 @@
1
+ <html>
2
+ <head>
3
+ <title><%= name.capitalize %></title>
4
+ <link href="assets/styles/index.css"/>
5
+ </head>
6
+ <body>
7
+ <div class="doc">
8
+
9
+ <h1><%= name %></h1>
10
+
11
+ <p>Welcome to you new website</p>
12
+
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ Feature: Scaffold new projects
2
+
3
+ As a developer I want to quickly scaffold new projects
4
+ So that I can skip the tedium of recreating standard directory structures
5
+
6
+ Scenario: Scaffold a new project
7
+ Given I want to create a new "ruby" project
8
+ And I want the project to be called "new_project"
9
+ And I want to place it in a directory with the same name
10
+ Given there is no project directory by that name
11
+ When I execute sow
12
+ Then a standard ruby project will be generated
13
+ And with the proper project name
File without changes
@@ -0,0 +1,72 @@
1
+ Given /^I want to create a new "(.*)" project$/ do |type|
2
+ @type = type
3
+ end
4
+
5
+ And /^I want the project to be called "(.*)"$/ do |name|
6
+ @name = name
7
+ end
8
+
9
+ And /^I want to place it in a directory with the same name$/ do
10
+ @path = @name
11
+ end
12
+
13
+ And /^I want to place it in a directory "(.*)"$/ do |path|
14
+ @path = path
15
+ end
16
+
17
+ Given /^there is no project directory/ do
18
+ in_temporary_directory do
19
+ rm_r(@path) if File.exist?(@path)
20
+ end
21
+ end
22
+
23
+ Given /^a command option "(.*)"$/ do |opt|
24
+ @option = opt
25
+ if /=/ =~ @option
26
+ @name = @option.split('=').last
27
+ end
28
+ end
29
+
30
+ And /^a command argument$/ do |arg|
31
+ @argument = arg
32
+ if /=/ !~ @option
33
+ @name = arg
34
+ end
35
+ end
36
+
37
+ When /^I execute sow$/ do
38
+ if @path = @name
39
+ cmd = %|sow --#{@type} #{@path}|
40
+ else
41
+ cmd = %|sow --#{@type}=#{@name} #{@path}|
42
+ end
43
+ in_temporary_directory do
44
+ system cmd
45
+ end
46
+ end
47
+
48
+ Then /^a standard ruby project will be generated$/ do
49
+ in_temporary_directory do
50
+ File.assert.exist?(@path)
51
+
52
+ entries =[]
53
+ Dir.chdir(@path) do
54
+ entries = Dir.glob("**/*", File::FNM_DOTMATCH)
55
+ end
56
+ entries = entries.reject{ |d| File.basename(d) == '.' or File.basename(d) == '..' } # this sucks!
57
+ entries = entries.sort
58
+
59
+ files = plugin_scaffolding('ruby')
60
+ files = files.map{ |d| d.sub('meta', '.meta') }
61
+ files = files.map{ |d| d.sub('__package__', @name) }
62
+ files = files.sort
63
+ entries.assert == files
64
+ end
65
+ end
66
+
67
+ And /^with the proper project name$/ do
68
+ in_project_directory(@path) do
69
+ File.read('README.rdoc').assert.index(@name)
70
+ end
71
+ end
72
+
@@ -0,0 +1,41 @@
1
+ # Use Assertive Expressive
2
+ require 'ae'
3
+ require 'ae/expect'
4
+ require 'ae/should'
5
+
6
+ require 'tmpdir'
7
+
8
+ include FileUtils
9
+
10
+ $PROJECT_ROOT = File.expand_path(File.dirname(__FILE__) + '../../../..')
11
+ $TMP_DIR = Dir.tmpdir + '/cucumber/sow'
12
+
13
+ puts "[tmpdir] #{$TMP_DIR}"
14
+
15
+ Before do
16
+ @tmp_path = $TMP_DIR
17
+ #@tmp_path = File.expand_path(File.dirname(__FILE__) + '../../../../.cache/cucumber')
18
+ rm_rf @tmp_path
19
+ mkdir_p @tmp_path
20
+ end
21
+
22
+ def in_temporary_directory(&block)
23
+ Dir.chdir(@tmp_path) do
24
+ block.call
25
+ end
26
+ end
27
+
28
+ def in_project_directory(*name, &block)
29
+ Dir.chdir(File.join(@tmp_path, *name)) do
30
+ block.call
31
+ end
32
+ end
33
+
34
+ def plugin_scaffolding(name)
35
+ files = []
36
+ Dir.chdir($PROJECT_ROOT + "/plug/sow/seeds/#{name}/template/") do
37
+ files = Dir["**/*"]
38
+ end
39
+ files.sort
40
+ end
41
+
@@ -0,0 +1,5 @@
1
+ This is a fake project, for Sow to run tests on.
2
+ While using a FileMock would probably be a better
3
+ approach, at the moment it is easier to get some
4
+ tests in here based on a simple mock project.
5
+
@@ -0,0 +1,23 @@
1
+ require 'test/unit' # can I load test case only?
2
+ require 'facets/kernel/silence'
3
+ require 'tmpdir'
4
+ require 'fileutils'
5
+
6
+ module Reap
7
+ module TestCases
8
+
9
+ module CaseTestable
10
+
11
+ FIXTURE = "test/data"
12
+ TEMPDIR = File.join(Dir.tmpdir, 'sow', 'test')
13
+
14
+ def setup
15
+ FileUtils.rm_r TEMPDIR if File.exist?(TEMPDIR)
16
+ FileUtils.mkdir_p TEMPDIR
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+
@@ -0,0 +1,17 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TestMetadata < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ # Replace this with your real tests.
12
+ def test_truth
13
+ assert true
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require "test/unit"
3
+
4
+ module Reap
5
+ module TestCases
6
+
7
+ class TestScaffold < Test::Unit::TestCase
8
+
9
+ include CaseTestable
10
+
11
+ def setup
12
+ super
13
+ @dirname = 'scaffold'
14
+ @dir = File.join(TEMPDIR, 'scaffold')
15
+ FileUtils.rm_r(@dir) if File.exist?(@dir)
16
+ #FileUtils.cp_r(FIXTURE + '/scaffold', @dir)
17
+ end
18
+
19
+ def test_scaffold
20
+ Dir.chdir(TEMPDIR) do
21
+ silently do
22
+ system "sow reap #{@dirname}"
23
+ end
24
+
25
+ assert(File.directory?(@dirname), "did not scaffold")
26
+
27
+ Dir.chdir(@dirname) do
28
+ assert(File.exist?('README'), "README does not exist")
29
+ end
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+ end
37
+
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - trans <transfire@gmail.com>
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-17 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: facets
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.4.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: xdg
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: Sow is a flexible and straightforward project file generation system.
36
+ email: tigerops-community@rubyforge.org
37
+ executables:
38
+ - sow
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ - MANIFEST
44
+ - NOTES
45
+ - HISTORY
46
+ - COPYING
47
+ files:
48
+ - bin/sow
49
+ - lib/sow/command.rb
50
+ - lib/sow/context.rb
51
+ - lib/sow/core_ext.rb
52
+ - lib/sow/generators/base.rb
53
+ - lib/sow/generators/create.rb
54
+ - lib/sow/generators/delete.rb
55
+ - lib/sow/generators/update.rb
56
+ - lib/sow/logger.rb
57
+ - lib/sow/manager.rb
58
+ - lib/sow/metadata.rb
59
+ - lib/sow/plugin.rb
60
+ - lib/sow/script.rb
61
+ - lib/sow/session.rb
62
+ - lib/sow.rb
63
+ - meta/authors
64
+ - meta/contact
65
+ - meta/description
66
+ - meta/homepage
67
+ - meta/loadpath
68
+ - meta/package
69
+ - meta/project
70
+ - meta/repository
71
+ - meta/requires
72
+ - meta/ruby
73
+ - meta/version
74
+ - plug/sow/seeds/bin/.meta/created
75
+ - plug/sow/seeds/bin/.meta/description
76
+ - plug/sow/seeds/bin/.meta/license
77
+ - plug/sow/seeds/bin/.meta/package
78
+ - plug/sow/seeds/bin/.meta/requires
79
+ - plug/sow/seeds/bin/.meta/title
80
+ - plug/sow/seeds/bin/.meta/version
81
+ - plug/sow/seeds/bin/SCRIPT.rb
82
+ - plug/sow/seeds/bin/template/bin/command.rb
83
+ - plug/sow/seeds/hoe/SCRIPT.rb
84
+ - plug/sow/seeds/hoe/template/History.txt
85
+ - plug/sow/seeds/hoe/template/Manifest.txt
86
+ - plug/sow/seeds/hoe/template/README.txt
87
+ - plug/sow/seeds/hoe/template/Rakefile
88
+ - plug/sow/seeds/hoe/template/bin/__name__
89
+ - plug/sow/seeds/hoe/template/lib/__name__.rb
90
+ - plug/sow/seeds/hoe/template/test/test___name__.rb
91
+ - plug/sow/seeds/license/SCRIPT.rb
92
+ - plug/sow/seeds/license/template/META/license
93
+ - plug/sow/seeds/license/template/gpl/LICENSE
94
+ - plug/sow/seeds/license/template/lgpl/LICENSE
95
+ - plug/sow/seeds/license/template/mit/LICENSE
96
+ - plug/sow/seeds/ruby/COPY.yml
97
+ - plug/sow/seeds/ruby/DATA.yml
98
+ - plug/sow/seeds/ruby/USAGE.txt
99
+ - plug/sow/seeds/ruby/script.sow.rb
100
+ - plug/sow/seeds/ruby/template/COPYING
101
+ - plug/sow/seeds/ruby/template/History.rdoc
102
+ - plug/sow/seeds/ruby/template/README.rdoc
103
+ - plug/sow/seeds/ruby/template/README.rdoc.till
104
+ - plug/sow/seeds/ruby/template/Rakefile
105
+ - plug/sow/seeds/ruby/template/bin/__package__
106
+ - plug/sow/seeds/ruby/template/lib/__package__.rb
107
+ - plug/sow/seeds/ruby/template/meta/created
108
+ - plug/sow/seeds/ruby/template/meta/description
109
+ - plug/sow/seeds/ruby/template/meta/license
110
+ - plug/sow/seeds/ruby/template/meta/package
111
+ - plug/sow/seeds/ruby/template/meta/requires
112
+ - plug/sow/seeds/ruby/template/meta/title
113
+ - plug/sow/seeds/ruby/template/meta/version
114
+ - plug/sow/seeds/ruby/template/setup.rb
115
+ - plug/sow/seeds/ruby/template/test/template.rb
116
+ - plug/sow/seeds/testunit/COPY.yml
117
+ - plug/sow/seeds/testunit/DATA.yml
118
+ - plug/sow/seeds/testunit/USAGE.txt
119
+ - plug/sow/seeds/testunit/_SCRIPT.rb
120
+ - plug/sow/seeds/testunit/template/form/testunit
121
+ - plug/sow/seeds/testunit/template/test/test_template.rb
122
+ - plug/sow/seeds/website/template/assets/styles/color.css
123
+ - plug/sow/seeds/website/template/assets/styles/font.css
124
+ - plug/sow/seeds/website/template/assets/styles/index.css
125
+ - plug/sow/seeds/website/template/assets/styles/reset.css
126
+ - plug/sow/seeds/website/template/assets/styles/struct.css
127
+ - plug/sow/seeds/website/template/index.html
128
+ - test/features/scaffold.feature
129
+ - test/features/step_definitions/cli_steps.rb
130
+ - test/features/step_definitions/fixture_steps.rb
131
+ - test/features/support/env.rb
132
+ - test/unit/fixtures/README
133
+ - test/unit/helper.rb
134
+ - test/unit/test_metadata.rb
135
+ - test/unit/test_scaffold.rb
136
+ - NOTES
137
+ - README
138
+ - HISTORY
139
+ - COPYING
140
+ - MANIFEST
141
+ has_rdoc: true
142
+ homepage: http://sow.rubyforge.org
143
+ licenses: []
144
+
145
+ post_install_message:
146
+ rdoc_options:
147
+ - --inline-source
148
+ - --title
149
+ - sow api
150
+ - --main
151
+ - README
152
+ require_paths:
153
+ - lib
154
+ - plug
155
+ required_ruby_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: "0"
160
+ version:
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: "0"
166
+ version:
167
+ requirements: []
168
+
169
+ rubyforge_project: sow
170
+ rubygems_version: 1.3.5
171
+ signing_key:
172
+ specification_version: 3
173
+ summary: Sow is a flexible and straightforward project file generation system.
174
+ test_files:
175
+ - plug/sow/seeds/hoe/template/test/test___name__.rb
176
+ - plug/sow/seeds/testunit/template/test/test_template.rb
177
+ - test/unit/test_metadata.rb
178
+ - test/unit/test_scaffold.rb