gem_hadar 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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