parka 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/bin/parka ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.expand_path("../../lib", __FILE__)
4
+
5
+ require "parka/cli"
6
+
7
+ Parka::CLI.start
data/lib/parka/cli.rb ADDED
@@ -0,0 +1,46 @@
1
+ require "rubygems/dependency_installer"
2
+ require "parka"
3
+ require "thor"
4
+
5
+ class Parka::CLI < Thor
6
+
7
+ desc "build [GEMSPEC]", "Build the gem"
8
+
9
+ def build(gemspec_filename=nil)
10
+ gemspec = Gem::Specification.load(gemspec_filename || default_gemspec)
11
+ filename = "pkg/#{gemspec.file_name}"
12
+
13
+ FileUtils.mkdir_p File.dirname(filename)
14
+ Gem::Builder.new(gemspec).build
15
+ FileUtils.mv gemspec.file_name, filename
16
+
17
+ filename
18
+ end
19
+
20
+ desc "build [GEMSPEC]", "Build and install the gem"
21
+
22
+ def install(gemspec_filename=nil)
23
+ gemfile = build(gemspec_filename)
24
+ installer = Gem::DependencyInstaller.new
25
+ installer.install gemfile
26
+ say "Successfully installed #{File.basename(gemfile)}"
27
+ end
28
+
29
+ private ######################################################################
30
+
31
+ def chroot(dir)
32
+ FileUtils.mkdir_p dir
33
+
34
+ Dir.chdir(dir) { yield }
35
+ end
36
+
37
+ def default_gemspec
38
+ "#{File.basename(Dir.pwd)}.gemspec"
39
+ end
40
+
41
+ def error(message)
42
+ puts "ERROR: #{message}"
43
+ exit 1
44
+ end
45
+
46
+ end
@@ -0,0 +1,55 @@
1
+ require "bundler"
2
+ require "parka"
3
+ require "rdiscount"
4
+ require "rubygems"
5
+
6
+ class Parka::Specification < Gem::Specification
7
+
8
+ def self.new(&block)
9
+ spec = Gem::Specification.new(&block)
10
+
11
+ # set up some sensible defaults
12
+ spec.author ||= default_author
13
+ spec.email ||= default_email
14
+ spec.description ||= default_description
15
+ spec.rubyforge_project = "nowarning"
16
+
17
+ # default file list if none specified
18
+ spec.files = default_files if spec.files.empty?
19
+
20
+ # get dependencies from bundler
21
+ add_bundler_dependencies(spec)
22
+
23
+ spec
24
+ end
25
+
26
+ private ######################################################################
27
+
28
+ def self.default_author
29
+ %x{ git config user.name }
30
+ end
31
+
32
+ def self.default_email
33
+ %x{ git config user.email }
34
+ end
35
+
36
+ def self.default_description
37
+ RDiscount.new(File.read("README.md")).to_html
38
+ end
39
+
40
+ def self.default_files
41
+ %x{ git ls-files }.split("\n").select { |f| f.match(/^(bin|data|ext|lib|spec|test)/) }
42
+ end
43
+
44
+ def self.add_bundler_dependencies(spec)
45
+ groups = Bundler.definition.groups - [:development, :test]
46
+ deps = Bundler.definition.dependencies
47
+
48
+ runtime = deps.select { |d| (d.groups & groups).any? }
49
+ development = deps - runtime
50
+
51
+ development.each { |d| spec.add_development_dependency(d.name, d.requirement) }
52
+ runtime.each { |d| spec.add_dependency(d.name, d.requirement) }
53
+ end
54
+
55
+ end
data/lib/parka.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Parka
2
+ VERSION = "0.1.1"
3
+ end
4
+
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: parka
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
11
+ platform: ruby
12
+ authors:
13
+ - |
14
+ David Dollar
15
+
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2010-08-16 00:00:00 -04:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ prerelease: false
35
+ name: parka
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ prerelease: false
49
+ name: rake
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :development
62
+ prerelease: false
63
+ name: rcov
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ hash: 62196421
72
+ segments:
73
+ - 2
74
+ - 0
75
+ - 0
76
+ - beta
77
+ - 19
78
+ version: 2.0.0.beta.19
79
+ type: :development
80
+ prerelease: false
81
+ name: rspec
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :runtime
94
+ prerelease: false
95
+ name: rest-client
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ type: :runtime
108
+ prerelease: false
109
+ name: rdiscount
110
+ version_requirements: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :runtime
122
+ prerelease: false
123
+ name: thor
124
+ version_requirements: *id007
125
+ description: |
126
+ <p>= parka</p>
127
+
128
+ <p>== Installation</p>
129
+
130
+ <p> $ gem install parka</p>
131
+
132
+ <p>== Usage</p>
133
+
134
+ <p>Create a <code>projectname.gemspec</code> file in the root of your gem like this:</p>
135
+
136
+ <pre><code>require "rubygems"
137
+ require "parka/specification"
138
+
139
+ require "somegem"
140
+
141
+ Parka::Specification.new do |gem|
142
+ gem.name = "somegem"
143
+ gem.version = Somegem::VERSION
144
+ gem.summary = "A sample gem"
145
+ gem.homepage = "http://example.org"
146
+ end
147
+ </code></pre>
148
+
149
+ <p>== Building Gems</p>
150
+
151
+ <p>The gem can be built by using <code>gem build projectname.gemspec</code></p>
152
+
153
+ <p>== Using the parka command-line tool</p>
154
+
155
+ <pre><code>$ parka build
156
+ </code></pre>
157
+
158
+ email: |
159
+ <ddollar@gmail.com>
160
+
161
+ executables: []
162
+
163
+ extensions: []
164
+
165
+ extra_rdoc_files: []
166
+
167
+ files:
168
+ - bin/parka
169
+ - lib/parka.rb
170
+ - lib/parka/cli.rb
171
+ - lib/parka/specification.rb
172
+ has_rdoc: true
173
+ homepage: http://github.com/ddollar/parka
174
+ licenses: []
175
+
176
+ post_install_message:
177
+ rdoc_options: []
178
+
179
+ require_paths:
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ hash: 3
187
+ segments:
188
+ - 0
189
+ version: "0"
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ hash: 3
196
+ segments:
197
+ - 0
198
+ version: "0"
199
+ requirements: []
200
+
201
+ rubyforge_project: nowarning
202
+ rubygems_version: 1.3.7
203
+ signing_key:
204
+ specification_version: 3
205
+ summary: Simple gem building using bundler
206
+ test_files: []
207
+