universe 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.
Files changed (6) hide show
  1. data/README.md +27 -0
  2. data/Rakefile +42 -0
  3. data/universe.rb +347 -0
  4. data/universe_dsl.rb +56 -0
  5. data/version +1 -0
  6. metadata +294 -0
@@ -0,0 +1,27 @@
1
+ = Universe
2
+
3
+ Use this to set up a fully functional ruby stack:
4
+
5
+ gem install universe
6
+
7
+ You can also easily install just a subset:
8
+
9
+ gem install universe-core
10
+ gem install universe-rails
11
+ gem install univers-sinatra
12
+ ...
13
+
14
+ Up to date list of universes: https://rubygems.org/gems/universe
15
+ Also, for the complete gem list, see `universe.rb`.
16
+
17
+ Should install without hassle on 1.8.7, 1.9.2 (and later), JRuby 1.6.0 (and later), Rubinius 1.2.0 (and later).
18
+ Might work on other Rubies, too.
19
+
20
+ == Common, but not included (install manually)
21
+
22
+ Due to compatibility issues, these gems are missing:
23
+
24
+ * `hwia`
25
+ * `ruby_debug`
26
+ * `ruby-prof`
27
+ * `ruby2ruby`
@@ -0,0 +1,42 @@
1
+ require 'rake/clean'
2
+ CLEAN.push(*FileList["*.gem"])
3
+
4
+ universe = nil
5
+ version = File.read('version')
6
+
7
+ task :universe do
8
+ require 'universe_dsl'
9
+ universe = Universe.new :universe, version
10
+ universe.load 'universe.rb'
11
+ end
12
+
13
+ desc "increases version number"
14
+ task :bump_version do
15
+ version.succ!
16
+ File.open('version', 'w') { |f| f << version }
17
+ end
18
+
19
+ desc "build all the gems"
20
+ task :build => :universe do
21
+ universe.build_all
22
+ end
23
+
24
+ desc "display generated gemspecs"
25
+ task :gemspecs => :universe do
26
+ puts universe.map { |u| "\n" << ("#"*80) << "\n# spec for #{u.name}\n" << u.to_spec.to_ruby }
27
+ end
28
+
29
+ desc 'push all gems in folder'
30
+ task :push do
31
+ gems = Dir.glob('*.gem')
32
+ gems.reject! do |f|
33
+ case result = `gem push #{f}`
34
+ when /Success|gem yank/ then true
35
+ when /Please specify dependencies that exist on RubyGems.org: universe-/ then false
36
+ else fail result
37
+ end
38
+ end
39
+ end
40
+
41
+ desc 'clean, bump_version, build, release'
42
+ task :release => [:clean, :bump_version, :build, :push]
@@ -0,0 +1,347 @@
1
+ group :core do
2
+ gem 'backports'
3
+ gem 'bundler'
4
+ gem 'rake'
5
+ end
6
+
7
+ group :devtools do
8
+ gem 'gem-open'
9
+ gem 'gem-release'
10
+ gem 'hoe'
11
+ gem 'jeweler'
12
+ gem 'bond'
13
+ gem 'bcat'
14
+ gem 'cheat'
15
+ gem 'churn'
16
+ gem 'faraday'
17
+ gem 'ghost'
18
+ gem 'github'
19
+ gem 'hammertime'
20
+ gem 'hanna'
21
+ gem 'hanna-nouveau'
22
+ gem 'hirb'
23
+ gem 'htty'
24
+ gem 'jsonpretty'
25
+ gem 'livereload'
26
+ gem 'memprof'
27
+ gem 'metric_fu'
28
+ gem 'newgem'
29
+ gem 'octopi'
30
+ gem 'rake-compiler'
31
+ gem 'rdoc'
32
+ gem 'rip'
33
+ gem 'ripl'
34
+ gem 'rocco'
35
+ gem 'rubygems-test'
36
+ gem 'sdoc'
37
+ gem 'showoff'
38
+ gem 'whenever'
39
+ gem 'yard'
40
+ gem 'yard-rspec'
41
+
42
+ gem 'universe-testing'
43
+ gem 'universe-core'
44
+ end
45
+
46
+ # common stuff I don't want to have in core, but haven't split up into categories
47
+ group :common do
48
+ gem 'chronic'
49
+ gem 'bson'
50
+ gem 'crack'
51
+ gem 'universe-devtools'
52
+ gem 'capture_stdout'
53
+ gem 'curb'
54
+ gem 'diff-lcs'
55
+ gem 'directory_watcher'
56
+ gem 'em-http-request'
57
+ gem 'em-websocket'
58
+ gem 'escape_utils'
59
+ gem 'eventmachine'
60
+ gem 'extlib'
61
+ gem 'facets'
62
+ gem 'highline'
63
+ gem 'httparty'
64
+ gem 'http_parser.rb'
65
+ gem 'i18n'
66
+ gem 'json_pure'
67
+ gem 'log4r'
68
+ gem 'main'
69
+ gem 'mechanize'
70
+ gem 'mime-types'
71
+ gem 'mutter'
72
+ gem 'net-ldap'
73
+ gem 'net-scp'
74
+ gem 'net-ssh'
75
+ gem 'nokogiri'
76
+ gem 'oauth'
77
+ gem 'oauth2'
78
+ gem 'omniauth'
79
+ gem 'open4'
80
+ gem 'prawn'
81
+ gem 'preforker'
82
+ gem 'redgreen'
83
+ gem 'rest-client'
84
+ gem 'rev'
85
+ gem 'rubigen'
86
+ gem 'ruby-fsevent'
87
+ gem 'ruby-hmac'
88
+ gem 'ruby-openid'
89
+ gem 'ruby_parser'
90
+ gem 'rubyzip'
91
+ gem 'spawn'
92
+ gem 'stackdeck'
93
+ gem 'starling'
94
+ gem 'thor'
95
+ gem 'trollop'
96
+ gem 'typhoeus'
97
+ gem 'tzinfo'
98
+ gem 'yajl-ruby'
99
+ end
100
+
101
+ group :testing do
102
+ gem 'rspec'
103
+ gem 'fuubar'
104
+ gem 'mspec'
105
+ gem 'bacon'
106
+ gem 'test-unit'
107
+ gem 'test-spec'
108
+ gem 'minitest'
109
+ gem 'protest'
110
+ gem 'contest'
111
+ gem 'cucumber'
112
+ gem 'steak'
113
+ gem 'ZenTest'
114
+ gem 'delorean'
115
+ gem 'database_cleaner'
116
+ gem 'spork'
117
+ gem 'autotest-growl'
118
+ gem 'expectations'
119
+ gem 'fakefs'
120
+ gem 'faker'
121
+ gem 'fakeweb'
122
+ gem 'ffaker'
123
+ gem 'ffi'
124
+ gem 'flay'
125
+ gem 'flexmock'
126
+ gem 'flog'
127
+ gem 'heckle'
128
+ gem 'mocha'
129
+ gem 'rcov'
130
+ gem 'reek'
131
+ gem 'riot'
132
+ gem 'roodi'
133
+ gem 'rr'
134
+ gem 'selenium-client'
135
+ gem 'selenium-webdriver'
136
+ gem 'shoulda'
137
+ gem 'test_declarative'
138
+ gem 'timecop'
139
+ gem 'webmock'
140
+
141
+ gem 'universe-rack-testing'
142
+ gem 'universe-rails-testing'
143
+ end
144
+
145
+ group :rack do
146
+ gem 'http_router'
147
+ gem 'rack'
148
+ gem 'rack-abstract-format'
149
+ gem 'rack-accept-media-types'
150
+ gem 'rack-aggregate'
151
+ gem 'rack-bug'
152
+ gem 'rack-cache'
153
+ gem 'rack-contrib'
154
+ gem 'rack-cors'
155
+ gem 'rack-fiber_pool'
156
+ gem 'rack-flash'
157
+ gem 'rack-html5'
158
+ gem 'rack-mount'
159
+ gem 'rack-nocache'
160
+ gem 'rack-offline'
161
+ gem 'rack-openid'
162
+ gem 'rack-pack'
163
+ gem 'rack-respond_to'
164
+ gem 'rum'
165
+ gem 'shotgun'
166
+ gem 'toto'
167
+ gem 'url_mount'
168
+ gem 'usher'
169
+ gem 'warden'
170
+
171
+ group :testing do
172
+ gem 'rack-test'
173
+ gem 'capybara'
174
+ gem 'selenium'
175
+ gem 'celerity'
176
+ gem 'culerity'
177
+ gem 'capybara-envjs'
178
+ gem 'envjs'
179
+ gem 'jasmine'
180
+ gem 'sham_rack'
181
+ gem 'webrat'
182
+ end
183
+
184
+ gem 'universe-webserver'
185
+ end
186
+
187
+ group :db do
188
+ gem 'activerecord'
189
+ gem 'couchrest'
190
+ gem 'database_cleaner'
191
+ gem 'datamapper'
192
+ gem 'dm-sqlite-adapter'
193
+ gem 'do_mysql'
194
+ gem 'do_sqlite3'
195
+ gem 'em-redis'
196
+ gem 'hiredis'
197
+ gem 'memcache-client'
198
+ gem 'mongo'
199
+ gem 'mongo_ext'
200
+ gem 'mongo_mapper'
201
+ gem 'mongoid'
202
+ gem 'mysql'
203
+ gem 'mysql2'
204
+ gem 'mysqlplus'
205
+ gem 'nest'
206
+ gem 'ohm'
207
+ gem 'pg'
208
+ gem 'postgres'
209
+ gem 'redis'
210
+ gem 'redis-store'
211
+ gem 'remcached'
212
+ gem 'sequel'
213
+ gem 'sqlite3-ruby'
214
+ gem 'taps'
215
+ end
216
+
217
+ group :webframeworks do
218
+ gem 'camping'
219
+ gem 'cramp'
220
+ gem 'halcyon'
221
+ gem 'padrino'
222
+ gem 'merb'
223
+ gem 'ramaze'
224
+ gem 'universe-rails'
225
+ gem 'universe-sinatra'
226
+ end
227
+
228
+ group :webserver do
229
+ gem 'ebb'
230
+ gem 'eventmachine_httpserver'
231
+ gem 'fcgi'
232
+ gem 'heroku'
233
+ gem 'mongrel'
234
+ gem 'passenger'
235
+ gem 'rainbows'
236
+ gem 'scgi'
237
+ gem 'serv'
238
+ gem 'serverside'
239
+ gem 'sunshowers'
240
+ gem 'swiftiply'
241
+ gem 'thin'
242
+ gem 'unicorn'
243
+ gem 'webroar'
244
+ gem 'zbatery'
245
+ end
246
+
247
+ group :staticweb do
248
+ gem 'jekyll'
249
+ gem 'nanoc3'
250
+ gem 'staticmatic'
251
+ gem 'universe-templates'
252
+ end
253
+
254
+ group :rails do
255
+ gem 'rails'
256
+ gem 'devise'
257
+ gem 'formtastic'
258
+ gem 'will_paginate'
259
+
260
+ group :testing do
261
+ gem 'factory_girl'
262
+ gem 'object_daddy'
263
+ gem 'populator'
264
+ gem 'rspec-rails'
265
+ gem 'universe-rack-testing'
266
+ end
267
+
268
+ gem 'universe-rack', version
269
+ gem 'universe-db', version
270
+ end
271
+
272
+ group :javascript do
273
+ gem 'coffee-script'
274
+ gem 'envjs'
275
+ gem 'harmony'
276
+ gem 'jasmine'
277
+ gem 'johnson'
278
+ gem 'taka'
279
+ gem 'therubyracer'
280
+ end
281
+
282
+ group :parsing do
283
+ gem 'ghostwheel'
284
+ gem 'parslet'
285
+ gem 'pegarus'
286
+ gem 'racc'
287
+ gem 'rexical'
288
+ gem 'sexp_path'
289
+ gem 'sexp_processor'
290
+ gem 'stemmer'
291
+ gem 'treetop'
292
+ end
293
+
294
+ group :templates do
295
+ gem 'tilt'
296
+ gem 'builder'
297
+ gem 'bluecloth'
298
+ gem 'bureaucrat'
299
+ gem 'coderay'
300
+ gem 'coffee-script'
301
+ gem 'compass'
302
+ gem 'erubis'
303
+ gem 'github-markup'
304
+ gem 'haml'
305
+ gem 'haml-more'
306
+ gem 'less'
307
+ gem 'liquid'
308
+ gem 'markaby'
309
+ gem 'maruku'
310
+ gem 'mustache'
311
+ gem 'radius'
312
+ gem 'rdiscount'
313
+ gem 'rdoc'
314
+ gem 'rubypants'
315
+ gem 'slim'
316
+ gem 'templater'
317
+ gem 'temple'
318
+ gem 'text-format'
319
+ gem 'text-hyphen'
320
+ gem 'wrapt'
321
+ end
322
+
323
+ group :sinatra do
324
+ gem 'big_band'
325
+ gem 'sinatra-accept-params'
326
+ gem 'sinatra-advanced-routes'
327
+ gem 'sinatra-bundles'
328
+ gem 'sinatra-cache'
329
+ gem 'sinatra-compass'
330
+ gem 'sinatra-config-file'
331
+ gem 'sinatra-ditties'
332
+ gem 'sinatra-dm'
333
+ gem 'sinatra-extension'
334
+ gem 'sinatra-logger'
335
+ gem 'sinatra_more'
336
+ gem 'sinatra-more-server'
337
+ gem 'sinatra-namespace'
338
+ gem 'sinatra-redis'
339
+ gem 'sinatra-reloader'
340
+ gem 'sinatra-settings'
341
+ gem 'sinatra-sugar'
342
+ gem 'sinatra-tags'
343
+ gem 'sinatra-test-helper'
344
+ gem 'sinatras-hat'
345
+ gem 'yard-sinatra'
346
+ gem 'universe-templates'
347
+ end
@@ -0,0 +1,56 @@
1
+ require 'rubygems/specification'
2
+ require 'rubygems/builder'
3
+
4
+ class Universe
5
+ include Enumerable
6
+ attr_reader :name, :galaxies, :version
7
+
8
+ def initialize(name, version = nil, &block)
9
+ @name, @galaxies, @version, @gems = name.to_s, [], version, []
10
+ instance_eval(&block) if block
11
+ end
12
+
13
+ def load(file)
14
+ instance_eval File.read(file)
15
+ end
16
+
17
+ def group(name, &block)
18
+ @galaxies << Universe.new("#{@name}-#{name}", version, &block)
19
+ end
20
+
21
+ def gem(*args)
22
+ @gems << args
23
+ end
24
+
25
+ def build
26
+ Gem::Builder.new(to_spec).build
27
+ end
28
+
29
+ def build_all
30
+ each(false) { |galaxy| galaxy.build }
31
+ end
32
+
33
+ def each(first = true)
34
+ return enum_for(:each) unless block_given?
35
+ yield self if first
36
+ @galaxies.each { |galaxy| galaxy.each { |g| yield g }}
37
+ yield self unless first
38
+ end
39
+
40
+ def to_spec
41
+ Gem::Specification.new do |s|
42
+ s.name = name
43
+ s.version = version
44
+ s.summary = "gem install #{name}"
45
+ s.author = "Konstantin Haase"
46
+ s.email = 'k.haase@finn.de'
47
+ s.files = `git ls-files`.split("\n")
48
+ @galaxies.each do |galaxy|
49
+ s.add_dependency(galaxy.name, galaxy.version)
50
+ end
51
+ @gems.each do |args|
52
+ s.add_dependency(*args)
53
+ end
54
+ end
55
+ end
56
+ end
data/version ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
metadata ADDED
@@ -0,0 +1,294 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: universe
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
11
+ platform: ruby
12
+ authors:
13
+ - Konstantin Haase
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-12 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: universe-core
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 25
30
+ segments:
31
+ - 0
32
+ - 1
33
+ - 1
34
+ version: 0.1.1
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: universe-devtools
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - "="
44
+ - !ruby/object:Gem::Version
45
+ hash: 25
46
+ segments:
47
+ - 0
48
+ - 1
49
+ - 1
50
+ version: 0.1.1
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: universe-common
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - "="
60
+ - !ruby/object:Gem::Version
61
+ hash: 25
62
+ segments:
63
+ - 0
64
+ - 1
65
+ - 1
66
+ version: 0.1.1
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: universe-testing
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - "="
76
+ - !ruby/object:Gem::Version
77
+ hash: 25
78
+ segments:
79
+ - 0
80
+ - 1
81
+ - 1
82
+ version: 0.1.1
83
+ type: :runtime
84
+ version_requirements: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ name: universe-rack
87
+ prerelease: false
88
+ requirement: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - "="
92
+ - !ruby/object:Gem::Version
93
+ hash: 25
94
+ segments:
95
+ - 0
96
+ - 1
97
+ - 1
98
+ version: 0.1.1
99
+ type: :runtime
100
+ version_requirements: *id005
101
+ - !ruby/object:Gem::Dependency
102
+ name: universe-db
103
+ prerelease: false
104
+ requirement: &id006 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - "="
108
+ - !ruby/object:Gem::Version
109
+ hash: 25
110
+ segments:
111
+ - 0
112
+ - 1
113
+ - 1
114
+ version: 0.1.1
115
+ type: :runtime
116
+ version_requirements: *id006
117
+ - !ruby/object:Gem::Dependency
118
+ name: universe-webframeworks
119
+ prerelease: false
120
+ requirement: &id007 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - "="
124
+ - !ruby/object:Gem::Version
125
+ hash: 25
126
+ segments:
127
+ - 0
128
+ - 1
129
+ - 1
130
+ version: 0.1.1
131
+ type: :runtime
132
+ version_requirements: *id007
133
+ - !ruby/object:Gem::Dependency
134
+ name: universe-webserver
135
+ prerelease: false
136
+ requirement: &id008 !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - "="
140
+ - !ruby/object:Gem::Version
141
+ hash: 25
142
+ segments:
143
+ - 0
144
+ - 1
145
+ - 1
146
+ version: 0.1.1
147
+ type: :runtime
148
+ version_requirements: *id008
149
+ - !ruby/object:Gem::Dependency
150
+ name: universe-staticweb
151
+ prerelease: false
152
+ requirement: &id009 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - "="
156
+ - !ruby/object:Gem::Version
157
+ hash: 25
158
+ segments:
159
+ - 0
160
+ - 1
161
+ - 1
162
+ version: 0.1.1
163
+ type: :runtime
164
+ version_requirements: *id009
165
+ - !ruby/object:Gem::Dependency
166
+ name: universe-rails
167
+ prerelease: false
168
+ requirement: &id010 !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - "="
172
+ - !ruby/object:Gem::Version
173
+ hash: 25
174
+ segments:
175
+ - 0
176
+ - 1
177
+ - 1
178
+ version: 0.1.1
179
+ type: :runtime
180
+ version_requirements: *id010
181
+ - !ruby/object:Gem::Dependency
182
+ name: universe-javascript
183
+ prerelease: false
184
+ requirement: &id011 !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - "="
188
+ - !ruby/object:Gem::Version
189
+ hash: 25
190
+ segments:
191
+ - 0
192
+ - 1
193
+ - 1
194
+ version: 0.1.1
195
+ type: :runtime
196
+ version_requirements: *id011
197
+ - !ruby/object:Gem::Dependency
198
+ name: universe-parsing
199
+ prerelease: false
200
+ requirement: &id012 !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - "="
204
+ - !ruby/object:Gem::Version
205
+ hash: 25
206
+ segments:
207
+ - 0
208
+ - 1
209
+ - 1
210
+ version: 0.1.1
211
+ type: :runtime
212
+ version_requirements: *id012
213
+ - !ruby/object:Gem::Dependency
214
+ name: universe-templates
215
+ prerelease: false
216
+ requirement: &id013 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - "="
220
+ - !ruby/object:Gem::Version
221
+ hash: 25
222
+ segments:
223
+ - 0
224
+ - 1
225
+ - 1
226
+ version: 0.1.1
227
+ type: :runtime
228
+ version_requirements: *id013
229
+ - !ruby/object:Gem::Dependency
230
+ name: universe-sinatra
231
+ prerelease: false
232
+ requirement: &id014 !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - "="
236
+ - !ruby/object:Gem::Version
237
+ hash: 25
238
+ segments:
239
+ - 0
240
+ - 1
241
+ - 1
242
+ version: 0.1.1
243
+ type: :runtime
244
+ version_requirements: *id014
245
+ description:
246
+ email: k.haase@finn.de
247
+ executables: []
248
+
249
+ extensions: []
250
+
251
+ extra_rdoc_files: []
252
+
253
+ files:
254
+ - README.md
255
+ - Rakefile
256
+ - universe.rb
257
+ - universe_dsl.rb
258
+ - version
259
+ has_rdoc: true
260
+ homepage:
261
+ licenses: []
262
+
263
+ post_install_message:
264
+ rdoc_options: []
265
+
266
+ require_paths:
267
+ - lib
268
+ required_ruby_version: !ruby/object:Gem::Requirement
269
+ none: false
270
+ requirements:
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ hash: 3
274
+ segments:
275
+ - 0
276
+ version: "0"
277
+ required_rubygems_version: !ruby/object:Gem::Requirement
278
+ none: false
279
+ requirements:
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ hash: 3
283
+ segments:
284
+ - 0
285
+ version: "0"
286
+ requirements: []
287
+
288
+ rubyforge_project:
289
+ rubygems_version: 1.4.1
290
+ signing_key:
291
+ specification_version: 3
292
+ summary: gem install universe
293
+ test_files: []
294
+