rap 0.14.0 → 0.15.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/History CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.15.0 / 2009-12-05
2
+
3
+ * moved version information into separate file
4
+ * made Rap::Utils required by Rap::Task
5
+ * updates for Tap-0.19.0
6
+
1
7
  == 0.14.0 / 2009-06-17
2
8
 
3
9
  * added dependencies directly to Rap::Task
@@ -1,19 +1,21 @@
1
1
  Copyright (c) 2009, Regents of the University of Colorado.
2
2
 
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this
4
- software and associated documentation files (the "Software"), to deal in the Software
5
- without restriction, including without limitation the rights to use, copy, modify, merge,
6
- publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7
- to whom the Software is furnished to do so, subject to the following conditions:
3
+ Copyright (c) 2009, Simon Chiang.
8
4
 
9
- The above copyright notice and this permission notice shall be included in all copies or
10
- substantial portions of the Software.
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
11
 
12
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
16
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19
- OTHER DEALINGS IN THE SOFTWARE.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README CHANGED
@@ -14,7 +14,6 @@ Rap is a part of the {Tap-Suite}[http://tap.rubyforge.org/tap-suite].
14
14
  Check out these links for documentation, development, and bug tracking.
15
15
 
16
16
  * Website[http://tap.rubyforge.org]
17
- * Lighthouse[http://bahuvrihi.lighthouseapp.com/projects/9908-tap-task-application/tickets]
18
17
  * Github[http://github.com/bahuvrihi/tap/tree/master]
19
18
  * {Google Group}[http://groups.google.com/group/ruby-on-tap]
20
19
 
@@ -24,7 +23,7 @@ Usage is much like {Rake}[http://rake.rubyforge.org/]:
24
23
 
25
24
  [Rapfile]
26
25
 
27
- # ::desc your basic goodnight moon task
26
+ # :: your basic goodnight moon task
28
27
  # Says goodnight with a configurable message.
29
28
  Rap.task(:goodnight, :obj, :message => 'goodnight') do |task, args|
30
29
  puts "#{task.message} #{args.obj}\n"
@@ -115,21 +114,11 @@ workflow you can run with 'tap run' can be run without alteration by rap.
115
114
 
116
115
  == Installation
117
116
 
118
- Rap is available as a gem on RubyForge[http://rubyforge.org/projects/tap].
119
- Use:
117
+ Rap is available as a gem on Gemcutter[http://gemcutter.org/gems/rap].
120
118
 
121
119
  % gem install rap
122
120
 
123
- Rap requires an updated version of RubyGems[http://docs.rubygems.org/]
124
- (>= 1.2.0). To check the version and update RubyGems:
125
-
126
- % gem --version
127
- % gem --update system
128
-
129
121
  == Info
130
122
 
131
- Copyright (c) 2009, Regents of the University of Colorado.
132
- Developer:: {Simon Chiang}[http://bahuvrihi.wordpress.com], {Biomolecular Structure Program}[http://biomol.uchsc.edu/], {Hansen Lab}[http://hsc-proteomics.uchsc.edu/hansenlab/]
133
- Support:: CU Denver School of Medicine Deans Academic Enrichment Fund
123
+ Developer:: {Simon Chiang}[http://bahuvrihi.wordpress.com]
134
124
  License:: {MIT-Style}[link:files/MIT-LICENSE.html]
135
-
data/bin/rap CHANGED
@@ -3,13 +3,20 @@
3
3
 
4
4
  $:.unshift "#{File.dirname(__FILE__)}/../lib"
5
5
  require 'rap'
6
+ require 'tap/parser'
7
+
8
+ #
9
+ # setup the application
10
+ #
6
11
 
7
- # setup the environment
8
12
  begin
9
-
10
- env = Tap::Exe.setup
11
- Rap::Declarations.env = env
12
- env.activate
13
+ app = Tap::App.setup
14
+ env = app.env
15
+ unless env.any? {|e| e.root.root == Rap::RAP_HOME }
16
+ env.deactivate
17
+ env.push Tap::Env.new(Rap::RAP_HOME, env.context)
18
+ env.activate
19
+ end
13
20
 
14
21
  rescue(Tap::Env::ConfigError)
15
22
  # catch errors and exit gracefully
@@ -22,56 +29,51 @@ end
22
29
  # run rap
23
30
  #
24
31
 
25
- Dir.glob('[TtRr]apfile{,.rb}').each do |rapfile|
26
- next unless File.file?(rapfile)
27
- env.scan(rapfile, "task|join|middleware")
32
+ env.root.glob(:root, '[TtRr]apfile{,.rb}').each do |rapfile|
33
+ env.scan(:root, File.basename(rapfile))
28
34
  load rapfile
29
35
  end
30
36
 
31
37
  case ARGV[0]
32
38
  when '--help', nil, '-T'
33
-
34
- # same as normal summarize, but pass over tasks that have no comment
35
- summary_template = %Q{<% entries.delete_if {|key, const| const.comment.kind_of?(Rap::Description) && const.comment.resolve.desc == nil } %>
36
- <% if !entries.empty? && count > 1 %>
37
- <%= env_key %>:
38
- <% end %>
39
- <% entries.each do |key, const| %>
40
- <%= key.ljust(width) %> # <%= const.comment %>
41
- <% end %>
42
- }
43
-
39
+ constants = app.env.constants
40
+ tasks = constants.summarize do |constant|
41
+ constant.types['task'] or begin
42
+ const = constant.constantize(false)
43
+ const && const.ancestors.include?(Rap::Task) && const.desc ? const.desc.desc : nil
44
+ end
45
+ end
46
+
44
47
  puts Lazydoc.usage(__FILE__)
45
48
  puts
46
49
  puts "=== tap tasks ==="
47
- puts env.manifest(:task).summarize(summary_template)
48
-
50
+ puts tasks
49
51
  if Rap::Rake.has_rakefile?
50
52
  puts
51
53
  puts "=== rake tasks ==="
52
54
  Rap::Rake.new.execute('-T')
53
55
  end
54
-
56
+
55
57
  puts
56
58
  puts "version #{Rap::VERSION} -- #{Rap::WEBSITE}"
59
+
57
60
  else
58
61
  begin
59
- schema = Tap::Schema.parse(ARGV)
60
- schema.tasks.each_pair do |key, task|
61
- if tasc = env[:task][task[0]]
62
- task[0] = tasc
63
- elsif Rap::Rake.has_rakefile?
64
- warn "warning: implict rake for '#{task.join(' ')}'"
65
- task.unshift(Rap::Rake)
62
+ app.call('sig' => 'parse', 'args' => ARGV) do |spec|
63
+ type, obj, sig, var, klass = spec
64
+
65
+ if type == :node
66
+ if env.constants.seek(klass).nil? && Rap::Rake.has_rakefile?
67
+ warn "warning: implict rake for #{spec.inspect}"
68
+ spec.insert(4, 'rap:rake')
69
+ end
66
70
  end
71
+
72
+ true
67
73
  end
68
74
 
69
- app = Tap::App.instance
70
- app.build(schema, :resources => env)
71
- Tap::Exe.set_signals(app)
72
75
  app.run
73
76
  rescue
74
- raise if $DEBUG
75
77
  puts $!.message
76
78
  exit(1)
77
79
  end
@@ -27,7 +27,7 @@ Simple documentation:
27
27
 
28
28
  Extended documentation:
29
29
 
30
- # ::desc description
30
+ # :: description
31
31
  # Extended documentation may span multiple lines, and
32
32
  # supports
33
33
  #
data/lib/rap.rb CHANGED
@@ -1,13 +1,8 @@
1
1
  require 'tap'
2
2
  require 'rap/declarations'
3
+ require 'rap/version'
3
4
 
4
5
  module Rap
5
6
  autoload(:Rake, 'rap/rake')
6
-
7
- MAJOR = 0
8
- MINOR = 14
9
- TINY = 0
10
-
11
- VERSION="#{MAJOR}.#{MINOR}.#{TINY}"
12
- WEBSITE="http://tap.rubyforge.org/rap"
7
+ RAP_HOME = File.expand_path("#{File.dirname(__FILE__)}/..")
13
8
  end
@@ -1,16 +1,15 @@
1
- require 'rap/task'
1
+ require 'rap/declarations/context'
2
2
 
3
3
  module Rap
4
4
 
5
- # Defines the Rap task declaration methods. They may be included at the
6
- # top level (like Rake) or used through Rap.
5
+ # Defines the Rap task declaration methods. They may be included at the top
6
+ # level (like Rake) or used through Rap.
7
7
  #
8
8
  # === Usage
9
9
  #
10
10
  # Unlike in rake, task will define actual task classes according to the task
11
- # names. Task classes may be nested within modules using namespace. It's
12
- # VERY important to realize this is the case both to aid in thing like
13
- # testing and to prevent namespace conflicts. For example:
11
+ # names. Task classes may be nested within modules using namespace. For
12
+ # example:
14
13
  #
15
14
  # t = Rap.task(:sample)
16
15
  # t.class # => Sample
@@ -20,10 +19,10 @@ module Rap
20
19
  # t.class # => Nested::Sample
21
20
  # end
22
21
  #
23
- # Normally all declared tasks are subclasses of Rap::Task, but
24
- # subclasses of Rap::Task can declare tasks as well.
22
+ # Normally all declared tasks are subclasses of Rap::Task, but subclasses of
23
+ # Rap::Task can declare tasks as well.
25
24
  #
26
- # class Alt < Rap::Task
25
+ # class Subclass < Rap::Task
27
26
  # end
28
27
  #
29
28
  # include Rap::Declarations
@@ -35,46 +34,30 @@ module Rap
35
34
  # o.class.desc.to_s # => "task one, a subclass of Rap::Task"
36
35
  #
37
36
  # namespace(:nest) do
38
- # desc "task two, a nested subclass of Alt"
39
- # t = Alt.task(:two)
37
+ # desc "task two, a nested subclass of Subclass"
38
+ # t = Subclass.task(:two)
40
39
  # t.class # => Nest::Two
41
- # t.class.superclass # => Alt
42
- # t.class.desc.to_s # => "task two, a nested subclass of Alt"
40
+ # t.class.superclass # => Subclass
41
+ # t.class.desc.to_s # => "task two, a nested subclass of Subclass"
43
42
  # end
44
43
  #
45
- # This feature is only available to subclasses of Rap::Task and can
46
- # be very useful for creating inheritance hierarchies. Note that other
47
- # declaration methods like 'desc' and 'namespace' are not available on
48
- # Rap::Task or subclasses, just 'task'.
44
+ # This feature is only available to subclasses of Rap::Task and can be very
45
+ # useful for creating inheritance hierarchies. Note that other declaration
46
+ # methods like 'desc' and 'namespace' are not available on Rap::Task or
47
+ # subclasses, just 'task'.
49
48
  #
50
- # See the {Syntax Reference}[link:files/doc/Syntax%20Reference.html] for more
51
- # information.
49
+ # See the {Syntax Reference}[link:files/doc/Syntax%20Reference.html] for
50
+ # more information.
52
51
  module Declarations
53
- # The environment in which declared task classes are registered.
54
- # By default a Tap::Env for Dir.pwd.
55
- def Declarations.env() @@env ||= Tap::Env.new; end
56
52
 
57
- # Sets the declaration environment.
58
- def Declarations.env=(env) @@env=env; end
59
-
60
- # The declaration App (default Tap::App.instance)
61
- def Declarations.app() @@app ||= Tap::App.instance; end
62
-
63
- # Sets the declaration App.
64
- def Declarations.app=(app) @@app=app; end
65
-
66
- # The base constant for all task declarations, prepended to the task name.
67
- def Declarations.current_namespace() @@current_namespace; end
68
- @@current_namespace = ''
69
-
70
- # Tracks the current description, which will be used to
71
- # document the next task declaration.
72
- def Declarations.current_desc() @@current_desc; end
73
- @@current_desc = nil
53
+ # Returns the context app.
54
+ def app
55
+ context.app
56
+ end
74
57
 
75
- # Returns the instance of the task class in app.
76
- def Declarations.instance(tasc)
77
- tasc.instance(Declarations.app)
58
+ # Returns the instance for the class, registered to app.
59
+ def instance(klass)
60
+ klass.instance(app)
78
61
  end
79
62
 
80
63
  # Declares a task with a rake-like syntax. Task generates a subclass of
@@ -86,42 +69,39 @@ module Rap
86
69
  end
87
70
 
88
71
  # generate the task class
89
- const_name = File.join(@@current_namespace, name.to_s).camelize
72
+ const_name = File.join(context.namespace, name.to_s).camelize
90
73
  tasc = declaration_class.subclass(const_name, configs, dependencies)
74
+ register tasc
91
75
 
92
- # register documentation
76
+ # register documentation
93
77
  desc = Lazydoc.register_caller(Description)
94
- desc.desc = @@current_desc
95
- @@current_desc = nil
78
+ desc.desc = context.desc
79
+ context.desc = nil
96
80
 
97
81
  tasc.arg_names = arg_names
98
82
  tasc.desc = desc
99
- tasc.source_file = desc.document.source_file
100
83
 
101
84
  # add the action
102
85
  tasc.actions << action if action
103
86
 
104
- # register
105
- register tasc
106
-
107
87
  # return the instance
108
- instance = Declarations.instance(tasc)
109
- instance.config.bind(instance, true)
88
+ instance = tasc.instance(app)
89
+ instance.config.import(configs)
110
90
  instance
111
91
  end
112
92
 
113
93
  # Nests tasks within the named module for the duration of the block.
114
94
  # Namespaces may be nested.
115
95
  def namespace(name)
116
- previous_namespace = @@current_namespace
117
- @@current_namespace = File.join(previous_namespace, name.to_s.underscore)
96
+ previous_namespace = context.namespace
97
+ context.namespace = File.join(previous_namespace, name.to_s.underscore)
118
98
  yield
119
- @@current_namespace = previous_namespace
99
+ context.namespace = previous_namespace
120
100
  end
121
101
 
122
102
  # Sets the description for use by the next task declaration.
123
103
  def desc(str)
124
- @@current_desc = str
104
+ context.desc = str
125
105
  end
126
106
 
127
107
  private
@@ -195,6 +175,11 @@ module Rap
195
175
  name.to_s.tr(":", "/")
196
176
  end
197
177
 
178
+ # The declarations context.
179
+ def context
180
+ @context ||= Context.instance
181
+ end
182
+
198
183
  # The class of task declared by task, by default Rap::Task.
199
184
  # Used as a hook to set the declaring class in including modules
200
185
  # (such as Rap::Task itself).
@@ -202,22 +187,10 @@ module Rap
202
187
  Rap::Task
203
188
  end
204
189
 
205
- # Registers a task class with the Declarations.env, if necessary.
190
+ # Registers a task class with the Declarations.app.env, if necessary.
206
191
  # Returns task_class.
207
192
  def register(tasc)
208
- tasks = Declarations.env.manifest(:task)
209
-
210
- const_name = tasc.to_s
211
- constant = tasks.find do |const|
212
- const.const_name == const_name
213
- end
214
-
215
- unless constant
216
- constant = Tap::Env::Constant.new(const_name)
217
- tasks.entries << constant
218
- end
219
-
220
- constant.comment = tasc.desc(false)
193
+ app.env.register(tasc)
221
194
  tasc
222
195
  end
223
196
  end
@@ -226,6 +199,7 @@ module Rap
226
199
  class << self
227
200
  # :stopdoc:
228
201
  alias original_desc desc
202
+ alias original_instance instance
229
203
  # :startdoc:
230
204
 
231
205
  include Declarations
@@ -234,8 +208,11 @@ module Rap
234
208
  undef_method :desc
235
209
  alias desc original_desc
236
210
 
211
+ undef_method :instance
212
+ alias instance original_instance
213
+
237
214
  # hide remaining Declarations methods (including Utils methods)
238
- private :namespace
215
+ private :namespace, :app
239
216
  # :startdoc:
240
217
 
241
218
  private
@@ -0,0 +1,30 @@
1
+ require 'rap/task'
2
+
3
+ module Rap
4
+ module Declarations
5
+ class Context
6
+ class << self
7
+ def instance
8
+ @instance ||= new
9
+ end
10
+ end
11
+
12
+ # The declarations App
13
+ attr_accessor :app
14
+
15
+ # The base constant for all task declarations, prepended to the task name.
16
+ attr_accessor :namespace
17
+
18
+ # Tracks the current description, which will be used to document the
19
+ # next task declaration.
20
+ attr_accessor :desc
21
+
22
+ def initialize(app=Tap::App.instance)
23
+ app.env ||= Tap::Env.new
24
+ @app = app
25
+ @namespace = ""
26
+ @desc = nil
27
+ end
28
+ end
29
+ end
30
+ end
@@ -6,7 +6,7 @@ module Rap
6
6
  #
7
7
  # Description instances can be assigned a description, or they may parse
8
8
  # one directly from the comment. Comment lines with the constant attribute
9
- # '::desc' will have the value set as desc.
9
+ # '::' will have the value set as desc.
10
10
  # :startdoc:::+
11
11
  class Description < Lazydoc::Comment
12
12
 
@@ -15,7 +15,7 @@ module Rap
15
15
 
16
16
  # Parses in-comment descriptions from prepended lines, if present.
17
17
  def prepend(line)
18
- if line =~ /::desc(?:\s+(.*?))?\s*$/
18
+ if line =~ /\s::(?:\s+(.*?)\s*)?$/
19
19
  self.desc = $1.to_s
20
20
  false
21
21
  else
@@ -17,17 +17,15 @@ module Rap
17
17
  #
18
18
  class Rake < Tap::Task
19
19
  class << self
20
-
21
- # Overrides Tap::Support::FrameworkClass#parse! to do
22
- # nothing so that all args get passed forward to rake.
23
- def parse!(argv, app=Tap::App.instance) # => instance, argv
20
+
21
+ def parse!(argv, app=Tap::App.instance)
24
22
  if argv.include?('--help')
25
23
  puts help
26
24
  exit
27
25
  end
28
26
  argv.collect! {|arg| arg == '--rake-help' ? '--help' : arg}
29
27
 
30
- new({}, app)
28
+ [new({}, app), argv]
31
29
  end
32
30
 
33
31
  # Returns true if Rake detects a rakefile.
@@ -1,7 +1,8 @@
1
1
  require 'tap/task'
2
2
  require 'tap/env'
3
- require 'ostruct'
4
3
  require 'rap/description'
4
+ require 'rap/utils'
5
+ require 'ostruct'
5
6
 
6
7
  module Rap
7
8
 
@@ -26,7 +27,7 @@ module Rap
26
27
  # # def helper(); "help"; end
27
28
  # # end
28
29
  # #
29
- # # # ::desc a help task
30
+ # # # :: a help task
30
31
  # # Subclass.task(:help) {|task, args| puts "got #{task.helper}"}
31
32
  #
32
33
  # % rap help
@@ -40,15 +41,10 @@ module Rap
40
41
 
41
42
  # Returns or initializes the instance of self cached with app.
42
43
  def instance(app=Tap::App.instance, auto_initialize=true)
43
- app.cache[self] ||= (auto_initialize ? new({}, app) : nil)
44
+ app.objects[self] ||= (auto_initialize ? new({}, app) : nil)
44
45
  end
45
46
 
46
47
  def inherited(child) # :nodoc:
47
- unless child.instance_variable_defined?(:@source_file)
48
- caller[0] =~ Lazydoc::CALLER_REGEXP
49
- child.instance_variable_set(:@source_file, File.expand_path($1))
50
- end
51
-
52
48
  child.instance_variable_set(:@dependencies, dependencies.dup)
53
49
  super
54
50
  end
@@ -90,26 +86,29 @@ module Rap
90
86
  # B world
91
87
  #
92
88
  def parse!(argv=ARGV, app=Tap::App.instance)
93
- instance = super
89
+ parser = self.parser
94
90
 
95
- # store args on instance and clear so that instance
96
- # will not be enqued with any inputs
97
- instance.args = argv.dup
98
- argv.clear
91
+ argv = parser.parse!(argv, :add_defaults => false)
92
+ enque = parser.config.delete('enque')
93
+ instance = build({'config' => parser.nested_config, 'args' => argv.dup}, app)
99
94
 
100
- instance
95
+ # enque with no inputs to satisfy call, and
96
+ # clear argv so auto-enque will do the same
97
+ instance.enq if enque
98
+
99
+ [instance, []]
101
100
  end
102
101
 
103
102
  # Instantiates the instance of self for app and reconfigures it as
104
103
  # specified in argh.
105
- def instantiate(argh={}, app=Tap::App.instance)
104
+ def build(argh={}, app=Tap::App.instance)
106
105
  instance = self.instance(app)
107
106
 
108
- if config = argh[:config]
107
+ if config = argh['config']
109
108
  instance.reconfigure(config)
110
109
  end
111
110
 
112
- if args = argh[:args]
111
+ if args = argh['args']
113
112
  instance.args = args
114
113
  end
115
114
 
@@ -202,7 +201,8 @@ module Rap
202
201
  end
203
202
  end
204
203
 
205
- instance_variable_set(:@dependencies, [])
204
+ # This sets the class-level dependencies array.
205
+ @dependencies = []
206
206
 
207
207
  # An array of node dependencies
208
208
  attr_reader :dependencies
@@ -301,7 +301,6 @@ module Rap
301
301
  end
302
302
  self
303
303
  end
304
-
305
304
  end
306
305
 
307
306
  # Raised for circular dependencies during Rap::Task.resolve!
@@ -0,0 +1,8 @@
1
+ module Rap
2
+ MAJOR = 0
3
+ MINOR = 15
4
+ TINY = 0
5
+
6
+ VERSION="#{MAJOR}.#{MINOR}.#{TINY}"
7
+ WEBSITE="http://tap.rubyforge.org/rap"
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Chiang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-17 00:00:00 -06:00
12
+ date: 2009-12-05 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.18.0
23
+ version: 0.19.0
24
24
  version:
25
25
  description:
26
26
  email: simon.a.chiang@gmail.com
@@ -36,10 +36,12 @@ extra_rdoc_files:
36
36
  files:
37
37
  - lib/rap/task.rb
38
38
  - lib/rap/declarations.rb
39
+ - lib/rap/declarations/context.rb
39
40
  - lib/rap/description.rb
40
41
  - lib/rap/rake.rb
41
42
  - lib/rap.rb
42
43
  - lib/rap/utils.rb
44
+ - lib/rap/version.rb
43
45
  - tap.yml
44
46
  - README
45
47
  - MIT-LICENSE
@@ -47,6 +49,8 @@ files:
47
49
  - doc/Syntax Reference
48
50
  has_rdoc: true
49
51
  homepage: http://tap.rubyforge.org
52
+ licenses: []
53
+
50
54
  post_install_message:
51
55
  rdoc_options:
52
56
  - --main
@@ -72,9 +76,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
76
  requirements: []
73
77
 
74
78
  rubyforge_project: tap
75
- rubygems_version: 1.3.1
79
+ rubygems_version: 1.3.5
76
80
  signing_key:
77
- specification_version: 2
81
+ specification_version: 3
78
82
  summary: A rakish extension to tap.
79
83
  test_files: []
80
84