nutshell-crm 0.0.5 → 0.0.6.alpha
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/.rbenv-version +1 -0
- data/.travis.yml +8 -0
- data/CHANGELOG.md +5 -0
- data/README.md +37 -0
- data/Rakefile +14 -3
- data/lib/nutshell-crm.rb +92 -5
- data/lib/nutshell-crm/version.rb +1 -1
- data/nutshell-crm.gemspec +1 -0
- data/spec/nutshell-crm_spec.rb +17 -8
- data/vendor/bundle/bin/rake +19 -0
- data/vendor/bundle/gems/json-1.6.4/.gitignore +8 -0
- data/vendor/bundle/gems/json-1.6.4/.travis.yml +15 -0
- data/vendor/bundle/gems/json-1.6.4/CHANGES +227 -0
- data/vendor/bundle/gems/json-1.6.4/COPYING +58 -0
- data/vendor/bundle/gems/json-1.6.4/COPYING-json-jruby +57 -0
- data/vendor/bundle/gems/json-1.6.4/GPL +340 -0
- data/vendor/bundle/gems/json-1.6.4/Gemfile +11 -0
- data/vendor/bundle/gems/json-1.6.4/README-json-jruby.markdown +33 -0
- data/vendor/bundle/gems/json-1.6.4/README.rdoc +358 -0
- data/vendor/bundle/gems/json-1.6.4/Rakefile +408 -0
- data/vendor/bundle/gems/json-1.6.4/TODO +1 -0
- data/vendor/bundle/gems/json-1.6.4/VERSION +1 -0
- data/{README → vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/.keep} +0 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/data/.keep +0 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/generator2_benchmark.rb +222 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/generator_benchmark.rb +224 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/ohai.json +1216 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/ohai.ruby +1 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/parser2_benchmark.rb +251 -0
- data/vendor/bundle/gems/json-1.6.4/benchmarks/parser_benchmark.rb +259 -0
- data/vendor/bundle/gems/json-1.6.4/data/example.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/data/index.html +38 -0
- data/vendor/bundle/gems/json-1.6.4/data/prototype.js +4184 -0
- data/vendor/bundle/gems/json-1.6.4/diagrams/.keep +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/fbuffer/fbuffer.h +156 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/Makefile +187 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/extconf.rb +13 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.bundle +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.c +1384 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.h +161 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.o +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/json/ext/generator.bundle +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/json/ext/parser.bundle +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/Makefile +187 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/extconf.rb +13 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.bundle +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.c +2203 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.h +77 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.o +0 -0
- data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.rl +926 -0
- data/vendor/bundle/gems/json-1.6.4/install.rb +19 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/ByteListTranscoder.java +167 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Generator.java +437 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorMethods.java +232 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorService.java +43 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorState.java +522 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/OptionsReader.java +113 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Parser.java +2640 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Parser.rl +964 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/ParserService.java +35 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/RuntimeInfo.java +121 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/StringDecoder.java +166 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/StringEncoder.java +106 -0
- data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Utils.java +89 -0
- data/vendor/bundle/gems/json-1.6.4/json-java.gemspec +22 -0
- data/vendor/bundle/gems/json-1.6.4/json.gemspec +40 -0
- data/vendor/bundle/gems/json-1.6.4/json_pure.gemspec +42 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json.rb +62 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/bigdecimal.rb +21 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/complex.rb +22 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/core.rb +11 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/date.rb +34 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/date_time.rb +50 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/exception.rb +31 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/ostruct.rb +31 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/range.rb +29 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/rational.rb +22 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/regexp.rb +30 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/struct.rb +30 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/symbol.rb +25 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/add/time.rb +35 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/common.rb +470 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/ext.rb +21 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/ext/.keep +0 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/pure.rb +21 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/pure/generator.rb +468 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/pure/parser.rb +359 -0
- data/vendor/bundle/gems/json-1.6.4/lib/json/version.rb +8 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail1.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail10.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail11.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail12.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail13.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail14.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail18.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail19.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail2.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail20.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail21.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail22.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail23.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail24.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail25.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail27.json +2 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail28.json +2 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail3.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail4.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail5.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail6.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail7.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail8.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail9.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass1.json +56 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass15.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass16.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass17.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass2.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass26.json +1 -0
- data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass3.json +6 -0
- data/vendor/bundle/gems/json-1.6.4/tests/setup_variant.rb +11 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json.rb +527 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_addition.rb +188 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_encoding.rb +65 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_fixtures.rb +35 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_generate.rb +249 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_string_matching.rb +40 -0
- data/vendor/bundle/gems/json-1.6.4/tests/test_json_unicode.rb +72 -0
- data/vendor/bundle/gems/json-1.6.4/tools/fuzz.rb +139 -0
- data/vendor/bundle/gems/json-1.6.4/tools/server.rb +62 -0
- data/vendor/bundle/gems/rake-0.9.2.2/.gemtest +0 -0
- data/vendor/bundle/gems/rake-0.9.2.2/CHANGES +522 -0
- data/vendor/bundle/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
- data/vendor/bundle/gems/rake-0.9.2.2/README.rdoc +197 -0
- data/vendor/bundle/gems/rake-0.9.2.2/Rakefile +369 -0
- data/vendor/bundle/gems/rake-0.9.2.2/TODO +20 -0
- data/vendor/bundle/gems/rake-0.9.2.2/bin/rake +33 -0
- data/vendor/bundle/gems/rake-0.9.2.2/install.rb +90 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake.rb +69 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
- data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/helper.rb +492 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
- data/vendor/bundle/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
- data/vendor/bundle/specifications/json-1.6.4.gemspec +39 -0
- data/vendor/bundle/specifications/rake-0.9.2.2.gemspec +34 -0
- metadata +285 -18
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
#--
|
5
|
+
# This a FileUtils extension that defines several additional commands to be
|
6
|
+
# added to the FileUtils utility functions.
|
7
|
+
module FileUtils
|
8
|
+
# Path to the currently running Ruby program
|
9
|
+
RUBY = File.join(
|
10
|
+
RbConfig::CONFIG['bindir'],
|
11
|
+
RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']).
|
12
|
+
sub(/.*\s.*/m, '"\&"')
|
13
|
+
|
14
|
+
OPT_TABLE['sh'] = %w(noop verbose)
|
15
|
+
OPT_TABLE['ruby'] = %w(noop verbose)
|
16
|
+
|
17
|
+
# Run the system command +cmd+. If multiple arguments are given the command
|
18
|
+
# is not run with the shell (same semantics as Kernel::exec and
|
19
|
+
# Kernel::system).
|
20
|
+
#
|
21
|
+
# Example:
|
22
|
+
# sh %{ls -ltr}
|
23
|
+
#
|
24
|
+
# sh 'ls', 'file with spaces'
|
25
|
+
#
|
26
|
+
# # check exit status after command runs
|
27
|
+
# sh %{grep pattern file} do |ok, res|
|
28
|
+
# if ! ok
|
29
|
+
# puts "pattern not found (status = #{res.exitstatus})"
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
def sh(*cmd, &block)
|
34
|
+
options = (Hash === cmd.last) ? cmd.pop : {}
|
35
|
+
shell_runner = block_given? ? block : create_shell_runner(cmd)
|
36
|
+
set_verbose_option(options)
|
37
|
+
options[:noop] ||= Rake::FileUtilsExt.nowrite_flag
|
38
|
+
Rake.rake_check_options options, :noop, :verbose
|
39
|
+
Rake.rake_output_message cmd.join(" ") if options[:verbose]
|
40
|
+
|
41
|
+
unless options[:noop]
|
42
|
+
res = rake_system(*cmd)
|
43
|
+
status = $?
|
44
|
+
status = PseudoStatus.new(1) if !res && status.nil?
|
45
|
+
shell_runner.call(res, status)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def create_shell_runner(cmd) # :nodoc:
|
50
|
+
show_command = cmd.join(" ")
|
51
|
+
show_command = show_command[0,42] + "..." unless $trace
|
52
|
+
lambda { |ok, status|
|
53
|
+
ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
|
54
|
+
}
|
55
|
+
end
|
56
|
+
private :create_shell_runner
|
57
|
+
|
58
|
+
def set_verbose_option(options) # :nodoc:
|
59
|
+
unless options.key? :verbose
|
60
|
+
options[:verbose] =
|
61
|
+
Rake::FileUtilsExt.verbose_flag == Rake::FileUtilsExt::DEFAULT ||
|
62
|
+
Rake::FileUtilsExt.verbose_flag
|
63
|
+
end
|
64
|
+
end
|
65
|
+
private :set_verbose_option
|
66
|
+
|
67
|
+
def rake_system(*cmd) # :nodoc:
|
68
|
+
Rake::AltSystem.system(*cmd)
|
69
|
+
end
|
70
|
+
private :rake_system
|
71
|
+
|
72
|
+
# Run a Ruby interpreter with the given arguments.
|
73
|
+
#
|
74
|
+
# Example:
|
75
|
+
# ruby %{-pe '$_.upcase!' <README}
|
76
|
+
#
|
77
|
+
def ruby(*args,&block)
|
78
|
+
options = (Hash === args.last) ? args.pop : {}
|
79
|
+
if args.length > 1 then
|
80
|
+
sh(*([RUBY] + args + [options]), &block)
|
81
|
+
else
|
82
|
+
sh("#{RUBY} #{args.first}", options, &block)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
LN_SUPPORTED = [true]
|
87
|
+
|
88
|
+
# Attempt to do a normal file link, but fall back to a copy if the link
|
89
|
+
# fails.
|
90
|
+
def safe_ln(*args)
|
91
|
+
unless LN_SUPPORTED[0]
|
92
|
+
cp(*args)
|
93
|
+
else
|
94
|
+
begin
|
95
|
+
ln(*args)
|
96
|
+
rescue StandardError, NotImplementedError
|
97
|
+
LN_SUPPORTED[0] = false
|
98
|
+
cp(*args)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
# Split a file path into individual directory names.
|
104
|
+
#
|
105
|
+
# Example:
|
106
|
+
# split_all("a/b/c") => ['a', 'b', 'c']
|
107
|
+
#
|
108
|
+
def split_all(path)
|
109
|
+
head, tail = File.split(path)
|
110
|
+
return [tail] if head == '.' || tail == '/'
|
111
|
+
return [head, tail] if head == '/'
|
112
|
+
return split_all(head) + [tail]
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
require 'rake/file_utils'
|
2
|
+
|
3
|
+
module Rake
|
4
|
+
#
|
5
|
+
# FileUtilsExt provides a custom version of the FileUtils methods
|
6
|
+
# that respond to the <tt>verbose</tt> and <tt>nowrite</tt>
|
7
|
+
# commands.
|
8
|
+
#
|
9
|
+
module FileUtilsExt
|
10
|
+
include FileUtils
|
11
|
+
|
12
|
+
class << self
|
13
|
+
attr_accessor :verbose_flag, :nowrite_flag
|
14
|
+
end
|
15
|
+
|
16
|
+
DEFAULT = Object.new
|
17
|
+
|
18
|
+
FileUtilsExt.verbose_flag = DEFAULT
|
19
|
+
FileUtilsExt.nowrite_flag = false
|
20
|
+
|
21
|
+
$fileutils_verbose = true
|
22
|
+
$fileutils_nowrite = false
|
23
|
+
|
24
|
+
FileUtils::OPT_TABLE.each do |name, opts|
|
25
|
+
default_options = []
|
26
|
+
if opts.include?(:verbose) || opts.include?("verbose")
|
27
|
+
default_options << ':verbose => FileUtilsExt.verbose_flag'
|
28
|
+
end
|
29
|
+
if opts.include?(:noop) || opts.include?("noop")
|
30
|
+
default_options << ':noop => FileUtilsExt.nowrite_flag'
|
31
|
+
end
|
32
|
+
|
33
|
+
next if default_options.empty?
|
34
|
+
module_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
35
|
+
def #{name}( *args, &block )
|
36
|
+
super(
|
37
|
+
*rake_merge_option(args,
|
38
|
+
#{default_options.join(', ')}
|
39
|
+
), &block)
|
40
|
+
end
|
41
|
+
EOS
|
42
|
+
end
|
43
|
+
|
44
|
+
# Get/set the verbose flag controlling output from the FileUtils
|
45
|
+
# utilities. If verbose is true, then the utility method is
|
46
|
+
# echoed to standard output.
|
47
|
+
#
|
48
|
+
# Examples:
|
49
|
+
# verbose # return the current value of the
|
50
|
+
# # verbose flag
|
51
|
+
# verbose(v) # set the verbose flag to _v_.
|
52
|
+
# verbose(v) { code } # Execute code with the verbose flag set
|
53
|
+
# # temporarily to _v_. Return to the
|
54
|
+
# # original value when code is done.
|
55
|
+
def verbose(value=nil)
|
56
|
+
oldvalue = FileUtilsExt.verbose_flag
|
57
|
+
FileUtilsExt.verbose_flag = value unless value.nil?
|
58
|
+
if block_given?
|
59
|
+
begin
|
60
|
+
yield
|
61
|
+
ensure
|
62
|
+
FileUtilsExt.verbose_flag = oldvalue
|
63
|
+
end
|
64
|
+
end
|
65
|
+
FileUtilsExt.verbose_flag
|
66
|
+
end
|
67
|
+
|
68
|
+
# Get/set the nowrite flag controlling output from the FileUtils
|
69
|
+
# utilities. If verbose is true, then the utility method is
|
70
|
+
# echoed to standard output.
|
71
|
+
#
|
72
|
+
# Examples:
|
73
|
+
# nowrite # return the current value of the
|
74
|
+
# # nowrite flag
|
75
|
+
# nowrite(v) # set the nowrite flag to _v_.
|
76
|
+
# nowrite(v) { code } # Execute code with the nowrite flag set
|
77
|
+
# # temporarily to _v_. Return to the
|
78
|
+
# # original value when code is done.
|
79
|
+
def nowrite(value=nil)
|
80
|
+
oldvalue = FileUtilsExt.nowrite_flag
|
81
|
+
FileUtilsExt.nowrite_flag = value unless value.nil?
|
82
|
+
if block_given?
|
83
|
+
begin
|
84
|
+
yield
|
85
|
+
ensure
|
86
|
+
FileUtilsExt.nowrite_flag = oldvalue
|
87
|
+
end
|
88
|
+
end
|
89
|
+
oldvalue
|
90
|
+
end
|
91
|
+
|
92
|
+
# Use this function to prevent potentially destructive ruby code
|
93
|
+
# from running when the :nowrite flag is set.
|
94
|
+
#
|
95
|
+
# Example:
|
96
|
+
#
|
97
|
+
# when_writing("Building Project") do
|
98
|
+
# project.build
|
99
|
+
# end
|
100
|
+
#
|
101
|
+
# The following code will build the project under normal
|
102
|
+
# conditions. If the nowrite(true) flag is set, then the example
|
103
|
+
# will print:
|
104
|
+
#
|
105
|
+
# DRYRUN: Building Project
|
106
|
+
#
|
107
|
+
# instead of actually building the project.
|
108
|
+
#
|
109
|
+
def when_writing(msg=nil)
|
110
|
+
if FileUtilsExt.nowrite_flag
|
111
|
+
$stderr.puts "DRYRUN: #{msg}" if msg
|
112
|
+
else
|
113
|
+
yield
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
# Merge the given options with the default values.
|
118
|
+
def rake_merge_option(args, defaults)
|
119
|
+
if Hash === args.last
|
120
|
+
defaults.update(args.last)
|
121
|
+
args.pop
|
122
|
+
end
|
123
|
+
args.push defaults
|
124
|
+
args
|
125
|
+
end
|
126
|
+
|
127
|
+
# Send the message to the default rake output (which is $stderr).
|
128
|
+
def rake_output_message(message)
|
129
|
+
$stderr.puts(message)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Check that the options do not contain options not listed in
|
133
|
+
# +optdecl+. An ArgumentError exception is thrown if non-declared
|
134
|
+
# options are found.
|
135
|
+
def rake_check_options(options, *optdecl)
|
136
|
+
h = options.dup
|
137
|
+
optdecl.each do |name|
|
138
|
+
h.delete name
|
139
|
+
end
|
140
|
+
raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless h.empty?
|
141
|
+
end
|
142
|
+
|
143
|
+
extend self
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# rake/gempackagetask is deprecated in favor of rubygems/package_task
|
2
|
+
|
3
|
+
warn 'rake/gempackagetask is deprecated. Use rubygems/package_task instead'
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'rubygems/package_task'
|
7
|
+
|
8
|
+
require 'rake'
|
9
|
+
|
10
|
+
# :stopdoc:
|
11
|
+
|
12
|
+
module Rake
|
13
|
+
GemPackageTask = Gem::PackageTask
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
####################################################################
|
4
|
+
# InvocationChain tracks the chain of task invocations to detect
|
5
|
+
# circular dependencies.
|
6
|
+
class InvocationChain
|
7
|
+
def initialize(value, tail)
|
8
|
+
@value = value
|
9
|
+
@tail = tail
|
10
|
+
end
|
11
|
+
|
12
|
+
def member?(obj)
|
13
|
+
@value == obj || @tail.member?(obj)
|
14
|
+
end
|
15
|
+
|
16
|
+
def append(value)
|
17
|
+
if member?(value)
|
18
|
+
fail RuntimeError, "Circular dependency detected: #{to_s} => #{value}"
|
19
|
+
end
|
20
|
+
self.class.new(value, self)
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
"#{prefix}#{@value}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.append(value, chain)
|
28
|
+
chain.append(value)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def prefix
|
34
|
+
"#{@tail.to_s} => "
|
35
|
+
end
|
36
|
+
|
37
|
+
class EmptyInvocationChain
|
38
|
+
def member?(obj)
|
39
|
+
false
|
40
|
+
end
|
41
|
+
def append(value)
|
42
|
+
InvocationChain.new(value, self)
|
43
|
+
end
|
44
|
+
def to_s
|
45
|
+
"TOP"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
EMPTY = EmptyInvocationChain.new
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Rake
|
2
|
+
module InvocationExceptionMixin
|
3
|
+
# Return the invocation chain (list of Rake tasks) that were in
|
4
|
+
# effect when this exception was detected by rake. May be null if
|
5
|
+
# no tasks were active.
|
6
|
+
def chain
|
7
|
+
@rake_invocation_chain ||= nil
|
8
|
+
end
|
9
|
+
|
10
|
+
# Set the invocation chain in effect when this exception was
|
11
|
+
# detected.
|
12
|
+
def chain=(value)
|
13
|
+
@rake_invocation_chain = value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
# Makefile loader to be used with the import file loader.
|
4
|
+
class MakefileLoader
|
5
|
+
include Rake::DSL
|
6
|
+
|
7
|
+
SPACE_MARK = "\0"
|
8
|
+
|
9
|
+
# Load the makefile dependencies in +fn+.
|
10
|
+
def load(fn)
|
11
|
+
lines = File.read fn
|
12
|
+
lines.gsub!(/\\ /, SPACE_MARK)
|
13
|
+
lines.gsub!(/#[^\n]*\n/m, "")
|
14
|
+
lines.gsub!(/\\\n/, ' ')
|
15
|
+
lines.each_line do |line|
|
16
|
+
process_line(line)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
# Process one logical line of makefile data.
|
23
|
+
def process_line(line)
|
24
|
+
file_tasks, args = line.split(':', 2)
|
25
|
+
return if args.nil?
|
26
|
+
dependents = args.split.map { |d| respace(d) }
|
27
|
+
file_tasks.scan(/\S+/) do |file_task|
|
28
|
+
file_task = respace(file_task)
|
29
|
+
file file_task => dependents
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def respace(str)
|
34
|
+
str.tr SPACE_MARK, ' '
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Install the handler
|
39
|
+
Rake.application.add_loader('mf', MakefileLoader.new)
|
40
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
# Same as a regular task, but the immediate prerequisites are done in
|
4
|
+
# parallel using Ruby threads.
|
5
|
+
#
|
6
|
+
class MultiTask < Task
|
7
|
+
private
|
8
|
+
def invoke_prerequisites(args, invocation_chain)
|
9
|
+
threads = @prerequisites.collect { |p|
|
10
|
+
Thread.new(p) { |r| application[r, @scope].invoke_with_call_chain(args, invocation_chain) }
|
11
|
+
}
|
12
|
+
threads.each { |t| t.join }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
# The NameSpace class will lookup task names in the the scope
|
4
|
+
# defined by a +namespace+ command.
|
5
|
+
#
|
6
|
+
class NameSpace
|
7
|
+
|
8
|
+
# Create a namespace lookup object using the given task manager
|
9
|
+
# and the list of scopes.
|
10
|
+
def initialize(task_manager, scope_list)
|
11
|
+
@task_manager = task_manager
|
12
|
+
@scope = scope_list.dup
|
13
|
+
end
|
14
|
+
|
15
|
+
# Lookup a task named +name+ in the namespace.
|
16
|
+
def [](name)
|
17
|
+
@task_manager.lookup(name, @scope)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Return the list of tasks defined in this and nested namespaces.
|
21
|
+
def tasks
|
22
|
+
@task_manager.tasks_in_scope(@scope)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# Define a package task library to aid in the definition of
|
2
|
+
# redistributable package files.
|
3
|
+
|
4
|
+
require 'rake'
|
5
|
+
require 'rake/tasklib'
|
6
|
+
|
7
|
+
module Rake
|
8
|
+
|
9
|
+
# Create a packaging task that will package the project into
|
10
|
+
# distributable files (e.g zip archive or tar files).
|
11
|
+
#
|
12
|
+
# The PackageTask will create the following targets:
|
13
|
+
#
|
14
|
+
# [<b>:package</b>]
|
15
|
+
# Create all the requested package files.
|
16
|
+
#
|
17
|
+
# [<b>:clobber_package</b>]
|
18
|
+
# Delete all the package files. This target is automatically
|
19
|
+
# added to the main clobber target.
|
20
|
+
#
|
21
|
+
# [<b>:repackage</b>]
|
22
|
+
# Rebuild the package files from scratch, even if they are not out
|
23
|
+
# of date.
|
24
|
+
#
|
25
|
+
# [<b>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tgz"</b>]
|
26
|
+
# Create a gzipped tar package (if <em>need_tar</em> is true).
|
27
|
+
#
|
28
|
+
# [<b>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.gz"</b>]
|
29
|
+
# Create a gzipped tar package (if <em>need_tar_gz</em> is true).
|
30
|
+
#
|
31
|
+
# [<b>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.bz2"</b>]
|
32
|
+
# Create a bzip2'd tar package (if <em>need_tar_bz2</em> is true).
|
33
|
+
#
|
34
|
+
# [<b>"<em>package_dir</em>/<em>name</em>-<em>version</em>.zip"</b>]
|
35
|
+
# Create a zip package archive (if <em>need_zip</em> is true).
|
36
|
+
#
|
37
|
+
# Example:
|
38
|
+
#
|
39
|
+
# Rake::PackageTask.new("rake", "1.2.3") do |p|
|
40
|
+
# p.need_tar = true
|
41
|
+
# p.package_files.include("lib/**/*.rb")
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
class PackageTask < TaskLib
|
45
|
+
# Name of the package (from the GEM Spec).
|
46
|
+
attr_accessor :name
|
47
|
+
|
48
|
+
# Version of the package (e.g. '1.3.2').
|
49
|
+
attr_accessor :version
|
50
|
+
|
51
|
+
# Directory used to store the package files (default is 'pkg').
|
52
|
+
attr_accessor :package_dir
|
53
|
+
|
54
|
+
# True if a gzipped tar file (tgz) should be produced (default is false).
|
55
|
+
attr_accessor :need_tar
|
56
|
+
|
57
|
+
# True if a gzipped tar file (tar.gz) should be produced (default is false).
|
58
|
+
attr_accessor :need_tar_gz
|
59
|
+
|
60
|
+
# True if a bzip2'd tar file (tar.bz2) should be produced (default is false).
|
61
|
+
attr_accessor :need_tar_bz2
|
62
|
+
|
63
|
+
# True if a zip file should be produced (default is false)
|
64
|
+
attr_accessor :need_zip
|
65
|
+
|
66
|
+
# List of files to be included in the package.
|
67
|
+
attr_accessor :package_files
|
68
|
+
|
69
|
+
# Tar command for gzipped or bzip2ed archives. The default is 'tar'.
|
70
|
+
attr_accessor :tar_command
|
71
|
+
|
72
|
+
# Zip command for zipped archives. The default is 'zip'.
|
73
|
+
attr_accessor :zip_command
|
74
|
+
|
75
|
+
# Create a Package Task with the given name and version. Use +:noversion+
|
76
|
+
# as the version to build a package without a version or to provide a
|
77
|
+
# fully-versioned package name.
|
78
|
+
|
79
|
+
def initialize(name=nil, version=nil)
|
80
|
+
init(name, version)
|
81
|
+
yield self if block_given?
|
82
|
+
define unless name.nil?
|
83
|
+
end
|
84
|
+
|
85
|
+
# Initialization that bypasses the "yield self" and "define" step.
|
86
|
+
def init(name, version)
|
87
|
+
@name = name
|
88
|
+
@version = version
|
89
|
+
@package_files = Rake::FileList.new
|
90
|
+
@package_dir = 'pkg'
|
91
|
+
@need_tar = false
|
92
|
+
@need_tar_gz = false
|
93
|
+
@need_tar_bz2 = false
|
94
|
+
@need_zip = false
|
95
|
+
@tar_command = 'tar'
|
96
|
+
@zip_command = 'zip'
|
97
|
+
end
|
98
|
+
|
99
|
+
# Create the tasks defined by this task library.
|
100
|
+
def define
|
101
|
+
fail "Version required (or :noversion)" if @version.nil?
|
102
|
+
@version = nil if :noversion == @version
|
103
|
+
|
104
|
+
desc "Build all the packages"
|
105
|
+
task :package
|
106
|
+
|
107
|
+
desc "Force a rebuild of the package files"
|
108
|
+
task :repackage => [:clobber_package, :package]
|
109
|
+
|
110
|
+
desc "Remove package products"
|
111
|
+
task :clobber_package do
|
112
|
+
rm_r package_dir rescue nil
|
113
|
+
end
|
114
|
+
|
115
|
+
task :clobber => [:clobber_package]
|
116
|
+
|
117
|
+
[
|
118
|
+
[need_tar, tgz_file, "z"],
|
119
|
+
[need_tar_gz, tar_gz_file, "z"],
|
120
|
+
[need_tar_bz2, tar_bz2_file, "j"]
|
121
|
+
].each do |(need, file, flag)|
|
122
|
+
if need
|
123
|
+
task :package => ["#{package_dir}/#{file}"]
|
124
|
+
file "#{package_dir}/#{file}" => [package_dir_path] + package_files do
|
125
|
+
chdir(package_dir) do
|
126
|
+
sh %{#{@tar_command} #{flag}cvf #{file} #{package_name}}
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
if need_zip
|
133
|
+
task :package => ["#{package_dir}/#{zip_file}"]
|
134
|
+
file "#{package_dir}/#{zip_file}" => [package_dir_path] + package_files do
|
135
|
+
chdir(package_dir) do
|
136
|
+
sh %{#{@zip_command} -r #{zip_file} #{package_name}}
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
directory package_dir
|
142
|
+
|
143
|
+
file package_dir_path => @package_files do
|
144
|
+
mkdir_p package_dir rescue nil
|
145
|
+
@package_files.each do |fn|
|
146
|
+
f = File.join(package_dir_path, fn)
|
147
|
+
fdir = File.dirname(f)
|
148
|
+
mkdir_p(fdir) if !File.exist?(fdir)
|
149
|
+
if File.directory?(fn)
|
150
|
+
mkdir_p(f)
|
151
|
+
else
|
152
|
+
rm_f f
|
153
|
+
safe_ln(fn, f)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
self
|
158
|
+
end
|
159
|
+
|
160
|
+
def package_name
|
161
|
+
@version ? "#{@name}-#{@version}" : @name
|
162
|
+
end
|
163
|
+
|
164
|
+
def package_dir_path
|
165
|
+
"#{package_dir}/#{package_name}"
|
166
|
+
end
|
167
|
+
|
168
|
+
def tgz_file
|
169
|
+
"#{package_name}.tgz"
|
170
|
+
end
|
171
|
+
|
172
|
+
def tar_gz_file
|
173
|
+
"#{package_name}.tar.gz"
|
174
|
+
end
|
175
|
+
|
176
|
+
def tar_bz2_file
|
177
|
+
"#{package_name}.tar.bz2"
|
178
|
+
end
|
179
|
+
|
180
|
+
def zip_file
|
181
|
+
"#{package_name}.zip"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|