tap 0.12.2 → 0.12.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/History CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.12.3 / 2009-03-05
2
+
3
+ * Updates to allow Tap to use the latest Configurable.
4
+ * Updated RootGenerator
5
+ * Fixed minor task --help bugs
6
+ * Documentation updates
7
+
1
8
  == 0.12.2 / 2009-02-23
2
9
 
3
10
  * Added --no-yaml option to Dump and Load
data/README CHANGED
@@ -110,5 +110,5 @@ Tap requires an updated version of RubyGems[http://docs.rubygems.org/]
110
110
  Copyright (c) 2006-2009, Regents of the University of Colorado.
111
111
  Developer:: {Simon Chiang}[http://bahuvrihi.wordpress.com], {Biomolecular Structure Program}[http://biomol.uchsc.edu/], {Hansen Lab}[http://hsc-proteomics.uchsc.edu/hansenlab/]
112
112
  Support:: CU Denver School of Medicine Deans Academic Enrichment Fund
113
- Licence:: {MIT-Style}[link:files/MIT-LICENSE.html]
113
+ License:: {MIT-Style}[link:files/MIT-LICENSE.html]
114
114
 
data/cmd/console.rb CHANGED
@@ -1,11 +1,14 @@
1
- # tap console [options]
1
+ # usage: tap console [options]
2
2
  #
3
- # Opens up an IRB session with Tap initialized to the configurations
3
+ # Opens up an IRB session with the Tap environment initialized as specified
4
4
  # in tap.yml. Access the Tap::App.instance through 'app', and
5
- # Tap::Env.instance through 'env'.
6
-
5
+ # Tap::Env.instance through 'env'. For example:
7
6
  #
8
- # handle options
7
+ # % tap console
8
+ # >> env.tasks.search('tap:dump').constantize=> Tap::Tasks::Dump
9
+ # >> app.info
10
+ # => "state: 0 (READY) queue: 0 results: 0"
11
+ # >>
9
12
  #
10
13
 
11
14
  ConfigParser.new do |opts|
@@ -40,4 +43,4 @@ module CleanExit # :nodoc:
40
43
  __exit__(ret)
41
44
  end
42
45
  end
43
- IRB.CurrentContext.extend CleanExit
46
+ IRB.CurrentContext.extend CleanExit
data/cmd/destroy.rb CHANGED
@@ -1,9 +1,20 @@
1
+ # usage: tap destroy GENERATOR ...
2
+ #
3
+ # Runs a generator in reverse. Each generator works a little differently; the
4
+ # best way to figure out what a generator does is to use --help. For example:
5
+ #
6
+ # % tap generate root --help
7
+ #
8
+
1
9
  require 'tap/generator/base'
2
10
  require 'tap/generator/destroy'
3
11
 
4
12
  env = Tap::Env.instance
5
13
 
6
14
  if ARGV.empty? || ARGV == ['--help']
15
+ puts Lazydoc.usage(__FILE__)
16
+ puts
17
+ puts "generators:"
7
18
  puts env.summarize(:generators)
8
19
  exit
9
20
  end
data/cmd/generate.rb CHANGED
@@ -1,9 +1,20 @@
1
+ # usage: tap generate GENERATOR ...
2
+ #
3
+ # Runs a generator. Each generator works a little differently; the best way to
4
+ # figure out what a generator does is to use --help. For example:
5
+ #
6
+ # % tap generate root --help
7
+ #
8
+
1
9
  require 'tap/generator/base'
2
10
  require 'tap/generator/generate'
3
11
 
4
12
  env = Tap::Env.instance
5
13
 
6
14
  if ARGV.empty? || ARGV == ['--help']
15
+ puts Lazydoc.usage(__FILE__)
16
+ puts
17
+ puts "generators:"
7
18
  puts env.summarize(:generators)
8
19
  exit
9
20
  end
data/cmd/manifest.rb CHANGED
@@ -1,7 +1,6 @@
1
- # tap manifest [options]
2
- #
3
- # Prints information about the current tap environment.
1
+ # usage: tap manifest [options]
4
2
  #
3
+ # Prints a manifest of all resources in the current tap environment.
5
4
 
6
5
  options = {}
7
6
  ConfigParser.new do |opts|
data/cmd/run.rb CHANGED
@@ -1,4 +1,4 @@
1
- # tap run FILEPATHS... [options] -- [SCHEMA]
1
+ # usage: tap run FILEPATHS... [options] -- [SCHEMA]
2
2
  #
3
3
  # examples:
4
4
  # tap run --help Prints this help
data/lib/tap/constants.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Tap
2
2
  MAJOR = 0
3
3
  MINOR = 12
4
- TINY = 0
4
+ TINY = 3
5
5
 
6
6
  VERSION="#{MAJOR}.#{MINOR}.#{TINY}"
7
7
  WEBSITE="http://tap.rubyforge.org"
data/lib/tap/env.rb CHANGED
@@ -103,13 +103,7 @@ module Tap
103
103
  attr_reader :envs
104
104
 
105
105
  # The Root directory structure for self.
106
- nest(:root, Tap::Root) do |config|
107
- case config
108
- when Root then config
109
- when String then Root.new(config)
110
- else Root.new.reconfigure(config)
111
- end
112
- end
106
+ nest(:root, Tap::Root, :initializer => false)
113
107
 
114
108
  # Specify gems to load as nested Envs. Gems may be specified
115
109
  # by name and/or version, like 'gemname >= 1.2'; by default the
@@ -482,6 +476,14 @@ module Tap
482
476
  # A hash of the manifests for self.
483
477
  attr_reader :manifests
484
478
 
479
+ def initialize_root(config)
480
+ case config
481
+ when Root then config
482
+ when String then Root.new(config)
483
+ else Root.new.reconfigure(config)
484
+ end
485
+ end
486
+
485
487
  def minikey(env)
486
488
  env.root.root
487
489
  end
@@ -4,24 +4,24 @@ module Tap::Generator::Generators
4
4
 
5
5
  # :startdoc: Tap::Generator::Generators::RootGenerator::generator a basic tap directory structure
6
6
  #
7
- # Generates a tap root directory structure. Use the switches to
8
- # generate a Tapfile and/or a tap config file:
7
+ # Generates a tap root directory structure. Use the switches to turn on or
8
+ # off the creation of various files:
9
9
  #
10
- # root
10
+ # project
11
+ # |- MIT-LICENSE
12
+ # |- README
11
13
  # |- Rakefile
12
14
  # |- lib
13
- # |- sample.gemspec
15
+ # |- project.gemspec
14
16
  # |- tap.yml
15
- # |- Tapfile
16
17
  # `- test
17
- # |- tap_test_helper.rb
18
- # |- tap_test_suite.rb
19
- # `- tapfile_test.rb
18
+ # `- tap_test_helper.rb
20
19
  #
21
20
  class RootGenerator < Tap::Generator::Base
22
21
 
23
- config :config_file, true, &c.switch # create a tap.yml file
24
- config :rapfile, false, &c.switch # create a rapfile
22
+ config :config_file, true, &c.switch # Create a tap.yml file
23
+ config :license, true, &c.switch # Create an MIT-LICENSE
24
+ config :rapfile, false, &c.switch # Create a Rapfile
25
25
 
26
26
  # ::args ROOT, PROJECT_NAME=basename(ROOT)
27
27
  def manifest(m, root, project_name=nil)
@@ -38,18 +38,20 @@ module Tap::Generator::Generators
38
38
  m.directory r[target]
39
39
  next
40
40
  when source =~ /gemspec$/
41
- m.template r[project_name + '.gemspec'], source, :project_name => project_name, :config_file => config_file
41
+ m.template r[project_name + '.gemspec'], source, :project_name => project_name, :config_file => config_file, :license => license
42
42
  next
43
43
  when source =~ /Rapfile$/
44
44
  next unless rapfile
45
+ when source =~ /MIT-LICENSE$/
46
+ next unless license
45
47
  end
46
48
 
47
- m.template r[target], source, :project_name => project_name
49
+ m.template r[target], source, :project_name => project_name, :license => license
48
50
  end
49
51
 
50
52
  m.file(r['tap.yml']) do |file|
51
- Configurable::Utils.dump(Tap::App.configurations, file) do |key, delegate|
52
- default = delegate.default
53
+ Configurable::Utils.dump(Tap::Env.configurations, file) do |key, delegate|
54
+ default = delegate.default(false)
53
55
 
54
56
  # get the description
55
57
  desc = delegate.attributes[:desc]
@@ -57,13 +59,16 @@ module Tap::Generator::Generators
57
59
  doc = desc.comment if doc.empty?
58
60
 
59
61
  # wrap as lines
60
- lines = Lazydoc::Utils.wrap(doc, 50).collect {|line| "# #{line}"}
62
+ lines = Lazydoc::Utils.wrap(doc, 78).collect {|line| "# #{line}"}
61
63
  lines << "" unless lines.empty?
62
64
 
65
+ # note: this causes order to be lost...
66
+ default = default.to_hash if delegate.is_nest?
67
+
63
68
  # setup formatting
64
69
  leader = key == 'root' || default == nil ? '# ' : ''
65
- config = YAML.dump({key => default})[5..-1]
66
- "#{lines.join("\n")}#{leader}#{config.strip}\n\n"
70
+ config = YAML.dump({key => default})[5..-1].strip.gsub(/\n+/, "\n#{leader}")
71
+ "#{lines.join("\n")}#{leader}#{config}\n\n"
67
72
  end
68
73
  end if config_file
69
74
  end
@@ -0,0 +1,22 @@
1
+ Copyright (c) <%= Time.now.year %>, <copyright holders>
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,14 @@
1
+ = <%= project_name.capitalize %>
2
+
3
+ == Description
4
+
5
+ == Usage
6
+
7
+ == Installation
8
+
9
+ == Info
10
+ <% if license %>
11
+
12
+ Copyright (c) <%= Time.now.year %>, <copyright holders>
13
+ License:: {MIT-Style}[link:files/MIT-LICENSE.html]
14
+ <% end %>
@@ -3,8 +3,6 @@ require 'rake/testtask'
3
3
  require 'rake/rdoctask'
4
4
  require 'rake/gempackagetask'
5
5
 
6
- require 'tap/constants'
7
-
8
6
  #
9
7
  # Gem specification
10
8
  #
@@ -56,11 +54,11 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
56
54
  spec = gemspec
57
55
 
58
56
  rdoc.rdoc_dir = 'rdoc'
59
- rdoc.title = '<%= project_name %>'
60
- rdoc.main = 'README'
61
- rdoc.options << '--line-numbers' << '--inline-source'
57
+ rdoc.options.concat(spec.rdoc_options)
62
58
  rdoc.rdoc_files.include( spec.extra_rdoc_files )
63
- rdoc.rdoc_files.include( spec.files.select {|file| file =~ /^lib.*\.rb$/} )
59
+
60
+ files = spec.files.select {|file| file =~ /^lib.*\.rb$/}
61
+ rdoc.rdoc_files.include( files )
64
62
 
65
63
  # Using CDoc to template your RDoc will result in configurations being
66
64
  # listed with documentation in a subsection following attributes. Not
@@ -7,20 +7,20 @@ Gem::Specification.new do |s|
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.summary = "<%= project_name %>"
9
9
  s.require_path = "lib"
10
- s.test_file = "test/tap_test_suite.rb"
11
10
  #s.rubyforge_project = "<%= project_name %>"
12
- #s.has_rdoc = true
13
11
  s.add_dependency("tap", "= <%= Tap::VERSION %>")
12
+ s.has_rdoc = true
13
+ s.rdoc_options.concat %W{--main README -S -N --title <%= project_name.capitalize %>}
14
14
 
15
15
  # list extra rdoc files here.
16
16
  s.extra_rdoc_files = %W{
17
17
  README
18
+ <%= license ? " MIT-LICENSE\n" : '' %>
18
19
  }
19
20
 
20
21
  # list the files you want to include here. you can
21
22
  # check this manifest using 'rake :print_manifest'
22
23
  s.files = %W{
23
24
  <%= config_file ? " tap.yml\n" : '' %>
24
- test/tap_test_helper.rb
25
25
  }
26
26
  end
data/lib/tap/task.rb CHANGED
@@ -168,10 +168,13 @@ module Tap
168
168
  # Same as parse, but removes switches destructively.
169
169
  def parse!(argv=ARGV, app=Tap::App.instance)
170
170
  opts = ConfigParser.new
171
- opts.separator "configurations:"
172
- opts.add(configurations)
173
171
 
174
- opts.separator ""
172
+ unless configurations.empty?
173
+ opts.separator "configurations:"
174
+ opts.add(configurations)
175
+ opts.separator ""
176
+ end
177
+
175
178
  opts.separator "options:"
176
179
 
177
180
  # add option to print help
@@ -390,8 +393,7 @@ module Tap
390
393
  #
391
394
  def define(name, baseclass=Tap::Task, configs={}, options={}, &block)
392
395
  # define the subclass
393
- const_name = options.delete(:const_name) || name.to_s.camelize
394
- subclass = const_set(const_name, Class.new(baseclass))
396
+ subclass = Class.new(baseclass)
395
397
  subclass.default_name = name.to_s
396
398
 
397
399
  configs.each_pair do |key, value|
@@ -409,7 +411,7 @@ module Tap
409
411
  options[:desc] ||= Lazydoc.register_caller(Lazydoc::Trailer, 1)
410
412
 
411
413
  # add the configuration
412
- nest(name, subclass, options) {|overrides| subclass.new(overrides) }
414
+ nest(name, subclass, {:const_name => name.to_s.camelize}.merge!(options))
413
415
  end
414
416
  end
415
417
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.12.3
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-02-23 00:00:00 -07:00
12
+ date: 2009-03-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.3.0
23
+ version: 0.4.0
24
24
  version:
25
25
  description:
26
26
  email: simon.a.chiang@gmail.com
@@ -60,6 +60,7 @@ files:
60
60
  - lib/tap/generator/generators/generator/templates/task.erb
61
61
  - lib/tap/generator/generators/generator/templates/test.erb
62
62
  - lib/tap/generator/generators/root/root_generator.rb
63
+ - lib/tap/generator/generators/root/templates/MIT-LICENSE
63
64
  - lib/tap/generator/generators/root/templates/README
64
65
  - lib/tap/generator/generators/root/templates/Rakefile
65
66
  - lib/tap/generator/generators/root/templates/Rapfile