quickl 0.2.0 → 0.2.1

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 (57) hide show
  1. data/CHANGELOG.md +23 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +34 -0
  4. data/LICENCE.md +22 -0
  5. data/Manifest.txt +15 -0
  6. data/README.md +0 -25
  7. data/Rakefile +18 -32
  8. data/lib/quickl/command/builder.rb +18 -1
  9. data/lib/quickl/command/delegator.rb +8 -5
  10. data/lib/quickl/command/robustness.rb +4 -5
  11. data/lib/quickl/command/single.rb +1 -0
  12. data/lib/quickl/command.rb +12 -0
  13. data/lib/quickl/loader.rb +0 -0
  14. data/lib/quickl/version.rb +14 -0
  15. data/lib/quickl.rb +3 -4
  16. data/quickl.gemspec +178 -27
  17. data/quickl.noespec +58 -0
  18. data/spec/command/command_building_spec.rb +16 -0
  19. data/spec/command/command_name_spec.rb +16 -0
  20. data/spec/command/documentation_spec.rb +23 -0
  21. data/spec/command/overview_spec.rb +14 -0
  22. data/spec/command/requester_spec.rb +16 -0
  23. data/spec/command/robustness/valid_read_file_spec.rb +62 -0
  24. data/spec/command/run_spec.rb +22 -0
  25. data/spec/command/subcommand_by_name_spec.rb +15 -0
  26. data/spec/command/subcommands_spec.rb +24 -0
  27. data/spec/command/usage_spec.rb +16 -0
  28. data/spec/mini_client.rb +96 -0
  29. data/spec/naming/command2module_spec.rb +17 -0
  30. data/spec/naming/module2command_spec.rb +21 -0
  31. data/spec/quickl_spec.rb +8 -0
  32. data/spec/ruby_tools/class_unqualified_name_spec.rb +28 -0
  33. data/spec/ruby_tools/extract_file_rdoc_spec.rb +28 -0
  34. data/spec/ruby_tools/fixtures/RubyTools.rdoc +12 -0
  35. data/spec/ruby_tools/fixtures/Utils.rdoc +3 -0
  36. data/spec/ruby_tools/fixtures.rb +27 -0
  37. data/spec/ruby_tools/optional_args_block_call_spec.rb +37 -0
  38. data/spec/ruby_tools/parent_module_spec.rb +23 -0
  39. data/spec/spec_helper.rb +4 -0
  40. data/tasks/debug_mail.rake +78 -0
  41. data/tasks/debug_mail.txt +13 -0
  42. data/tasks/gem.rake +68 -0
  43. data/tasks/spec_test.rake +79 -0
  44. data/tasks/unit_test.rake +77 -0
  45. data/tasks/yard.rake +51 -0
  46. metadata +150 -105
  47. data/examples/delegator/README.md +0 -86
  48. data/examples/delegator/bin/delegator +0 -9
  49. data/examples/delegator/lib/delegator.rb +0 -41
  50. data/examples/delegator/lib/hello_world.rb +0 -39
  51. data/examples/delegator/lib/help.rb +0 -24
  52. data/examples/delegator/test/delegator_test.rb +0 -68
  53. data/examples/hello/README.md +0 -74
  54. data/examples/hello/hello +0 -57
  55. data/examples/hello/hello_test.rb +0 -65
  56. data/examples/helper.rb +0 -6
  57. data/templates/single.erb +0 -40
