markbates-gemstub 1.0.17

Sign up to get free protection for your applications and to get access to all the features.
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