gemit 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,2 @@
1
+ *swp
2
+ *gem
@@ -0,0 +1,10 @@
1
+ REAME
2
+ =====
3
+
4
+ Installation
5
+ ------------
6
+ gem install gemit
7
+
8
+ Usage
9
+ -----
10
+ gemit [gem name]
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'gemit'
5
+
6
+ if ARGV.length != 1
7
+ puts "Usage: #{File.basename(__FILE__)} [gem name] (verbose)"
8
+ Process.exit
9
+ end
10
+
11
+ gemit = Gemit.new(ARGV[0])
12
+ gemit.generate
13
+
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
4
+ require "gemit/version"
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "gemit"
8
+ s.version = Gemit::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = `git config --get user.name`
11
+ s.email = `git config --get user.email`
12
+ s.homepage = %q{http://github.com/kitofr/gemit}
13
+
14
+ s.summary = %q{A simple gem scaffolder}
15
+ s.description = %q{Scaffolds some things I most of the time want when creating a gem}
16
+
17
+ s.rubyforge_project = "gemit"
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+ s.required_ruby_version = '>= 1.8.7'
24
+ end
@@ -0,0 +1,117 @@
1
+ require 'fileutils'
2
+ require 'gemit/string_ext'
3
+
4
+ class Gemit
5
+ attr_reader :name
6
+
7
+ def initialize(name)
8
+ @name = name
9
+ @verbose = true
10
+ end
11
+
12
+ def generate
13
+ raise "Name cannot contain white spaces!" if @name =~ /\s/
14
+ raise "Folder already exists #{@name}" if File.exists? @name
15
+
16
+ FileUtils.mkdir_p(File.join(@name, "bin"), :verbose => @verbose)
17
+ FileUtils.mkdir_p(File.join(@name, "lib"), :verbose => @verbose)
18
+ FileUtils.mkdir_p(File.join(@name, "lib", @name), :verbose => @verbose)
19
+
20
+ create_file(gemspec_file, gemspec)
21
+ create_file(readme_file, readme)
22
+ create_file(version_file, version)
23
+ create_file(lib_file, lib)
24
+ create_file(executable_file, executable)
25
+ end
26
+
27
+ private
28
+
29
+ def create_file(name, content)
30
+ file_name = File.join(@name, name)
31
+ File.open(file_name, 'w') {|f| f.write(content) }
32
+ puts "created #{file_name}" if @verbose
33
+ end
34
+
35
+ def gemspec_file
36
+ "#{@name}.gemspec"
37
+ end
38
+
39
+ def readme_file
40
+ "README.md"
41
+ end
42
+
43
+ def version_file
44
+ File.join("lib", @name, "version.rb").to_s
45
+ end
46
+
47
+ def lib_file
48
+ File.join("lib", "#{@name}.rb")
49
+ end
50
+
51
+ def executable_file
52
+ File.join("bin", "#{@name}")
53
+ end
54
+
55
+ def gemspec
56
+ <<GEMSPEC
57
+ # encoding: utf-8
58
+
59
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
60
+ require "#{@name}/version"
61
+
62
+ Gem::Specification.new do |s|
63
+ s.name = "#{@name}"
64
+ s.version = #{@name.classify}::VERSION
65
+ s.platform = Gem::Platform::RUBY
66
+ s.authors = `git config --get user.name`
67
+ s.email = `git config --get user.email`
68
+ s.homepage = %q{}
69
+
70
+ s.summary = %q{}
71
+ s.description = %q{}
72
+
73
+ s.rubyforge_project = "#{@name}"
74
+
75
+ s.files = `git ls-files`.split("\\n")
76
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\\n")
77
+ s.executables = `git ls-files -- bin/*`.split("\\n").map{ |f| File.basename(f) }
78
+ s.require_paths = ["lib"]
79
+ s.required_ruby_version = '>= 1.8.7'
80
+ end
81
+ GEMSPEC
82
+ end
83
+
84
+ def readme
85
+ <<README
86
+ #{@name.classify}
87
+ #{@name.classify.length.times.collect{'='}}
88
+
89
+ Intallation
90
+ -----------
91
+ * gem install #{@name}
92
+ README
93
+ end
94
+ def version
95
+ <<VERSION
96
+ class #{@name.classify}
97
+ VERSION = "0.0.1"
98
+ end
99
+ VERSION
100
+ end
101
+ def lib
102
+ <<LIB
103
+ class #{@name.classify}
104
+ #Fill in the gaps :P
105
+ end
106
+ LIB
107
+ end
108
+ def executable
109
+ <<EXECUTABLE
110
+ #!/usr/bin/env ruby
111
+
112
+ $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
113
+ require '#{@name}'
114
+
115
+ EXECUTABLE
116
+ end
117
+ end
@@ -0,0 +1,5 @@
1
+ class String
2
+ def classify
3
+ self.gsub /^(\w)/ do |w| w.upcase end
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module Gemit
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gemit
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - |
14
+ kitofr
15
+
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-06-29 00:00:00 +02:00
21
+ default_executable:
22
+ dependencies: []
23
+
24
+ description: Scaffolds some things I most of the time want when creating a gem
25
+ email: |
26
+ kitofr@gmail.com
27
+
28
+ executables:
29
+ - gemit
30
+ extensions: []
31
+
32
+ extra_rdoc_files: []
33
+
34
+ files:
35
+ - .gitignore
36
+ - README.md
37
+ - bin/gemit
38
+ - gemit.gemspec
39
+ - lib/gemit.rb
40
+ - lib/gemit/string_ext.rb
41
+ - lib/gemit/version.rb
42
+ has_rdoc: true
43
+ homepage: http://github.com/kitofr/gemit
44
+ licenses: []
45
+
46
+ post_install_message:
47
+ rdoc_options: []
48
+
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 57
57
+ segments:
58
+ - 1
59
+ - 8
60
+ - 7
61
+ version: 1.8.7
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ hash: 3
68
+ segments:
69
+ - 0
70
+ version: "0"
71
+ requirements: []
72
+
73
+ rubyforge_project: gemit
74
+ rubygems_version: 1.3.7
75
+ signing_key:
76
+ specification_version: 3
77
+ summary: A simple gem scaffolder
78
+ test_files: []
79
+