markbates-gemstub 1.0.17

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/README ADDED
File without changes
@@ -0,0 +1,80 @@
1
+ #!/usr/local/bin/ruby
2
+ require 'rubygems'
3
+ require 'fileutils'
4
+ require 'optparse'
5
+ require 'optparse/time'
6
+ require 'ostruct'
7
+ require 'pp'
8
+ require "mack-facets"
9
+ require 'genosaurus'
10
+ require 'erb'
11
+
12
+ app = ARGV[0]
13
+ raise "You must specify a name for this gem!" if app.nil?
14
+
15
+ options = OpenStruct.new
16
+ options.version = "0.0.1"
17
+ options.author = (ENV["USERNAME"] || ENV["USER"])
18
+ options.force = false
19
+
20
+ opts = OptionParser.new do |opts|
21
+ opts.banner = "Usage: gemstub [options]"
22
+
23
+ opts.on("-v [initial version]") do |v|
24
+ options.version = v
25
+ end
26
+
27
+ opts.on("-a [author name]") do |v|
28
+ options.author = v
29
+ end
30
+
31
+ opts.on("-f [force]") do |v|
32
+ options.force = true
33
+ end
34
+
35
+ end
36
+
37
+ opts.parse!(ARGV)
38
+
39
+ # puts "options = #{options.inspect}"
40
+
41
+ app = app.downcase.gsub(" ", "_")
42
+
43
+ if options.force
44
+ begin
45
+ FileUtils.rm_rf app
46
+ rescue Exception => e
47
+ puts e
48
+ end
49
+ end
50
+
51
+ require File.join(File.dirname(__FILE__), "..", "lib", "gem_generator")
52
+
53
+ GemGenerator.run("app" => app, "version" => options.version, "author" => options.author)
54
+
55
+ # puts "create directory: #{app}"
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
@@ -0,0 +1,15 @@
1
+ class GemGenerator < Genosaurus
2
+
3
+ def app
4
+ param(:app)
5
+ end
6
+
7
+ def version
8
+ param(:version)
9
+ end
10
+
11
+ def author
12
+ param(:author)
13
+ end
14
+
15
+ end
@@ -0,0 +1,3 @@
1
+ README
2
+ ========================================================================
3
+ <%= app %> was developed by: <%= author %>
@@ -0,0 +1,108 @@
1
+ require 'rake'
2
+ require 'rake/gempackagetask'
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'rake/rdoctask'
6
+ require 'find'
7
+ require 'rubyforge'
8
+ require 'rubygems'
9
+ require 'rubygems/gem_runner'
10
+ require 'spec'
11
+ require 'spec/rake/spectask'
12
+
13
+ @gem_spec = Gem::Specification.new do |s|
14
+ s.name = "<%= app %>"
15
+ s.version = "<%= version %>"
16
+ s.summary = "<%= app %>"
17
+ s.description = "<%= app %> was developed by: <%= author %>"
18
+ s.author = "<%= author %>"
19
+ s.email = ""
20
+ s.homepage = ""
21
+
22
+ s.test_files = FileList['test/**/*']
23
+
24
+ s.files = FileList['lib/**/*.*', 'README', 'doc/**/*.*', 'bin/**/*.*']
25
+ s.require_paths << 'lib'
26
+
27
+ #s.bindir = "bin"
28
+ #s.executables << "<%= app %>"
29
+ #s.default_executable = ""
30
+ #s.add_dependency("", "")
31
+ #s.add_dependency("", "")
32
+ #s.extensions << ""
33
+ s.extra_rdoc_files = ["README"]
34
+ s.has_rdoc = true
35
+ #s.platform = "Gem::Platform::Ruby"
36
+ #s.required_ruby_version = ">= 1.8.6"
37
+ #s.requirements << "An ice cold beer."
38
+ #s.requirements << "Some free time!"
39
+ s.rubyforge_project = "<%= app %>"
40
+ end
41
+
42
+ # rake package
43
+ Rake::GemPackageTask.new(@gem_spec) do |pkg|
44
+ pkg.need_zip = false
45
+ pkg.need_tar = false
46
+ rm_f FileList['pkg/**/*.*']
47
+ File.open(File.join(File.dirname(__FILE__), '<%= app %>.gemspec'), 'w') {|f| f.puts @gem_spec.to_ruby}
48
+ end
49
+
50
+ # rake
51
+ desc 'Run specifications'
52
+ Spec::Rake::SpecTask.new(:default) do |t|
53
+ opts = File.join(File.dirname(__FILE__), "test", 'spec.opts')
54
+ t.spec_opts << '--options' << opts if File.exists?(opts)
55
+ t.spec_files = Dir.glob('test/**/*_spec.rb')
56
+ end
57
+
58
+ desc "Install the gem"
59
+ task :install => [:package] do |t|
60
+ sudo = ENV['SUDOLESS'] == 'true' || RUBY_PLATFORM =~ /win32|cygwin/ ? '' : 'sudo'
61
+ puts `#{sudo} gem install #{File.join("pkg", @gem_spec.name)}-#{@gem_spec.version}.gem --no-update-sources --no-ri --no-rdoc`
62
+ end
63
+
64
+ desc "Release the gem"
65
+ task :release => :install do |t|
66
+ begin
67
+ ac_path = File.join(ENV["HOME"], ".rubyforge", "auto-config.yml")
68
+ if File.exists?(ac_path)
69
+ fixed = File.open(ac_path).read.gsub(" ~: {}\n\n", '')
70
+ fixed.gsub!(/ !ruby\/object:Gem::Version \? \n.+\n.+\n\n/, '')
71
+ puts "Fixing #{ac_path}..."
72
+ File.open(ac_path, "w") {|f| f.puts fixed}
73
+ end
74
+ begin
75
+ rf = RubyForge.new
76
+ rf.configure
77
+ rf.login
78
+ rf.add_release(@gem_spec.rubyforge_project, @gem_spec.name, @gem_spec.version, File.join("pkg", "#{@gem_spec.name}-#{@gem_spec.version}.gem"))
79
+ rescue Exception => e
80
+ if e.message.match("Invalid package_id") || e.message.match("no <package_id> configured for")
81
+ puts "You need to create the package!"
82
+ rf.create_package(@gem_spec.rubyforge_project, @gem_spec.name)
83
+ rf.add_release(@gem_spec.rubyforge_project, @gem_spec.name, @gem_spec.version, File.join("pkg", "#{@gem_spec.name}-#{@gem_spec.version}.gem"))
84
+ else
85
+ raise e
86
+ end
87
+ end
88
+ rescue Exception => e
89
+ if e.message == "You have already released this version."
90
+ puts e
91
+ else
92
+ raise e
93
+ end
94
+ end
95
+ end
96
+
97
+
98
+ Rake::RDocTask.new do |rd|
99
+ rd.main = "README"
100
+ files = Dir.glob("**/*.rb")
101
+ files = files.collect {|f| f unless f.match("test/") || f.match("doc/") }.compact
102
+ files << "README"
103
+ rd.rdoc_files = files
104
+ rd.rdoc_dir = "doc"
105
+ rd.options << "--line-numbers"
106
+ rd.options << "--inline-source"
107
+ rd.title = "<%= app %>"
108
+ end
@@ -0,0 +1,3 @@
1
+ Dir.glob(File.join(File.dirname(__FILE__), '<%= app %>', '**/*.rb')).each do |f|
2
+ require f
3
+ end
@@ -0,0 +1 @@
1
+ # Put your gem code here:
@@ -0,0 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
2
+
3
+ describe "<%= app.camelcase %>" do
4
+
5
+ end
@@ -0,0 +1,2 @@
1
+ --format specdoc
2
+ --colour
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', '<%= app %>')
@@ -0,0 +1,16 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class FooTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ # replace this with tests of your own.
12
+ def test_truth
13
+ assert true
14
+ end
15
+
16
+ end
@@ -0,0 +1,8 @@
1
+ require "test/unit"
2
+
3
+ class Test::Unit::TestCase
4
+
5
+ # place common methods, assertions, and other type things in this file so
6
+ # other tests will have access to them.
7
+
8
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: markbates-gemstub
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.17
5
+ platform: ruby
6
+ authors:
7
+ - Mark Bates
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-13 00:00:00 -08:00
13
+ default_executable: gemstub
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mack-facets
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: genosaurus
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ description:
34
+ email: mark@markbates.com
35
+ executables:
36
+ - gemstub
37
+ extensions: []
38
+
39
+ extra_rdoc_files: []
40
+
41
+ files:
42
+ - lib/gem_generator.rb
43
+ - lib/templates/%=app%/lib/%=app%/%=app%.rb.template
44
+ - lib/templates/%=app%/lib/%=app%.rb.template
45
+ - lib/templates/%=app%/Rakefile.template
46
+ - lib/templates/%=app%/README.template
47
+ - lib/templates/%=app%/test/lib/%=app%_spec.rb.template
48
+ - lib/templates/%=app%/test/spec.opts.template
49
+ - lib/templates/%=app%/test/spec_helper.rb.template
50
+ - README
51
+ - test/foo_test.rb
52
+ - test/test_helper.rb
53
+ - bin/gemstub
54
+ has_rdoc: false
55
+ homepage: http://www.mackframework.com
56
+ post_install_message:
57
+ rdoc_options: []
58
+
59
+ require_paths:
60
+ - lib
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ version:
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
73
+ version:
74
+ requirements: []
75
+
76
+ rubyforge_project: gemstub
77
+ rubygems_version: 1.2.0
78
+ signing_key:
79
+ specification_version: 2
80
+ summary: "Gemstub is a very simple tool for creating the stub code you need to build a gem. Usage: at a command prompt simply type: gemstub your_gem_name_here That's it, after that, you all you have to do is the actual coding of your gem! Enjoy!"
81
+ test_files:
82
+ - test/foo_test.rb
83
+ - test/test_helper.rb