parka 0.1.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.
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
+