gem_hadar 0.0.0

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/.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
+