rjack-tarpit 1.1.0 → 1.2.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.
Files changed (5) hide show
  1. data/History.rdoc +7 -0
  2. data/README.rdoc +1 -1
  3. data/Rakefile +11 -0
  4. data/lib/rjack-tarpit.rb +64 -9
  5. metadata +2 -2
data/History.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ === 1.2.0 (2010-3-6)
2
+ * Add RJack::TarPit::BaseStrategy.test_line_match for common
3
+ version, etc. file checks. See example usage in this gem's Rakefile.
4
+ * Add :java_platform flag for setting gem specification platform to java.
5
+ * Add available Gem.configuration in gem command tasks.
6
+ * Fix tag task outside of RJack repo.
7
+
1
8
  === 1.1.0 (2009-12-19)
2
9
  * Add :rdoc_diagram option to use Graphviz dot --diagram with rdoc.
3
10
  * Added gem :push (gemcutter) and :install tasks
data/README.rdoc CHANGED
@@ -53,7 +53,7 @@ Besides the explicit gem dependencies, TarPit requires:
53
53
 
54
54
  == License
55
55
 
56
- Copyright (c) 2009 David Kellum
56
+ Copyright (c) 2009-2010 David Kellum
57
57
 
58
58
  Licensed under the Apache License, Version 2.0 (the "License"); you
59
59
  may not use this file except in compliance with the License. You
data/Rakefile CHANGED
@@ -36,4 +36,15 @@ t.specify do |h|
36
36
  h.remote_rdoc_dir = 'tarpit'
37
37
  end
38
38
 
