gemstub 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/gemstub +9 -31
- data/lib/gemstub/gem_generator/gem_generator.rb +29 -0
- data/lib/gemstub/gem_generator/manifest.yml +62 -0
- data/lib/{templates/%=app% → gemstub/gem_generator/templates}/Rakefile.template +19 -1
- data/lib/gemstub/gem_generator/templates/test/test_app.rb.template +9 -0
- data/lib/gemstub/gem_generator/templates/test/test_helper.rb.template +8 -0
- data/lib/gemstub/tools.rb +5 -0
- data/lib/gemstub/yaml_generator/manifest.yml +4 -0
- data/lib/gemstub/yaml_generator/templates/gems.yml.template +23 -0
- data/lib/gemstub/yaml_generator/yaml_generator.rb +7 -0
- data/lib/gemstub.rb +5 -0
- metadata +18 -11
- data/lib/gem_generator.rb +0 -15
- /data/lib/{templates/%=app% → gemstub/gem_generator/templates}/README.template +0 -0
- /data/lib/{templates/%=app%/lib/%=app%/%=app%.rb.template → gemstub/gem_generator/templates/app_gem.rb.template} +0 -0
- /data/lib/{templates/%=app%/lib/%=app%.rb.template → gemstub/gem_generator/templates/app_init.rb.template} +0 -0
- /data/lib/{templates/%=app%/spec/lib/%=app%_spec.rb.template → gemstub/gem_generator/templates/spec/app_spec.rb.template} +0 -0
- /data/lib/{templates/%=app% → gemstub/gem_generator/templates}/spec/spec.opts.template +0 -0
- /data/lib/{templates/%=app% → gemstub/gem_generator/templates}/spec/spec_helper.rb.template +0 -0
data/bin/gemstub
CHANGED
@@ -5,7 +5,6 @@ require 'optparse'
|
|
5
5
|
require 'optparse/time'
|
6
6
|
require 'ostruct'
|
7
7
|
require 'pp'
|
8
|
-
require "mack-facets"
|
9
8
|
require 'genosaurus'
|
10
9
|
require 'erb'
|
11
10
|
|
@@ -31,6 +30,10 @@ opts = OptionParser.new do |opts|
|
|
31
30
|
opts.on("-f [force]") do |v|
|
32
31
|
options.force = true
|
33
32
|
end
|
33
|
+
|
34
|
+
opts.on("-t [rspec/unit]") do |v|
|
35
|
+
options.test = v
|
36
|
+
end
|
34
37
|
|
35
38
|
end
|
36
39
|
|
@@ -48,33 +51,8 @@ if options.force
|
|
48
51
|
end
|
49
52
|
end
|
50
53
|
|
51
|
-
require File.join(File.dirname(__FILE__), "..", "lib",
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
# Dir.mkdir app
|
57
|
-
#
|
58
|
-
# puts "create directory: #{app}/bin"
|
59
|
-
# Dir.mkdir "#{app}/bin"
|
60
|
-
#
|
61
|
-
# puts "create directory: #{app}/doc"
|
62
|
-
# Dir.mkdir "#{app}/doc"
|
63
|
-
#
|
64
|
-
# puts "create directory: #{app}/lib"
|
65
|
-
# Dir.mkdir "#{app}/lib"
|
66
|
-
#
|
67
|
-
# puts "create directory: #{app}/test"
|
68
|
-
# Dir.mkdir "#{app}/test"
|
69
|
-
#
|
70
|
-
# # Copy over templates:
|
71
|
-
# erb_files = Dir.glob(File.join(File.dirname(__FILE__), "templates", "**/*.template"))
|
72
|
-
#
|
73
|
-
# erb_files.each do |fl|
|
74
|
-
# res = ERB.new(File.open(fl).read).result(binding)
|
75
|
-
# n = fl.gsub(File.join(File.dirname(__FILE__), "templates"), app).gsub(".template", "")
|
76
|
-
# n.gsub!("%=app%", app)
|
77
|
-
# FileUtils.mkdir_p(File.dirname(n))
|
78
|
-
# File.open(n, "w") {|f| f.puts res}
|
79
|
-
# puts "Created: #{n}"
|
80
|
-
# end
|
54
|
+
require File.join(File.dirname(__FILE__), "..", "lib", 'gemstub', 'gem_generator', 'gem_generator')
|
55
|
+
GemGenerator.run("app" => app,
|
56
|
+
"version" => options.version,
|
57
|
+
"author" => options.author,
|
58
|
+
"test" => options.test)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class GemGenerator < Genosaurus
|
2
|
+
|
3
|
+
require_param :app
|
4
|
+
|
5
|
+
def app
|
6
|
+
param(:app)
|
7
|
+
end
|
8
|
+
|
9
|
+
def version
|
10
|
+
param(:version) || '0.0.1'
|
11
|
+
end
|
12
|
+
|
13
|
+
def author
|
14
|
+
param(:author) || (ENV["USERNAME"] || ENV["USER"])
|
15
|
+
end
|
16
|
+
|
17
|
+
def test
|
18
|
+
param(:test) || 'rspec'
|
19
|
+
end
|
20
|
+
|
21
|
+
def rspec?
|
22
|
+
test == 'rspec'
|
23
|
+
end
|
24
|
+
|
25
|
+
def unit?
|
26
|
+
test == 'unit'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
app_directory:
|
2
|
+
type: directory
|
3
|
+
output_path: <%= File.join(app, "lib", app) %>
|
4
|
+
|
5
|
+
app_rake_file:
|
6
|
+
type: file
|
7
|
+
template_path: <%= File.join(templates_directory_path, "Rakefile.template") %>
|
8
|
+
output_path: <%= File.join(app, "Rakefile") %>
|
9
|
+
|
10
|
+
app_readme_file:
|
11
|
+
type: file
|
12
|
+
template_path: <%= File.join(templates_directory_path, "README.template") %>
|
13
|
+
output_path: <%= File.join(app, "README") %>
|
14
|
+
|
15
|
+
app_lib_init_file:
|
16
|
+
type: file
|
17
|
+
template_path: <%= File.join(templates_directory_path, "app_init.rb.template") %>
|
18
|
+
output_path: <%= File.join(app, "lib", "#{app}.rb") %>
|
19
|
+
|
20
|
+
app_lib_app_gem_file:
|
21
|
+
type: file
|
22
|
+
template_path: <%= File.join(templates_directory_path, "app_gem.rb.template") %>
|
23
|
+
output_path: <%= File.join(app, "lib", app, "#{app}.rb") %>
|
24
|
+
|
25
|
+
<% if rspec? %>
|
26
|
+
|
27
|
+
spec_directory:
|
28
|
+
type: directory
|
29
|
+
output_path: <%= File.join(app, "spec", "lib", app) %>
|
30
|
+
|
31
|
+
spec_helper_file:
|
32
|
+
type: file
|
33
|
+
template_path: <%= File.join(templates_directory_path, "spec", "spec_helper.rb.template") %>
|
34
|
+
output_path: <%= File.join(app, "spec", "spec_helper.rb") %>
|
35
|
+
|
36
|
+
spec_opts_file:
|
37
|
+
type: file
|
38
|
+
template_path: <%= File.join(templates_directory_path, "spec", "spec.opts.template") %>
|
39
|
+
output_path: <%= File.join(app, "spec", "spec.opts") %>
|
40
|
+
|
41
|
+
spec_file:
|
42
|
+
type: file
|
43
|
+
template_path: <%= File.join(templates_directory_path, "spec", "app_spec.rb.template") %>
|
44
|
+
output_path: <%= File.join(app, "spec", "lib", app, "#{app}_spec.rb") %>
|
45
|
+
|
46
|
+
<% elsif unit? %>
|
47
|
+
|
48
|
+
unit_directory:
|
49
|
+
type: directory
|
50
|
+
output_path: <%= File.join(app, "test", "unit") %>
|
51
|
+
|
52
|
+
unit_helper:
|
53
|
+
type: file
|
54
|
+
template_path: <%= File.join(templates_directory_path, "test", "test_helper.rb.template") %>
|
55
|
+
output_path: <%= File.join(app, "test", "test_helper.rb") %>
|
56
|
+
|
57
|
+
unit_file:
|
58
|
+
type: file
|
59
|
+
template_path: <%= File.join(templates_directory_path, "test", "test_app.rb.template") %>
|
60
|
+
output_path: <%= File.join(app, "test", "unit", "test_#{app}.rb") %>
|
61
|
+
|
62
|
+
<% end %>
|
@@ -7,8 +7,16 @@ require 'find'
|
|
7
7
|
require 'rubyforge'
|
8
8
|
require 'rubygems'
|
9
9
|
require 'rubygems/gem_runner'
|
10
|
+
<%- if rspec? -%>
|
10
11
|
require 'spec'
|
11
12
|
require 'spec/rake/spectask'
|
13
|
+
<%- elsif unit? -%>
|
14
|
+
begin
|
15
|
+
require 'shoulda'
|
16
|
+
require 'shoulda/tasks'
|
17
|
+
rescue LoadError
|
18
|
+
end
|
19
|
+
<%- end -%>
|
12
20
|
|
13
21
|
@gem_spec = Gem::Specification.new do |s|
|
14
22
|
s.name = "<%= app %>"
|
@@ -18,12 +26,12 @@ require 'spec/rake/spectask'
|
|
18
26
|
s.author = "<%= author %>"
|
19
27
|
s.email = ""
|
20
28
|
s.homepage = ""
|
21
|
-
s.test_files = FileList['test/**/*']
|
22
29
|
s.files = FileList['lib/**/*.*', 'README', 'doc/**/*.*', 'bin/**/*.*']
|
23
30
|
s.require_paths = ['lib']
|
24
31
|
s.extra_rdoc_files = ["README"]
|
25
32
|
s.has_rdoc = true
|
26
33
|
s.rubyforge_project = "<%= app %>"
|
34
|
+
# s.test_files = FileList['spec/**/*']
|
27
35
|
#s.bindir = "bin"
|
28
36
|
#s.executables << "<%= app %>"
|
29
37
|
#s.add_dependency("", "")
|
@@ -43,6 +51,7 @@ Rake::GemPackageTask.new(@gem_spec) do |pkg|
|
|
43
51
|
rm_f FileList['pkg/**/*.*']
|
44
52
|
end
|
45
53
|
|
54
|
+
<%- if rspec? -%>
|
46
55
|
# rake
|
47
56
|
desc 'Run specifications'
|
48
57
|
Spec::Rake::SpecTask.new(:default) do |t|
|
@@ -50,6 +59,15 @@ Spec::Rake::SpecTask.new(:default) do |t|
|
|
50
59
|
t.spec_opts << '--options' << opts if File.exists?(opts)
|
51
60
|
t.spec_files = Dir.glob('spec/**/*_spec.rb')
|
52
61
|
end
|
62
|
+
<%- elsif unit? -%>
|
63
|
+
task :default => :test
|
64
|
+
Rake::TestTask.new { |t|
|
65
|
+
t.libs << "test"
|
66
|
+
t.pattern = 'test/unit/**/test_*.rb'
|
67
|
+
t.verbose = true
|
68
|
+
t.warning = true
|
69
|
+
}
|
70
|
+
<%- end -%>
|
53
71
|
|
54
72
|
desc 'regenerate the gemspec'
|
55
73
|
task :gemspec do
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# specify an alternate gems repository
|
2
|
+
# source: http://local_mirror.example.com
|
3
|
+
# specify a different gem command
|
4
|
+
# gem_command: 'jruby -S gem'
|
5
|
+
gems:
|
6
|
+
# - name: postgres
|
7
|
+
# # the version to use
|
8
|
+
# version: '0.7.1'
|
9
|
+
# # use a specfic source URL
|
10
|
+
# source: 'http://mongrel.rubyforge.org/releases'
|
11
|
+
# # load with GemTools.load_gems
|
12
|
+
# load: true
|
13
|
+
# # any extra config that needs to be passed to gem install
|
14
|
+
# config: '--with-pgsql-include-dir=/usr/local/pgsql/include --with-pgsql-lib-dir=/usr/local/pgsql/lib'
|
15
|
+
# # require name is different than the gem name
|
16
|
+
# require_name: foo-bar
|
17
|
+
# - name: mislav-will_paginate
|
18
|
+
# version: 2.3.2
|
19
|
+
# require_name:
|
20
|
+
# - will_paginate
|
21
|
+
# - will_paginate/collection
|
22
|
+
# - will_paginate/array
|
23
|
+
# load: true
|
data/lib/gemstub.rb
ADDED
@@ -0,0 +1,5 @@
|
|
1
|
+
require 'genosaurus'
|
2
|
+
require "mack-facets"
|
3
|
+
require File.join(File.dirname(__FILE__), 'gemstub', 'tools')
|
4
|
+
require File.join(File.dirname(__FILE__), 'gemstub', 'gem_generator', 'gem_generator')
|
5
|
+
require File.join(File.dirname(__FILE__), 'gemstub', 'yaml_generator', 'yaml_generator')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemstub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Bates
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-02-22 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -51,14 +51,22 @@ extensions: []
|
|
51
51
|
extra_rdoc_files: []
|
52
52
|
|
53
53
|
files:
|
54
|
-
- lib/gem_generator.rb
|
55
|
-
- lib/
|
56
|
-
- lib/templates
|
57
|
-
- lib/templates
|
58
|
-
- lib/templates
|
59
|
-
- lib/templates
|
60
|
-
- lib/templates
|
61
|
-
- lib/templates
|
54
|
+
- lib/gemstub/gem_generator/gem_generator.rb
|
55
|
+
- lib/gemstub/gem_generator/manifest.yml
|
56
|
+
- lib/gemstub/gem_generator/templates/app_gem.rb.template
|
57
|
+
- lib/gemstub/gem_generator/templates/app_init.rb.template
|
58
|
+
- lib/gemstub/gem_generator/templates/Rakefile.template
|
59
|
+
- lib/gemstub/gem_generator/templates/README.template
|
60
|
+
- lib/gemstub/gem_generator/templates/spec/app_spec.rb.template
|
61
|
+
- lib/gemstub/gem_generator/templates/spec/spec.opts.template
|
62
|
+
- lib/gemstub/gem_generator/templates/spec/spec_helper.rb.template
|
63
|
+
- lib/gemstub/gem_generator/templates/test/test_app.rb.template
|
64
|
+
- lib/gemstub/gem_generator/templates/test/test_helper.rb.template
|
65
|
+
- lib/gemstub/tools.rb
|
66
|
+
- lib/gemstub/yaml_generator/manifest.yml
|
67
|
+
- lib/gemstub/yaml_generator/templates/gems.yml.template
|
68
|
+
- lib/gemstub/yaml_generator/yaml_generator.rb
|
69
|
+
- lib/gemstub.rb
|
62
70
|
- README
|
63
71
|
has_rdoc: false
|
64
72
|
homepage: http://www.mackframework.com
|
@@ -67,7 +75,6 @@ rdoc_options: []
|
|
67
75
|
|
68
76
|
require_paths:
|
69
77
|
- lib
|
70
|
-
- lib
|
71
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
79
|
requirements:
|
73
80
|
- - ">="
|
data/lib/gem_generator.rb
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|