gem_hadar 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .*.sw[pon]
2
+ pkg
3
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # vim: set filetype=ruby et sw=2 ts=2:
2
+
3
+ source :rubygems
4
+
5
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ Copyright (c) 2010 Florian Frank
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
16
+ CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
17
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,28 @@
1
+ # vim: set filetype=ruby et sw=2 ts=2:
2
+
3
+ require 'gem_hadar'
4
+
5
+ GemHadar do
6
+ name 'gem_hadar'
7
+ module_type :class
8
+ author 'Florian Frank'
9
+ email 'flori@ping.de'
10
+ homepage "http://github.com/flori/#{name}"
11
+ summary 'Library for the development of Ruby Gems'
12
+ description 'This library contains some useful functionality to support the development of Ruby Gems'
13
+ ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock'
14
+ readme 'README.rdoc'
15
+
16
+ dependency 'spruz', '~>0.2.10'
17
+ dependency 'dslkit', '~>0.2.6'
18
+ dependency 'sdoc', '~>0.2.20'
19
+
20
+ install_library do
21
+ libdir = CONFIG["sitelibdir"]
22
+ install("lib/#{name}.rb", libdir, :mode => 0644)
23
+ mkdir_p subdir = File.join(libdir, name)
24
+ for f in Dir["lib/#{name}/*.rb"]
25
+ install(f, subdir)
26
+ end
27
+ end
28
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
data/gem_hadar.gemspec ADDED
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{gem_hadar}
5
+ s.version = "0.0.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Florian Frank"]
9
+ s.date = %q{2011-07-15}
10
+ s.description = %q{This library contains some useful functionality to support the development of Ruby Gems}
11
+ s.email = %q{flori@ping.de}
12
+ s.extra_rdoc_files = ["README.rdoc"]
13
+ s.files = [".gitignore", "Gemfile", "LICENSE", "README.rdoc", "Rakefile", "VERSION", "gem_hadar.gemspec", "lib/gem_hadar.rb", "lib/gem_hadar/version.rb"]
14
+ s.homepage = %q{http://github.com/flori/gem_hadar}
15
+ s.rdoc_options = ["--title", "GemHadar - Library for the development of Ruby Gems", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubygems_version = %q{1.6.2}
18
+ s.summary = %q{Library for the development of Ruby Gems}
19
+
20
+ if s.respond_to? :specification_version then
21
+ s.specification_version = 3
22
+
23
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
24
+ s.add_development_dependency(%q<gem_hadar>, ["~> 0.0.0"])
25
+ s.add_runtime_dependency(%q<spruz>, ["~> 0.2.10"])
26
+ s.add_runtime_dependency(%q<dslkit>, ["~> 0.2.6"])
27
+ s.add_runtime_dependency(%q<sdoc>, ["~> 0.2.20"])
28
+ else
29
+ s.add_dependency(%q<gem_hadar>, ["~> 0.0.0"])
30
+ s.add_dependency(%q<spruz>, ["~> 0.2.10"])
31
+ s.add_dependency(%q<dslkit>, ["~> 0.2.6"])
32
+ s.add_dependency(%q<sdoc>, ["~> 0.2.20"])
33
+ end
34
+ else
35
+ s.add_dependency(%q<gem_hadar>, ["~> 0.0.0"])
36
+ s.add_dependency(%q<spruz>, ["~> 0.2.10"])
37
+ s.add_dependency(%q<dslkit>, ["~> 0.2.6"])
38
+ s.add_dependency(%q<sdoc>, ["~> 0.2.20"])
39
+ end
40
+ end
@@ -0,0 +1,8 @@
1
+ class GemHadar
2
+ # GemHadar version
3
+ VERSION = '0.0.0'
4
+ VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
+ VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
+ VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
7
+ VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
8
+ end
data/lib/gem_hadar.rb ADDED
@@ -0,0 +1,318 @@
1
+
2
+ require 'rubygems'
3
+ require 'spruz/xt'
4
+ require 'rbconfig'
5
+ include Config
6
+ require 'rake'
7
+ begin
8
+ require 'rubygems/package_task'
9
+ rescue LoadError
10
+ end
11
+ require 'rake/clean'
12
+ require 'rake/testtask'
13
+ require 'rcov/rcovtask'
14
+ require 'dslkit/polite'
15
+ require 'gem_hadar/version'
16
+
17
+ def GemHadar(&block)
18
+ GemHadar.new(&block).create_all_tasks
19
+ end
20
+
21
+ class GemHadar
22
+ include Config
23
+ include Rake::DSL
24
+ extend DSLKit::DSLAccessor
25
+
26
+ def initialize(&block)
27
+ @dependencies = []
28
+ @development_dependencies = []
29
+ block and instance_eval(&block)
30
+ end
31
+
32
+ def has_to_be_set(name)
33
+ fail "#{self.class}: #{name} has to be set for gem"
34
+ end
35
+
36
+ dsl_accessor :name do
37
+ has_to_be_set :name
38
+ end
39
+
40
+ dsl_accessor :module_type, :module
41
+
42
+ dsl_accessor :author do
43
+ has_to_be_set :author
44
+ end
45
+
46
+ dsl_accessor :email do
47
+ has_to_be_set :email
48
+ end
49
+
50
+ dsl_accessor :homepage do
51
+ has_to_be_set :homepage
52
+ end
53
+
54
+ dsl_accessor :summary do
55
+ has_to_be_set :summary
56
+ end
57
+
58
+ dsl_accessor :description do
59
+ has_to_be_set :description
60
+ end
61
+
62
+ dsl_accessor :require_path, 'lib'
63
+
64
+ dsl_accessor :readme
65
+
66
+ dsl_accessor :title
67
+
68
+ dsl_accessor :ignore_files do @ignore_files = [] end
69
+
70
+ dsl_accessor :test_dir
71
+
72
+ dsl_accessor :test_files do
73
+ if test_dir
74
+ FileList[File.join(test_dir, '**/*.rb')]
75
+ else
76
+ FileList.new
77
+ end
78
+ end
79
+
80
+ dsl_accessor :files do
81
+ `git ls-files`.split("\n")
82
+ end
83
+
84
+ dsl_accessor :path_name do name end
85
+
86
+ dsl_accessor :version do
87
+ begin
88
+ File.read('VERSION').chomp
89
+ rescue Errno::ENOENT
90
+ has_to_be_set :version
91
+ end
92
+ end
93
+
94
+ dsl_accessor :default_task_dependencies, [ :gemspec, :test ]
95
+
96
+ def default_task
97
+ desc 'Default task'
98
+ task :default => default_task_dependencies
99
+ end
100
+
101
+ dsl_accessor :build_task_dependencies, [ :clobber, :gemspec, :package, :'version:tag' ]
102
+
103
+ def build_task
104
+ desc 'Build task (builds all packages for a release)'
105
+ task :build => build_task_dependencies
106
+ end
107
+
108
+ def install_library(&block)
109
+ @install_library_block = lambda do
110
+ desc 'Install executable/library into site_ruby directories'
111
+ task :install, &block
112
+ end
113
+ end
114
+
115
+ def clean(*args)
116
+ if args.empty?
117
+ CLEAN
118
+ else
119
+ CLEAN.include(*args)
120
+ end
121
+ end
122
+
123
+ def clobber(*args)
124
+ if args.empty?
125
+ CLOBBER
126
+ else
127
+ CLOBBER.include(*args)
128
+ end
129
+ end
130
+
131
+ def ignore(*args)
132
+ if args.empty?
133
+ ignore_files
134
+ else
135
+ ignore_files.push(*args)
136
+ end
137
+ end
138
+
139
+ def dependency(*args)
140
+ @dependencies << args
141
+ end
142
+
143
+ def development_dependency(*args)
144
+ @development_dependencies << args
145
+ end
146
+
147
+ def gems_install_task(&block)
148
+ block ||= lambda { sh 'bundle install' }
149
+ desc 'Install all gems from the Gemfile'
150
+ task :'gems:install', &block
151
+ end
152
+
153
+ def gemspec
154
+ Gem::Specification.new do |s|
155
+ s.name = name
156
+ s.version = version
157
+ s.author = author
158
+ s.email = email
159
+ s.homepage = homepage
160
+ s.summary = summary
161
+ s.description = description
162
+ s.files = files
163
+ s.test_files = test_files
164
+
165
+ s.add_development_dependency('gem_hadar', "~>#{VERSION}")
166
+ for d in @development_dependencies
167
+ s.add_development_dependency(*d)
168
+ end
169
+ for d in @dependencies
170
+ s.add_dependency(*d)
171
+ end
172
+
173
+ s.require_path = require_path
174
+
175
+ if title
176
+ s.rdoc_options << '--title' << title
177
+ else
178
+ s.rdoc_options << '--title' << "#{name.camelize} - #{summary}"
179
+ end
180
+ if readme
181
+ s.rdoc_options << '--main' << readme
182
+ s.extra_rdoc_files << readme
183
+ end
184
+
185
+ end
186
+ end
187
+
188
+ def version_task
189
+ desc m = "Writing version information for #{name}-#{version}"
190
+ task :version do
191
+ puts m
192
+ mkdir_p dir = File.join('lib', path_name)
193
+ File.write(File.join(dir, 'version.rb')) do |v|
194
+ v.puts <<EOT
195
+ #{module_type} #{path_name.camelize}
196
+ # #{path_name.camelize} version
197
+ VERSION = '#{version}'
198
+ VERSION_ARRAY = VERSION.split(/\\./).map { |x| x.to_i } # :nodoc:
199
+ VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
200
+ VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
201
+ VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
202
+ end
203
+ EOT
204
+ end
205
+ end
206
+ end
207
+
208
+ def gemspec_task
209
+ desc 'Create a gemspec file'
210
+ task :gemspec => :version do
211
+ filename = "#{name}.gemspec"
212
+ warn "Writing to #{filename.inspect} for #{version}"
213
+ File.open(filename, 'w') do |output|
214
+ output.write gemspec.to_ruby
215
+ end
216
+ end
217
+ end
218
+
219
+ def package_task
220
+ Gem::PackageTask.new(gemspec) do |pkg|
221
+ pkg.need_tar = true
222
+ pkg.package_files += files
223
+ end
224
+ end
225
+
226
+ def install_library_task
227
+ @install_library_block.full?(:call)
228
+ end
229
+
230
+ def doc_task
231
+ clean 'doc'
232
+ desc "Creating documentation"
233
+ task :doc do
234
+ cmd = 'sdoc'
235
+ if readme
236
+ cmd << " --main '#{readme}'"
237
+ end
238
+ if title
239
+ cmd << " --title '#{title}'"
240
+ else
241
+ cmd << " --title '#{name.camelize} - #{summary}'"
242
+ end
243
+ cmd << ' ' << Dir['lib/**/*.rb'] * ' '
244
+ if readme
245
+ cmd << " #{readme}"
246
+ end
247
+ sh cmd
248
+ end
249
+ end
250
+
251
+ def test_task
252
+ Rake::TestTask.new do |t|
253
+ t.libs << test_dir
254
+ t.test_files = test_files
255
+ t.verbose = true
256
+ end
257
+ end
258
+
259
+ def rcov_task
260
+ Rcov::RcovTask.new do |t|
261
+ t.libs << test_dir
262
+ t.test_files = test_files
263
+ t.verbose = true
264
+ t.rcov_opts = %W[-x '\\b#{test_dir}\/' -x '\\bgems\/']
265
+ end
266
+ end
267
+
268
+ def write_ignore_file
269
+ File.write('.gitignore') do |output|
270
+ output.puts ignore
271
+ end
272
+ end
273
+
274
+ def write_gemfile
275
+ File.write('Gemfile') do |output|
276
+ output.puts <<EOT
277
+ # vim: set filetype=ruby et sw=2 ts=2:
278
+
279
+ source :rubygems
280
+
281
+ gemspec
282
+ EOT
283
+ end
284
+ end
285
+
286
+ def version_tag_task
287
+ namespace :version do
288
+ desc "Tag this commit as version #{version}"
289
+ task :tag do
290
+ begin
291
+ sh "git tag -a -m 'Version #{version}' #{'-f' if ENV['FORCE']} v#{version}"
292
+ rescue RuntimeError => e
293
+ warn "Call rake with FORCE=1 to overwrite version tag #{version}"
294
+ exit 1
295
+ end
296
+ end
297
+ end
298
+ end
299
+
300
+ def create_all_tasks
301
+ default_task
302
+ build_task
303
+ version_task
304
+ gemspec_task
305
+ gems_install_task
306
+ doc_task
307
+ if test_dir
308
+ test_task
309
+ rcov_task
310
+ end
311
+ package_task
312
+ install_library_task
313
+ version_tag_task
314
+ write_ignore_file
315
+ write_gemfile
316
+ self
317
+ end
318
+ end
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gem_hadar
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 0
10
+ version: 0.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Florian Frank
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-07-15 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: gem_hadar
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 31
30
+ segments:
31
+ - 0
32
+ - 0
33
+ - 0
34
+ version: 0.0.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: spruz
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ - 2
49
+ - 10
50
+ version: 0.2.10
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: dslkit
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 27
62
+ segments:
63
+ - 0
64
+ - 2
65
+ - 6
66
+ version: 0.2.6
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: sdoc
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 63
78
+ segments:
79
+ - 0
80
+ - 2
81
+ - 20
82
+ version: 0.2.20
83
+ type: :runtime
84
+ version_requirements: *id004
85
+ description: This library contains some useful functionality to support the development of Ruby Gems
86
+ email: flori@ping.de
87
+ executables: []
88
+
89
+ extensions: []
90
+
91
+ extra_rdoc_files:
92
+ - README.rdoc
93
+ files:
94
+ - .gitignore
95
+ - Gemfile
96
+ - LICENSE
97
+ - README.rdoc
98
+ - Rakefile
99
+ - VERSION
100
+ - gem_hadar.gemspec
101
+ - lib/gem_hadar.rb
102
+ - lib/gem_hadar/version.rb
103
+ has_rdoc: true
104
+ homepage: http://github.com/flori/gem_hadar
105
+ licenses: []
106
+
107
+ post_install_message:
108
+ rdoc_options:
109
+ - --title
110
+ - GemHadar - Library for the development of Ruby Gems
111
+ - --main
112
+ - README.rdoc
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ requirements: []
134
+
135
+ rubyforge_project:
136
+ rubygems_version: 1.6.2
137
+ signing_key:
138
+ specification_version: 3
139
+ summary: Library for the development of Ruby Gems
140
+ test_files: []
141
+