39
+ task :check_history_version do
40
+ t.test_line_match( 'History.rdoc', /^==/, / #{t.version} / )
41
+ end
42
+ task :check_history_date do
43
+ t.test_line_match( 'History.rdoc', /^==/, /\([0-9\-]+\)$/ )
44
+ end
45
+
46
+ task :gem => [ :check_history_version ]
47
+ task :tag => [ :check_history_version, :check_history_date ]
48
+ task :push => [ :check_history_date ]
49
+
39
50
  t.define_tasks
data/lib/rjack-tarpit.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (C) 2009 David Kellum
2
+ # Copyright (C) 2009-2010 David Kellum
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you
5
5
  # may not use this file except in compliance with the License. You
@@ -21,7 +21,7 @@ module RJack
21
21
  # Provides glue for Rake, Hoe, and Maven by generating tasks.
22
22
  module TarPit
23
23
  # Module version
24
- VERSION = '1.1.0'
24
+ VERSION = '1.2.0'
25
25
 
26
26
  # Construct new task generator by gem name, version, and flags. A descendant
27
27
  # of BaseStrategy is returned.
@@ -30,6 +30,7 @@ module RJack
30
30
  # set in Rakefile.
31
31
  # :no_assembly:: One jar created from source, jars=[default_jar],
32
32
  # no assembly setup in maven.
33
+ # :java_platform:: Set gem specification platform to java.
33
34
  def self.new( name, version, *flags )
34
35
  if flags.include?( :jars_from_assembly )
35
36
  JarsFromAssembly.new( name, version, flags )
@@ -77,6 +78,7 @@ module RJack
77
78
  @jar_dest = File.join( 'lib', @name )
78
79
  @hoe_specifier = :unset
79
80
  @rdoc_diagram = false
81
+ @spec = nil
80
82
  end
81
83
 
82
84
  # Return a default jar name built from name and version
@@ -114,6 +116,38 @@ module RJack
114
116
  define_gem_tasks
115
117
  end
116
118
 
119
+ # Test that all specified files have at least one line matching
120
+ # line_regex, and that first line additionally matches (optional)
121
+ # pass_line_regex.
122
+ # ==== Parameters
123
+ # files<~to_a>:: List of files to test
124
+ # line_regex<Regexp>:: Test first matching line
125
+ # pass_line_regex:: Further test on match line (default: match all)
126
+ # ==== Raises
127
+ # RuntimeError:: on test failure.
128
+ def test_line_match( files, line_regex, pass_line_regex = // )
129
+ files.to_a.each do |mfile|
130
+ found = false
131
+ open( mfile ) do |mf|
132
+ num = 0
133
+ mf.each do |line|
134
+ num += 1
135
+ if line =~ line_regex
136
+ found = true
137
+ unless line =~ pass_line_regex
138
+ raise( "%s:%d: %s !~ %s" %
139
+ [ mfile, num, line.strip, pass_line_regex.inspect ] )
140
+ end
141
+ break
142
+ end
143
+ end
144
+ end
145
+ unless found
146
+ raise "#{mfile}: #{line_regex.inspect} not found"
147
+ end
148
+ end
149
+ end
150
+
117
151
  # Define task for dynamically generating Manifest.txt, by
118
152
  # appending array returned by the given block to specified files, or
119
153
  # contents of Manifest.static.
@@ -197,7 +231,7 @@ module RJack
197
231
  desc "git tag current version"
198
232
  task :tag do
199
233
  tag = [ name, version ].join( '-' )
200
- dname = File.dirname( __FILE__ )
234
+ dname = Rake.original_dir
201
235
  dname = '.' if Dir.getwd == dname
202
236
  sh( "git status --only #{dname}" ) do |ok,res|
203
237
  if ok #changes present
@@ -213,18 +247,36 @@ module RJack
213
247
  desc "gem push (gemcutter)"
214
248
  task :push => [ :gem ] do
215
249
  require 'rubygems'
216
- cm = Gem::CommandManager::instance
217
- cm.run( [ 'push', '-V', "pkg/#{name}-#{version}.gem" ] )
250
+ cm = Gem::CommandManager.instance
251
+ cm.run( gem_config( 'push' ) +
252
+ [ '-V', gem_file ] )
218
253
  end
219
254
 
220
255
  desc "gem install (default install dir)"
221
256
  task :install => [ :gem ] do
222
257
  require 'rubygems'
223
- cm = Gem::CommandManager::instance
224
- cm.run( [ 'install', '--no-ri', '-V', "pkg/#{name}-#{version}.gem" ] )
258
+ cm = Gem::CommandManager.instance
259
+ cm.run( gem_config( 'install' ) +
260
+ [ '--no-ri', '-V', gem_file ] )
225
261
  end
226
262
  end
227
263
 
264
+ def gem_file
265
+ parts = [ name, version ]
266
+ if @spec
267
+ pform = @spec.spec_extras[ :platform ]
268
+ parts << 'java' if ( pform && pform.os == 'java' )
269
+ end
270
+
271
+ "pkg/#{ parts.join( '-' ) }.gem"
272
+ end
273
+
274
+ def gem_config( command )
275
+ cargs = Gem.configuration[ command ]
276
+ cargs = cargs.is_a?( String ) ? cargs.split( ' ' ) : cargs.to_a
277
+ [ command ] + cargs
278
+ end
279
+
228
280
  # Setup Hoe via Hoe.spec
229
281
  def hoe_specify
230
282
 
@@ -236,13 +288,16 @@ module RJack
236
288
  unless @hoe_specifier == :unset
237
289
  tp = self
238
290
  outer = @hoe_specifier
239
- Hoe.spec( @name ) do |h|
240
- h.version = tp.version
291
+ jplat = @flags.include?( :java_platform )
292
+ @spec = Hoe.spec( @name ) do |h|
241
293
 
294
+ h.version = tp.version
242
295
  h.readme_file = 'README.rdoc' if File.exist?( 'README.rdoc' )
243
296
  h.history_file = 'History.rdoc' if File.exist?( 'History.rdoc' )
244
297
  h.extra_rdoc_files = FileList[ '*.rdoc' ]
245
298
 
299
+ h.spec_extras[ :platform ] = Gem::Platform.new( "java" ) if jplat
300
+
246
301
  outer.call( h )
247
302
  end
248
303
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rjack-tarpit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kellum
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-19 00:00:00 -08:00
12
+ date: 2010-03-06 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency