tap 0.12.2 → 0.12.3

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