gem_hadar 0.0.2 → 0.0.3

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 CHANGED
@@ -1,3 +1,3 @@
1
- .*.sw[pon]
2
1
  pkg
3
2
  Gemfile.lock
3
+ .*.sw[pon]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -2,14 +2,14 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{gem_hadar}
5
- s.version = "0.0.2"
5
+ s.version = "0.0.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Florian Frank"]
9
9
  s.date = %q{2011-07-16}
10
10
  s.description = %q{This library contains some useful functionality to support the development of Ruby Gems}
11
11
  s.email = %q{flori@ping.de}
12
- s.extra_rdoc_files = ["README.rdoc"]
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/gem_hadar.rb", "lib/gem_hadar/version.rb"]
13
13
  s.files = [".gitignore", "Gemfile", "LICENSE", "README.rdoc", "Rakefile", "VERSION", "gem_hadar.gemspec", "lib/gem_hadar.rb", "lib/gem_hadar/version.rb"]
14
14
  s.homepage = %q{http://github.com/flori/gem_hadar}
15
15
  s.rdoc_options = ["--title", "GemHadar - Library for the development of Ruby Gems", "--main", "README.rdoc"]
@@ -21,14 +21,14 @@ Gem::Specification.new do |s|
21
21
  s.specification_version = 3
22
22
 
23
23
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
24
- s.add_development_dependency(%q<gem_hadar>, ["~> 0.0.2"])
24
+ s.add_development_dependency(%q<gem_hadar>, ["~> 0.0.3"])
25
25
  s.add_runtime_dependency(%q<spruz>, ["~> 0.2.10"])
26
26
  s.add_runtime_dependency(%q<dslkit>, ["~> 0.2.6"])
27
27
  s.add_runtime_dependency(%q<sdoc>, ["~> 0.2.20"])
28
28
  s.add_runtime_dependency(%q<rcov>, ["~> 0.9.9"])
29
29
  s.add_runtime_dependency(%q<rake>, ["~> 0.9.2"])
30
30
  else
31
- s.add_dependency(%q<gem_hadar>, ["~> 0.0.2"])
31
+ s.add_dependency(%q<gem_hadar>, ["~> 0.0.3"])
32
32
  s.add_dependency(%q<spruz>, ["~> 0.2.10"])
33
33
  s.add_dependency(%q<dslkit>, ["~> 0.2.6"])
34
34
  s.add_dependency(%q<sdoc>, ["~> 0.2.20"])
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.add_dependency(%q<rake>, ["~> 0.9.2"])
37
37
  end
38
38
  else
39
- s.add_dependency(%q<gem_hadar>, ["~> 0.0.2"])
39
+ s.add_dependency(%q<gem_hadar>, ["~> 0.0.3"])
40
40
  s.add_dependency(%q<spruz>, ["~> 0.2.10"])
41
41
  s.add_dependency(%q<dslkit>, ["~> 0.2.6"])
42
42
  s.add_dependency(%q<sdoc>, ["~> 0.2.20"])
@@ -12,6 +12,7 @@ require 'rake/clean'
12
12
  require 'rake/testtask'
13
13
  require 'rcov/rcovtask'
14
14
  require 'dslkit/polite'
15
+ require 'set'
15
16
  require 'gem_hadar/version'
16
17
 
17
18
  def GemHadar(&block)
@@ -59,16 +60,28 @@ class GemHadar
59
60
  has_to_be_set :description
60
61
  end
61
62
 
62
- dsl_accessor :require_path, 'lib'
63
+ dsl_accessor :require_paths do Set['lib'] end
64
+
65
+ def require_path(path = nil)
66
+ if path
67
+ self.require_paths = Set[path]
68
+ else
69
+ require_paths.first
70
+ end
71
+ end
63
72
 
64
73
  dsl_accessor :readme
65
74
 
66
75
  dsl_accessor :title
67
76
 
68
- dsl_accessor :ignore_files do @ignore_files = [] end
77
+ dsl_accessor :ignore_files do Set[] end
69
78
 
70
79
  dsl_accessor :test_dir
71
80
 
81
+ dsl_accessor :bindir
82
+
83
+ dsl_accessor :executables do Set[] end
84
+
72
85
  dsl_accessor :test_files do
73
86
  if test_dir
74
87
  FileList[File.join(test_dir, '**/*.rb')]
@@ -77,6 +90,16 @@ class GemHadar
77
90
  end
78
91
  end
79
92
 
93
+ dsl_accessor :doc_files do
94
+ FileList[File.join('lib/**/*.rb')] + FileList[File.join('ext/**/*.c')]
95
+ end
96
+
97
+ dsl_accessor :extensions do FileList['ext/**/extconf.rb'] end
98
+
99
+ dsl_accessor :make do
100
+ ENV['MAKE'] || %w[gmake make].find { |c| system(c, '-v') }
101
+ end
102
+
80
103
  dsl_accessor :files do
81
104
  `git ls-files`.split("\n")
82
105
  end
@@ -110,7 +133,7 @@ class GemHadar
110
133
  def install_library(&block)
111
134
  @install_library_block = lambda do
112
135
  desc 'Install executable/library into site_ruby directories'
113
- task :install, &block
136
+ task :install => :prepare_install, &block
114
137
  end
115
138
  end
116
139
 
@@ -134,7 +157,7 @@ class GemHadar
134
157
  if args.empty?
135
158
  ignore_files
136
159
  else
137
- ignore_files.push(*args)
160
+ args.each { |a| ignore_files << a }
138
161
  end
139
162
  end
140
163
 
@@ -163,6 +186,9 @@ class GemHadar
163
186
  s.description = description
164
187
  s.files = files
165
188
  s.test_files = test_files
189
+ extensions.full? { |e| s.extensions = e }
190
+ bindir.full? { |b| s.bindir = b }
191
+ executables.full?(:to_a) { |e| s.executables = e }
166
192
 
167
193
  s.add_development_dependency('gem_hadar', "~>#{VERSION}")
168
194
  for d in @development_dependencies
@@ -172,7 +198,7 @@ class GemHadar
172
198
  s.add_dependency(*d)
173
199
  end
174
200
 
175
- s.require_path = require_path
201
+ s.require_paths = require_paths.to_a
176
202
 
177
203
  if title
178
204
  s.rdoc_options << '--title' << title
@@ -183,7 +209,7 @@ class GemHadar
183
209
  s.rdoc_options << '--main' << readme
184
210
  s.extra_rdoc_files << readme
185
211
  end
186
-
212
+ s.extra_rdoc_files.concat doc_files
187
213
  end
188
214
  end
189
215
 
@@ -242,7 +268,7 @@ EOT
242
268
  else
243
269
  cmd << " --title '#{name.camelize} - #{summary}'"
244
270
  end
245
- cmd << ' ' << Dir['lib/**/*.rb'] * ' '
271
+ cmd << ' ' << doc_files * ' '
246
272
  if readme
247
273
  cmd << " #{readme}"
248
274
  end
@@ -251,25 +277,29 @@ EOT
251
277
  end
252
278
 
253
279
  def test_task
254
- Rake::TestTask.new do |t|
255
- t.libs << test_dir
280
+ tt = Rake::TestTask.new(:run_tests) do |t|
281
+ t.libs << test_dir << require_paths
256
282
  t.test_files = test_files
257
283
  t.verbose = true
258
284
  end
285
+ desc 'Run the tests'
286
+ task :test => [ (:compile if extensions.full?), tt.name ].compact
259
287
  end
260
288
 
261
289
  def rcov_task
262
- Rcov::RcovTask.new do |t|
263
- t.libs << test_dir
290
+ rt = Rcov::RcovTask.new(:run_rcov) do |t|
291
+ t.libs << test_dir << require_paths
264
292
  t.test_files = test_files
265
293
  t.verbose = true
266
294
  t.rcov_opts = %W[-x '\\b#{test_dir}\/' -x '\\bgems\/']
267
295
  end
296
+ desc 'Run the rcov code coverage tests'
297
+ task :rcov => [ (:compile if extensions.full?), rt.name ].compact
268
298
  end
269
299
 
270
300
  def write_ignore_file
271
301
  File.write('.gitignore') do |output|
272
- output.puts ignore
302
+ output.puts *ignore
273
303
  end
274
304
  end
275
305
 
@@ -299,6 +329,23 @@ EOT
299
329
  end
300
330
  end
301
331
 
332
+ def compile_task
333
+ for file in extensions
334
+ dir = File.dirname(file)
335
+ clean File.join(dir, 'Makefile'), File.join(dir, '*.{bundle,o,so}')
336
+ end
337
+ desc "Compile extensions: #{extensions * ', '}"
338
+ task :compile do
339
+ for file in extensions
340
+ dir, file = File.split(file)
341
+ cd dir do
342
+ ruby file
343
+ sh make
344
+ end
345
+ end
346
+ end
347
+ end
348
+
302
349
  def create_all_tasks
303
350
  default_task
304
351
  build_task
@@ -315,6 +362,12 @@ EOT
315
362
  version_tag_task
316
363
  write_ignore_file
317
364
  write_gemfile
365
+ if extensions.full?
366
+ compile_task
367
+ task :prepare_install => :compile
368
+ else
369
+ task :prepare_install
370
+ end
318
371
  self
319
372
  end
320
373
  end
@@ -1,6 +1,6 @@
1
1
  class GemHadar
2
2
  # GemHadar version
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_hadar
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Florian Frank
@@ -26,12 +26,12 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 27
29
+ hash: 25
30
30
  segments:
31
31
  - 0
32
32
  - 0
33
- - 2
34
- version: 0.0.2
33
+ - 3
34
+ version: 0.0.3
35
35
  type: :development
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
@@ -122,6 +122,8 @@ extensions: []
122
122
 
123
123
  extra_rdoc_files:
124
124
  - README.rdoc
125
+ - lib/gem_hadar.rb
126
+ - lib/gem_hadar/version.rb
125
127
  files:
126
128
  - .gitignore
127
129
  - Gemfile