@@ -0,0 +1,23 @@
1
+ $hello_doc = <<EOF
2
+
3
+ Say hello to the user whose name is requested on the standard input
4
+
5
+ SYNOPSIS
6
+ mini-client say:hello
7
+
8
+ DESCRIPTION
9
+ And an explanation here
10
+ on multiple lines with replacement: hello
11
+
12
+ EOF
13
+
14
+ require File.expand_path('../../spec_helper', __FILE__)
15
+ module Quickl
16
+ describe "Command::documentation /" do
17
+
18
+ it "should be correctly installed" do
19
+ MiniClient::Say::Hello.documentation.should == $hello_doc[0..-1]
20
+ end
21
+
22
+ end # Command::command
23
+ end # module Quickl
@@ -0,0 +1,14 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::overview /" do
4
+
5
+ it "should be installed from inline rdoc" do
6
+ MiniClient::Help.overview.should == "Print help"
7
+ end
8
+
9
+ it "should be installed accessible on instance" do
10
+ MiniClient::Help.new.overview.should == "Print help"
11
+ end
12
+
13
+ end # Command::overview
14
+ end # module Quickl
@@ -0,0 +1,16 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::requester /" do
4
+
5
+ it "should return nil if invoked immediately" do
6
+ MiniClient::Requester.run([]).should be_nil
7
+ end
8
+
9
+ it "should return delegator if ran from delegator" do
10
+ x = MiniClient.run(["requester"])
11
+ x.should_not be_nil
12
+ x.should be_a(MiniClient)
13
+ end
14
+
15
+ end # Command::requester
16
+ end # module Quickl
@@ -0,0 +1,62 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::Robustness#valid_read_file!" do
4
+
5
+ let(:r){ Object.new.extend(Command::Robustness) }
6
+
7
+ describe "with default options" do
8
+
9
+ it "should raise a Quickl::IOAccessError with a friendly message" do
10
+ begin
11
+ r.valid_read_file!("nosuchone.nosuchextension")
12
+ true.should == false
13
+ rescue Quickl::IOAccessError => ex
14
+ ex.message.should =~ /Not a file/
15
+ ex.message.should =~ /nosuchone.nosuchextension/
16
+ end
17
+ end
18
+
19
+ end # with default options
20
+
21
+ describe "with specific error class" do
22
+
23
+ it "should raise it with a default message" do
24
+ begin
25
+ r.valid_read_file!("nosuchone.nosuchextension", ArgumentError)
26
+ true.should == false
27
+ rescue ArgumentError => ex
28
+ ex.message.should =~ /Not a file/
29
+ ex.message.should =~ /nosuchone.nosuchextension/
30
+ end
31
+ end
32
+
33
+ end # with specific message
34
+
35
+ describe "with specific message" do
36
+
37
+ it "should raise a Quickl::IOAccessError with a specific message" do
38
+ begin
39
+ r.valid_read_file!("nosuchone.nosuchextension", nil, "specific")
40
+ true.should == false
41
+ rescue Quickl::IOAccessError => ex
42
+ ex.message.should == "specific"
43
+ end
44
+ end
45
+
46
+ end # with specific message
47
+
48
+ describe 'with specific message and error class' do
49
+
50
+ it "should raise a Quickl::IOAccessError with a specific message" do
51
+ begin
52
+ r.valid_read_file!("nosuchone.nosuchextension", ArgumentError, "specific")
53
+ true.should == false
54
+ rescue ArgumentError => ex
55
+ ex.message.should == "specific"
56
+ end
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end # module Quickl
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::run /" do
4
+
5
+ it "when invoked on a terminal command" do
6
+ MiniClient::Say::Hello.run.should == :hello
7
+ MiniClient::Say::Goodbye.run.should == :goodbye
8
+ end
9
+
10
+ it "when invoked on a delegator command" do
11
+ MiniClient.run(["help"]).should == :help
12
+ MiniClient::Say.run(["hello"]).should == :hello
13
+ MiniClient::Say.run(["goodbye"]).should == :goodbye
14
+ end
15
+
16
+ it "when invoked on qualified command names" do
17
+ MiniClient.run(["say:hello"]).should == :hello
18
+ MiniClient.run(["say:goodbye"]).should == :goodbye
19
+ end
20
+
21
+ end # Command::command
22
+ end # module Quickl
@@ -0,0 +1,15 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::subcommand_by_name /" do
4
+
5
+ specify "when called on single command names" do
6
+ MiniClient.subcommand_by_name("help").should == MiniClient::Help
7
+ MiniClient.subcommand_by_name("noway").should be_nil
8
+ end
9
+
10
+ specify "when called on complex command names" do
11
+ MiniClient.subcommand_by_name("say:hello").should == MiniClient::Say::Hello
12
+ end
13
+
14
+ end # Command::command_name
15
+ end # module Quickl
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::subcommands /" do
4
+
5
+ it "should return installed commands in an array" do
6
+ MiniClient.subcommands.should == [
7
+ MiniClient::Help,
8
+ MiniClient::Say,
9
+ MiniClient::Requester,
10
+ ]
11
+ MiniClient::Say.subcommands.should == [
12
+ MiniClient::Say::Hello,
13
+ MiniClient::Say::Goodbye,
14
+ ]
15
+ end
16
+
17
+ it "should take care of the command_parent= in command builder" do
18
+ MiniClient::Requester.subcommands.should == [
19
+ MiniClient::Factored
20
+ ]
21
+ end
22
+
23
+ end # Command::subcommand
24
+ end # module Quickl
@@ -0,0 +1,16 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Command::usage /" do
4
+
5
+ it "should be installed from inline rdoc" do
6
+ MiniClient::Say::Hello.usage.should == "mini-client say:hello"
7
+ MiniClient::Say::Goodbye.usage.should == "mini-client say:goodbye"
8
+ end
9
+
10
+ it "should be accessible on instance" do
11
+ MiniClient::Say::Hello.new.usage.should == "mini-client say:hello"
12
+ MiniClient::Say::Goodbye.new.usage.should == "mini-client say:goodbye"
13
+ end
14
+
15
+ end # Command::usage
16
+ end # module Quickl
@@ -0,0 +1,96 @@
1
+ #
2
+ # MiniClient main command
3
+ #
4
+ class MiniClient < Quickl::Delegator(__FILE__, __LINE__)
5
+
6
+ #
7
+ # Print help
8
+ #
9
+ # SYNOPSIS
10
+ # #{MiniClient.command_name} help
11
+ #
12
+ # DESCRIPTION
13
+ # #{command_name} prints help
14
+ #
15
+ class Help < Quickl::Command(__FILE__, __LINE__)
16
+
17
+ def execute(*args)
18
+ :help
19
+ end
20
+
21
+ end # class Help
22
+
23
+ class Say < Quickl::Delegator(__FILE__, __LINE__)
24
+
25
+ #
26
+ # Say hello to the user whose name is requested on the standard input
27
+ #
28
+ # SYNOPSIS
29
+ # #{MiniClient.command_name} say:hello
30
+ #
31
+ # DESCRIPTION
32
+ # And an explanation here
33
+ # on multiple lines with replacement: #{command_name}
34
+ #
35
+ class Hello < Quickl::Command(__FILE__, __LINE__)
36
+
37
+ def execute(*args)
38
+ :hello
39
+ end
40
+
41
+ end # class Hello
42
+
43
+ #
44
+ # Say goodbye to the currently connected user
45
+ #
46
+ # SYNOPSIS
47
+ # #{MiniClient.command_name} say:goodbye
48
+ #
49
+ class Goodbye < Quickl::Command(__FILE__, __LINE__)
50
+
51
+ def execute(*args)
52
+ :goodbye
53
+ end
54
+
55
+ end # class Goodbye
56
+
57
+ end # class Say
58
+
59
+ #
60
+ # Returns the requester object
61
+ #
62
+ # SYNOPSIS
63
+ # #{MiniClient.command_name} requester
64
+ #
65
+ class Requester < Quickl::Command(__FILE__, __LINE__)
66
+
67
+ def execute(*args)
68
+ requester
69
+ end
70
+
71
+ end # class Requester
72
+
73
+ def self.Factor(file, line, arg)
74
+ Quickl::Command(file, line) do |builder|
75
+ builder.command_parent = MiniClient::Requester
76
+ builder.callback{|cmd|
77
+ cmd.instance_eval{ @factored_arg = arg }
78
+ }
79
+ end
80
+ end
81
+
82
+ #
83
+ # Returns an argument passed at factoring time
84
+ #
85
+ # SYNOPSIS
86
+ # #{MiniClient.command_name} factored
87
+ #
88
+ class Factored < Factor(__FILE__, __LINE__, :hello)
89
+
90
+ def execute(*args)
91
+ self.class.instance_eval{ @factored_arg }
92
+ end
93
+
94
+ end
95
+
96
+ end # module MiniClient
@@ -0,0 +1,17 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Naming::command2module /" do
4
+ include Naming
5
+
6
+ it "should capitalize first char" do
7
+ command2module("say").should == "Say"
8
+ command2module(:say).should == :Say
9
+ end
10
+
11
+ it "should capitalize support dashes" do
12
+ command2module("say-hello").should == "SayHello"
13
+ command2module(:"say-hello").should == :SayHello
14
+ end
15
+
16
+ end # module Quickl
17
+ end # module Quickl
@@ -0,0 +1,21 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ describe "Naming::module2command /" do
4
+ include Naming
5
+
6
+ it "should uncapitalize first char" do
7
+ module2command("Say").should == "say"
8
+ module2command(:Say).should == :say
9
+ end
10
+
11
+ it "should uncapitalize and introduce dashes" do
12
+ module2command("SayHello").should == "say-hello"
13
+ module2command(:"SayHello").should == :"say-hello"
14
+ end
15
+
16
+ it "should support taking modules as argument" do
17
+ module2command(Quickl::Command).should == "command"
18
+ end
19
+
20
+ end # module Quickl
21
+ end # module Quickl
@@ -0,0 +1,8 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+ describe Quickl do
3
+
4
+ it "should have a version number" do
5
+ Quickl.const_defined?(:VERSION).should be_true
6
+ end
7
+
8
+ end
@@ -0,0 +1,28 @@
1
+ require File.expand_path('../fixtures', __FILE__)
2
+ module Quickl
3
+ describe "RubyTools#class_unqualified_name /" do
4
+
5
+ subject{ RubyTools::class_unqualified_name(clazz) }
6
+
7
+ describe "when called on unqualified class" do
8
+ let(:clazz){ ::String }
9
+ it{ should == "String" }
10
+ end
11
+
12
+ describe "when called on qualified class" do
13
+ let(:clazz){ RubyTools }
14
+ it{ should == "RubyTools" }
15
+ end
16
+
17
+ describe "when called on long qualified class" do
18
+ let(:clazz){ Quickl::Fixtures::Utils }
19
+ it{ should == "Utils" }
20
+ end
21
+
22
+ describe "when piped with parent_module" do
23
+ let(:clazz){ RubyTools::parent_module(Quickl::Fixtures::Utils) }
24
+ it{ should == "Fixtures" }
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ require File.expand_path('../fixtures', __FILE__)
2
+ module Quickl
3
+ describe "RubyTools#extract_file_rdoc /" do
4
+
5
+ let(:file){ File.expand_path('../fixtures.rb', __FILE__) }
6
+
7
+ describe "when used without line and reverse options" do
8
+
9
+ subject{ RubyTools::extract_file_rdoc(file) }
10
+
11
+ it "should be as expected" do
12
+ subject.should == File.read(File.expand_path('../fixtures/RubyTools.rdoc', __FILE__))
13
+ end
14
+
15
+ end
16
+
17
+ describe "when used with line and reverse options" do
18
+
19
+ subject{ RubyTools::extract_file_rdoc(file, 23, true) }
20
+
21
+ it "should be as expected" do
22
+ subject.should == File.read(File.expand_path('../fixtures/Utils.rdoc', __FILE__))
23
+ end
24
+
25
+ end
26
+
27
+ end # RubyTools#extract_file_rdoc
28
+ end # module Quickl
@@ -0,0 +1,12 @@
1
+
2
+ This is a fixtures helper that matches documentation conventions.
3
+
4
+ This is a second paragraph
5
+ That append on two lines
6
+
7
+
8
+ WARNING:
9
+ This kind of indentation should not be interpreted as code
10
+
11
+ But this one yes
12
+
@@ -0,0 +1,3 @@
1
+
2
+ This is the documentation of the Utils module
3
+
@@ -0,0 +1,27 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ module Quickl
3
+ module Fixtures
4
+
5
+ #
6
+ # This is a fixtures helper that matches documentation conventions.
7
+ #
8
+ # This is a second paragraph
9
+ # That append on two lines
10
+ #
11
+ #
12
+ # WARNING:
13
+ # This kind of indentation should not be interpreted as code
14
+ #
15
+ # But this one yes
16
+ #
17
+ module RubyTools
18
+ end # module RubyTools
19
+
20
+ #
21
+ # This is the documentation of the Utils module
22
+ #
23
+ module Utils
24
+ end # module Utils
25
+
26
+ end # module Fixtures
27
+ end # module Quickl
@@ -0,0 +1,37 @@
1
+ require File.expand_path('../fixtures', __FILE__)
2
+ module Quickl
3
+ describe "RubyTools#optional_args_block_call /" do
4
+
5
+ subject{ RubyTools::optional_args_block_call(block, args) }
6
+
7
+ describe "when block has no arguments /" do
8
+ let(:block){ lambda {
9
+ "ok"
10
+ } }
11
+
12
+ describe "when no args are given" do
13
+ let(:args){ [ ] }
14
+ it { should == "ok" }
15
+ end
16
+
17
+ describe "when no args are given" do
18
+ let(:args){ [ "hello" ] }
19
+ it { should == "ok" }
20
+ end
21
+
22
+ end
23
+
24
+ describe "when block has one arguments /" do
25
+ let(:block){ lambda {|name|
26
+ name
27
+ } }
28
+
29
+ describe "when args are given" do
30
+ let(:args){ [ "hello" ] }
31
+ it { should == "hello" }
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ require File.expand_path('../fixtures', __FILE__)
2
+ module Quickl
3
+ describe "RubyTools#parent_module /" do
4
+
5
+ subject{ RubyTools::parent_module(clazz) }
6
+
7
+ describe "when called on unqualified class" do
8
+ let(:clazz){ ::String }
9
+ it{ should be_nil }
10
+ end
11
+
12
+ describe "when called on qualified class" do
13
+ let(:clazz){ RubyTools }
14
+ it{ should == Quickl }
15
+ end
16
+
17
+ describe "when called on long qualified class" do
18
+ let(:clazz){ Quickl::Fixtures::Utils }
19
+ it{ should == Quickl::Fixtures }
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift File.expand_path('../../spec', __FILE__)
3
+ require 'quickl'
4
+ require 'mini_client'
@@ -0,0 +1,78 @@
1
+ # Installs a rake task for debuging the announcement mail.
2
+ #
3
+ # This file installs the 'rake debug_mail' that flushes an announcement mail
4
+ # for your library on the standard output. It is automatically generated
5
+ # by Noe from your .noespec file, and should therefore be configured there,
6
+ # under the variables/rake_tasks/debug_mail entry, as illustrated below:
7
+ #
8
+ # variables:
9
+ # rake_tasks:
10
+ # debug_mail:
11
+ # rx_changelog_sections: /^#/
12
+ # nb_changelog_sections: 1
13
+ # ...
14
+ #
15
+ # If you have specific needs requiring manual intervention on this file,
16
+ # don't forget to set safe-override to false in your noe specification:
17
+ #
18
+ # template-info:
19
+ # manifest:
20
+ # tasks/debug_mail.rake:
21
+ # safe-override: false
22
+ #
23
+ # The mail template used can be found in debug_mail.txt. That file may be
24
+ # changed to tune the mail you want to send. If you do so, don't forget to
25
+ # add a manifest entry in your .noespec file to avoid overriding you
26
+ # changes. The mail template uses wlang, with parentheses for block
27
+ # delimiters.
28
+ #
29
+ # template-info:
30
+ # manifest:
31
+ # tasks/debug_mail.txt:
32
+ # safe-override: false
33
+ #
34
+ begin
35
+ require 'wlang'
36
+ require 'yaml'
37
+
38
+ desc "Debug the release announcement mail"
39
+ task :debug_mail do
40
+ # Check that a .noespec file exists
41
+ noespec_file = File.expand_path('../../quickl.noespec', __FILE__)
42
+ unless File.exists?(noespec_file)
43
+ raise "Unable to find .noespec project file, sorry."
44
+ end
45
+
46
+ # Load it as well as variables and options
47
+ noespec = YAML::load(File.read(noespec_file))
48
+ vars = noespec['variables'] || {}
49
+
50
+ # Changes are taken from CHANGELOG
51
+ logs = Dir[File.expand_path("../../CHANGELOG.*", __FILE__)]
52
+ unless logs.size == 1
53
+ abort "Unable to find a changelog file"
54
+ end
55
+
56
+ # Load interesting changesets
57
+ changes, end_found = [], 0
58
+ File.readlines(logs.first).select{|line|
59
+ if line =~ /^#/
60
+ break if end_found >= 1
61
+ end_found += 1
62
+ end
63
+ changes << line
64
+ }
65
+ vars['changes'] = changes.join
66
+
67
+ # WLang template
68
+ template = File.expand_path('../debug_mail.txt', __FILE__)
69
+
70
+ # Let's go!
71
+ $stdout << WLang::file_instantiate(template, vars, "wlang/active-text")
72
+ end
73
+
74
+ rescue LoadError
75
+ task :debug_mail do
76
+ abort "wlang is not available. Try 'gem install wlang'"
77
+ end
78
+ end
@@ -0,0 +1,13 @@
1
+ Subject: [ANN] !{lower} !{version} Released
2
+
3
+ !{lower} version !{version} has been released!
4
+
5
+ !{summary}
6
+
7
+ *{links as l}{* <!{l}>}{!{"\n"}}
8
+
9
+ !{description}
10
+
11
+ Changes:
12
+
13
+ !{changes}
data/tasks/gem.rake ADDED
@@ -0,0 +1,68 @@
1
+ # Installs rake tasks for gemming and packaging
2
+ #
3
+ # This file installs the 'rake package', 'rake gem' tasks and associates
4
+ # (clobber_package, repackage, ...). It is automatically generated by Noe
5
+ # from your .noespec file, and should therefore be configured there, under
6
+ # the variables/rake_tasks/gem entry, as illustrated below:
7
+ #
8
+ # variables:
9
+ # rake_tasks:
10
+ # gem:
11
+ # package_dir: pkg
12
+ # need_tar: false
13
+ # need_tar_gz: false
14
+ # need_tar_bz2: false
15
+ # need_zip: false
16
+ # ...
17
+ #
18
+ # If you have specific needs requiring manual intervention on this file,
19
+ # don't forget to set safe-override to false in your noe specification:
20
+ #
21
+ # template-info:
22
+ # manifest:
23
+ # tasks/gem.rake:
24
+ # safe-override: false
25
+ #
26
+ begin
27
+ require 'rubygems/package_task'
28
+ Gem::PackageTask.new($gemspec) do |t|
29
+
30
+ # Name of the package
31
+ t.name = $gemspec.name
32
+
33
+ # Version of the package
34
+ t.version = $gemspec.version
35
+
36
+ # Directory used to store the package files
37
+ t.package_dir = "pkg"
38
+
39
+ # True if a gzipped tar file (tgz) should be produced
40
+ t.need_tar = false
41
+
42
+ # True if a gzipped tar file (tar.gz) should be produced
43
+ t.need_tar_gz = false
44
+
45
+ # True if a bzip2'd tar file (tar.bz2) should be produced
46
+ t.need_tar_bz2 = false
47
+
48
+ # True if a zip file should be produced (default is false)
49
+ t.need_zip = false
50
+
51
+ # List of files to be included in the package.
52
+ t.package_files = $gemspec.files
53
+
54
+ # Tar command for gzipped or bzip2ed archives.
55
+ t.tar_command = "tar"
56
+
57
+ # Zip command for zipped archives.
58
+ t.zip_command = "zip"
59
+
60
+ end
61
+ rescue LoadError
62
+ task :gem do
63
+ abort 'rubygems/package_task is not available. You should verify your rubygems installation'
64
+ end
65
+ task :package do
66
+ abort 'rubygems/package_task is not available. You should verify your rubygems installation'
67
+ end
68
+ end