bundle_depot 0.0.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.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +54 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/bin/bundle-depot +6 -0
- data/bundle_depot.gemspec +27 -0
- data/config/cucumber.yml +7 -0
- data/features/cli.feature +59 -0
- data/features/fetch.feature +60 -0
- data/features/step_definitions/cli_steps.rb +19 -0
- data/features/step_definitions/store_steps.rb +58 -0
- data/features/store.feature +30 -0
- data/features/support/capture_output.rb +49 -0
- data/features/support/env.rb +42 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/build_info/json_pure-1.8.1.info +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/cache/json_pure-1.8.1.gem +0 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/.gitignore +13 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/.travis.yml +20 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/CHANGES +284 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/COPYING +58 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/COPYING-json-jruby +57 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/GPL +340 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/Gemfile +11 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/README-json-jruby.markdown +33 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/README.rdoc +358 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/Rakefile +412 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/TODO +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/VERSION +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/data/example.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/data/index.html +38 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/data/prototype.js +4184 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/diagrams/.keep +0 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/fbuffer/fbuffer.h +181 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/generator/depend +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/generator/extconf.rb +14 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/generator/generator.c +1435 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/generator/generator.h +148 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/parser/depend +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/parser/extconf.rb +13 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/parser/parser.c +2204 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/parser/parser.h +77 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/ext/json/ext/parser/parser.rl +927 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/install.rb +23 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/ByteListTranscoder.java +167 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/Generator.java +444 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/GeneratorMethods.java +232 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/GeneratorService.java +43 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/GeneratorState.java +543 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/OptionsReader.java +114 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/Parser.java +2644 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/Parser.rl +968 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/ParserService.java +35 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/RuntimeInfo.java +121 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/StringDecoder.java +167 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/StringEncoder.java +106 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/java/src/json/ext/Utils.java +89 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/json-java.gemspec +23 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/json.gemspec +38 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/json_pure.gemspec +40 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/bigdecimal.rb +28 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/complex.rb +22 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/core.rb +11 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/date.rb +34 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/date_time.rb +50 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/exception.rb +31 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/ostruct.rb +31 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/range.rb +29 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/rational.rb +22 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/regexp.rb +30 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/struct.rb +30 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/symbol.rb +25 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/add/time.rb +38 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/common.rb +484 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/ext/.keep +0 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/ext.rb +21 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/generic_object.rb +70 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/pure/generator.rb +522 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/pure/parser.rb +359 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/pure.rb +21 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json/version.rb +8 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/lib/json.rb +62 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail1.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail10.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail11.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail12.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail13.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail14.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail18.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail19.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail2.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail20.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail21.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail22.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail23.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail24.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail25.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail27.json +2 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail28.json +2 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail3.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail4.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail5.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail6.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail7.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail8.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/fail9.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass1.json +56 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass15.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass16.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass17.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass2.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass26.json +1 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/fixtures/pass3.json +6 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/setup_variant.rb +11 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json.rb +545 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_addition.rb +196 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_encoding.rb +65 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_fixtures.rb +35 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_generate.rb +322 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_generic_object.rb +75 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_string_matching.rb +39 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tests/test_json_unicode.rb +72 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tools/fuzz.rb +139 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/gems/json_pure-1.8.1/tools/server.rb +62 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c/ruby/2.0.0/specifications/json_pure-1.8.1.gemspec +38 -0
- data/fixtures/bundle/json/bde95daa2ce7dede336b4367b9e3a0690027bd6f071e0fdcb1b3047cf988963c.tar.gz +0 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/build_info/rake-10.1.0.info +1 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/cache/rake-10.1.0.gem +0 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/.gemtest +0 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/CHANGES +530 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/MIT-LICENSE +21 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/README.rdoc +187 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/Rakefile +375 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/TODO +21 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/command_line_usage.rdoc +152 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/example/Rakefile1 +38 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/example/Rakefile2 +35 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/example/a.c +6 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/example/b.c +6 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/example/main.c +11 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/glossary.rdoc +51 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/jamis.rb +591 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/proto_rake.rdoc +127 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/rake.1.gz +0 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/rakefile.rdoc +617 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/rational.rdoc +151 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.6.rdoc +55 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.4.rdoc +110 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.5.rdoc +114 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-0.9.6.rdoc +127 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-10.0.1.rdoc +187 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-10.0.2.rdoc +191 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/install.rb +80 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/alt_system.rb +108 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb +728 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/backtrace.rb +20 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/clean.rb +55 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/cloneable.rb +16 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/ftptools.rb +139 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/publisher.rb +73 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/rubyforgepublisher.rb +16 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/sshpublisher.rb +50 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/contrib/sys.rb +2 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/default_loader.rb +10 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/dsl_definition.rb +157 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/early_time.rb +18 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/ext/core.rb +28 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/ext/module.rb +0 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/ext/string.rb +166 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/ext/time.rb +15 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/file_creation_task.rb +24 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/file_list.rb +416 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/file_task.rb +46 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/file_utils.rb +116 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/file_utils_ext.rb +144 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/gempackagetask.rb +2 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/invocation_chain.rb +57 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/linked_list.rb +103 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/loaders/makefile.rb +40 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/multi_task.rb +13 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/name_space.rb +25 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/packagetask.rb +190 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/pathmap.rb +1 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/phony.rb +15 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/private_reader.rb +20 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/promise.rb +99 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/pseudo_status.rb +29 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rake_module.rb +37 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rake_test_loader.rb +22 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rdoctask.rb +2 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/ruby182_test_unit_fix.rb +27 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/runtest.rb +22 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/scope.rb +42 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb +378 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task_argument_error.rb +7 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task_arguments.rb +89 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task_manager.rb +297 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/tasklib.rb +22 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/testtask.rb +201 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/thread_history_display.rb +48 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/thread_pool.rb +161 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/trace_output.rb +22 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/version.rb +9 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake/win32.rb +56 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/lib/rake.rb +73 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/file_creation.rb +34 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/helper.rb +128 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/support/rakefile_definitions.rb +444 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/support/ruby_runner.rb +33 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_private_reader.rb +42 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake.rb +40 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_application.rb +517 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_application_options.rb +457 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_backtrace.rb +113 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_clean.rb +46 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_definitions.rb +79 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_directory_task.rb +57 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_dsl.rb +40 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_early_time.rb +31 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_extension.rb +59 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_file_creation_task.rb +56 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_file_list.rb +627 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_file_list_path_map.rb +8 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_file_task.rb +122 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_file_utils.rb +309 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_ftp_file.rb +74 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_functional.rb +466 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_invocation_chain.rb +64 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_linked_list.rb +84 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_makefile_loader.rb +46 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_multi_task.rb +58 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_name_space.rb +43 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_package_task.rb +79 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_path_map.rb +168 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_path_map_explode.rb +34 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_path_map_partial.rb +18 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_pseudo_status.rb +21 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_rake_test_loader.rb +20 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_reduce_compat.rb +26 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_require.rb +40 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_rules.rb +362 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_scope.rb +44 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task.rb +376 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_argument_parsing.rb +103 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_arguments.rb +121 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_lib.rb +9 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_manager.rb +158 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_task_with_arguments.rb +171 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_test_task.rb +119 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_thread_pool.rb +142 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_top_level_functions.rb +71 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_rake_win32.rb +72 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_thread_history_display.rb +101 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/gems/rake-10.1.0/test/test_trace_output.rb +52 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d/ruby/2.0.0/specifications/rake-10.1.0.gemspec +35 -0
- data/fixtures/bundle/rake/4c3a94088cd7bd0ac6b190c7f40a19c809356cda7fbd7dd8860ed3155b8e5c3d.tar.gz +0 -0
- data/fixtures/project/json/Gemfile +3 -0
- data/fixtures/project/json/Gemfile.lock +10 -0
- data/fixtures/project/json/vendor/cache/json_pure-1.8.1.gem +0 -0
- data/fixtures/project/rake/Gemfile +3 -0
- data/fixtures/project/rake/Gemfile.lock +10 -0
- data/fixtures/project/rake/vendor/cache/rake-10.1.0.gem +0 -0
- data/lib/bundle_depot/cache.rb +136 -0
- data/lib/bundle_depot/cli.rb +51 -0
- data/lib/bundle_depot/version.rb +3 -0
- data/lib/bundle_depot.rb +6 -0
- metadata +417 -0
@@ -0,0 +1,166 @@
|
|
1
|
+
require 'rake/ext/core'
|
2
|
+
|
3
|
+
######################################################################
|
4
|
+
# Rake extension methods for String.
|
5
|
+
#
|
6
|
+
class String
|
7
|
+
|
8
|
+
rake_extension("ext") do
|
9
|
+
# Replace the file extension with +newext+. If there is no extension on
|
10
|
+
# the string, append the new extension to the end. If the new extension
|
11
|
+
# is not given, or is the empty string, remove any existing extension.
|
12
|
+
#
|
13
|
+
# +ext+ is a user added method for the String class.
|
14
|
+
def ext(newext='')
|
15
|
+
return self.dup if ['.', '..'].include? self
|
16
|
+
newext = (newext =~ /^\./) ? newext : ("." + newext) if newext != ''
|
17
|
+
self.chomp(File.extname(self)) << newext
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
rake_extension("pathmap") do
|
22
|
+
# Explode a path into individual components. Used by +pathmap+.
|
23
|
+
def pathmap_explode
|
24
|
+
head, tail = File.split(self)
|
25
|
+
return [self] if head == self
|
26
|
+
return [tail] if head == '.' || tail == '/'
|
27
|
+
return [head, tail] if head == '/'
|
28
|
+
return head.pathmap_explode + [tail]
|
29
|
+
end
|
30
|
+
protected :pathmap_explode
|
31
|
+
|
32
|
+
# Extract a partial path from the path. Include +n+ directories from the
|
33
|
+
# front end (left hand side) if +n+ is positive. Include |+n+|
|
34
|
+
# directories from the back end (right hand side) if +n+ is negative.
|
35
|
+
def pathmap_partial(n)
|
36
|
+
dirs = File.dirname(self).pathmap_explode
|
37
|
+
partial_dirs =
|
38
|
+
if n > 0
|
39
|
+
dirs[0...n]
|
40
|
+
elsif n < 0
|
41
|
+
dirs.reverse[0...-n].reverse
|
42
|
+
else
|
43
|
+
"."
|
44
|
+
end
|
45
|
+
File.join(partial_dirs)
|
46
|
+
end
|
47
|
+
protected :pathmap_partial
|
48
|
+
|
49
|
+
# Preform the pathmap replacement operations on the given path. The
|
50
|
+
# patterns take the form 'pat1,rep1;pat2,rep2...'.
|
51
|
+
def pathmap_replace(patterns, &block)
|
52
|
+
result = self
|
53
|
+
patterns.split(';').each do |pair|
|
54
|
+
pattern, replacement = pair.split(',')
|
55
|
+
pattern = Regexp.new(pattern)
|
56
|
+
if replacement == '*' && block_given?
|
57
|
+
result = result.sub(pattern, &block)
|
58
|
+
elsif replacement
|
59
|
+
result = result.sub(pattern, replacement)
|
60
|
+
else
|
61
|
+
result = result.sub(pattern, '')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
result
|
65
|
+
end
|
66
|
+
protected :pathmap_replace
|
67
|
+
|
68
|
+
# Map the path according to the given specification. The specification
|
69
|
+
# controls the details of the mapping. The following special patterns are
|
70
|
+
# recognized:
|
71
|
+
#
|
72
|
+
# * <b>%p</b> -- The complete path.
|
73
|
+
# * <b>%f</b> -- The base file name of the path, with its file extension,
|
74
|
+
# but without any directories.
|
75
|
+
# * <b>%n</b> -- The file name of the path without its file extension.
|
76
|
+
# * <b>%d</b> -- The directory list of the path.
|
77
|
+
# * <b>%x</b> -- The file extension of the path. An empty string if there
|
78
|
+
# is no extension.
|
79
|
+
# * <b>%X</b> -- Everything *but* the file extension.
|
80
|
+
# * <b>%s</b> -- The alternate file separator if defined, otherwise use
|
81
|
+
# the standard file separator.
|
82
|
+
# * <b>%%</b> -- A percent sign.
|
83
|
+
#
|
84
|
+
# The %d specifier can also have a numeric prefix (e.g. '%2d'). If the
|
85
|
+
# number is positive, only return (up to) +n+ directories in the path,
|
86
|
+
# starting from the left hand side. If +n+ is negative, return (up to)
|
87
|
+
# |+n+| directories from the right hand side of the path.
|
88
|
+
#
|
89
|
+
# Examples:
|
90
|
+
#
|
91
|
+
# 'a/b/c/d/file.txt'.pathmap("%2d") => 'a/b'
|
92
|
+
# 'a/b/c/d/file.txt'.pathmap("%-2d") => 'c/d'
|
93
|
+
#
|
94
|
+
# Also the %d, %p, %f, %n, %x, and %X operators can take a
|
95
|
+
# pattern/replacement argument to perform simple string substitutions on a
|
96
|
+
# particular part of the path. The pattern and replacement are separated
|
97
|
+
# by a comma and are enclosed by curly braces. The replacement spec comes
|
98
|
+
# after the % character but before the operator letter. (e.g.
|
99
|
+
# "%{old,new}d"). Multiple replacement specs should be separated by
|
100
|
+
# semi-colons (e.g. "%{old,new;src,bin}d").
|
101
|
+
#
|
102
|
+
# Regular expressions may be used for the pattern, and back refs may be
|
103
|
+
# used in the replacement text. Curly braces, commas and semi-colons are
|
104
|
+
# excluded from both the pattern and replacement text (let's keep parsing
|
105
|
+
# reasonable).
|
106
|
+
#
|
107
|
+
# For example:
|
108
|
+
#
|
109
|
+
# "src/org/onestepback/proj/A.java".pathmap("%{^src,bin}X.class")
|
110
|
+
#
|
111
|
+
# returns:
|
112
|
+
#
|
113
|
+
# "bin/org/onestepback/proj/A.class"
|
114
|
+
#
|
115
|
+
# If the replacement text is '*', then a block may be provided to perform
|
116
|
+
# some arbitrary calculation for the replacement.
|
117
|
+
#
|
118
|
+
# For example:
|
119
|
+
#
|
120
|
+
# "/path/to/file.TXT".pathmap("%X%{.*,*}x") { |ext|
|
121
|
+
# ext.downcase
|
122
|
+
# }
|
123
|
+
#
|
124
|
+
# Returns:
|
125
|
+
#
|
126
|
+
# "/path/to/file.txt"
|
127
|
+
#
|
128
|
+
def pathmap(spec=nil, &block)
|
129
|
+
return self if spec.nil?
|
130
|
+
result = ''
|
131
|
+
spec.scan(/%\{[^}]*\}-?\d*[sdpfnxX%]|%-?\d+d|%.|[^%]+/) do |frag|
|
132
|
+
case frag
|
133
|
+
when '%f'
|
134
|
+
result << File.basename(self)
|
135
|
+
when '%n'
|
136
|
+
result << File.basename(self).ext
|
137
|
+
when '%d'
|
138
|
+
result << File.dirname(self)
|
139
|
+
when '%x'
|
140
|
+
result << File.extname(self)
|
141
|
+
when '%X'
|
142
|
+
result << self.ext
|
143
|
+
when '%p'
|
144
|
+
result << self
|
145
|
+
when '%s'
|
146
|
+
result << (File::ALT_SEPARATOR || File::SEPARATOR)
|
147
|
+
when '%-'
|
148
|
+
# do nothing
|
149
|
+
when '%%'
|
150
|
+
result << "%"
|
151
|
+
when /%(-?\d+)d/
|
152
|
+
result << pathmap_partial($1.to_i)
|
153
|
+
when /^%\{([^}]*)\}(\d*[dpfnxX])/
|
154
|
+
patterns, operator = $1, $2
|
155
|
+
result << pathmap('%' + operator).pathmap_replace(patterns, &block)
|
156
|
+
when /^%/
|
157
|
+
fail ArgumentError, "Unknown pathmap specifier #{frag} in '#{spec}'"
|
158
|
+
else
|
159
|
+
result << frag
|
160
|
+
end
|
161
|
+
end
|
162
|
+
result
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#--
|
2
|
+
# Extensions to time to allow comparisons with an early time class.
|
3
|
+
|
4
|
+
require 'rake/early_time'
|
5
|
+
|
6
|
+
class Time
|
7
|
+
alias rake_original_time_compare :<=>
|
8
|
+
def <=>(other)
|
9
|
+
if Rake::EarlyTime === other
|
10
|
+
- other.<=>(self)
|
11
|
+
else
|
12
|
+
rake_original_time_compare(other)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rake/file_task'
|
2
|
+
require 'rake/early_time'
|
3
|
+
|
4
|
+
module Rake
|
5
|
+
|
6
|
+
# A FileCreationTask is a file task that when used as a dependency will be
|
7
|
+
# needed if and only if the file has not been created. Once created, it is
|
8
|
+
# not re-triggered if any of its dependencies are newer, nor does trigger
|
9
|
+
# any rebuilds of tasks that depend on it whenever it is updated.
|
10
|
+
#
|
11
|
+
class FileCreationTask < FileTask
|
12
|
+
# Is this file task needed? Yes if it doesn't exist.
|
13
|
+
def needed?
|
14
|
+
! File.exist?(name)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Time stamp for file creation task. This time stamp is earlier
|
18
|
+
# than any other time stamp.
|
19
|
+
def timestamp
|
20
|
+
Rake::EARLY
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,416 @@
|
|
1
|
+
require 'rake/cloneable'
|
2
|
+
require 'rake/file_utils_ext'
|
3
|
+
require 'rake/pathmap'
|
4
|
+
|
5
|
+
######################################################################
|
6
|
+
module Rake
|
7
|
+
|
8
|
+
# #########################################################################
|
9
|
+
# A FileList is essentially an array with a few helper methods defined to
|
10
|
+
# make file manipulation a bit easier.
|
11
|
+
#
|
12
|
+
# FileLists are lazy. When given a list of glob patterns for possible files
|
13
|
+
# to be included in the file list, instead of searching the file structures
|
14
|
+
# to find the files, a FileList holds the pattern for latter use.
|
15
|
+
#
|
16
|
+
# This allows us to define a number of FileList to match any number of
|
17
|
+
# files, but only search out the actual files when then FileList itself is
|
18
|
+
# actually used. The key is that the first time an element of the
|
19
|
+
# FileList/Array is requested, the pending patterns are resolved into a real
|
20
|
+
# list of file names.
|
21
|
+
#
|
22
|
+
class FileList
|
23
|
+
|
24
|
+
include Cloneable
|
25
|
+
|
26
|
+
# == Method Delegation
|
27
|
+
#
|
28
|
+
# The lazy evaluation magic of FileLists happens by implementing all the
|
29
|
+
# array specific methods to call +resolve+ before delegating the heavy
|
30
|
+
# lifting to an embedded array object (@items).
|
31
|
+
#
|
32
|
+
# In addition, there are two kinds of delegation calls. The regular kind
|
33
|
+
# delegates to the @items array and returns the result directly. Well,
|
34
|
+
# almost directly. It checks if the returned value is the @items object
|
35
|
+
# itself, and if so will return the FileList object instead.
|
36
|
+
#
|
37
|
+
# The second kind of delegation call is used in methods that normally
|
38
|
+
# return a new Array object. We want to capture the return value of these
|
39
|
+
# methods and wrap them in a new FileList object. We enumerate these
|
40
|
+
# methods in the +SPECIAL_RETURN+ list below.
|
41
|
+
|
42
|
+
# List of array methods (that are not in +Object+) that need to be
|
43
|
+
# delegated.
|
44
|
+
ARRAY_METHODS = (Array.instance_methods - Object.instance_methods).
|
45
|
+
map { |n| n.to_s }
|
46
|
+
|
47
|
+
# List of additional methods that must be delegated.
|
48
|
+
MUST_DEFINE = %w[inspect <=>]
|
49
|
+
|
50
|
+
# List of methods that should not be delegated here (we define special
|
51
|
+
# versions of them explicitly below).
|
52
|
+
MUST_NOT_DEFINE = %w[to_a to_ary partition *]
|
53
|
+
|
54
|
+
# List of delegated methods that return new array values which need
|
55
|
+
# wrapping.
|
56
|
+
SPECIAL_RETURN = %w[
|
57
|
+
map collect sort sort_by select find_all reject grep
|
58
|
+
compact flatten uniq values_at
|
59
|
+
+ - & |
|
60
|
+
]
|
61
|
+
|
62
|
+
DELEGATING_METHODS = (ARRAY_METHODS + MUST_DEFINE - MUST_NOT_DEFINE).
|
63
|
+
map { |s| s.to_s }.sort.uniq
|
64
|
+
|
65
|
+
# Now do the delegation.
|
66
|
+
DELEGATING_METHODS.each do |sym|
|
67
|
+
if SPECIAL_RETURN.include?(sym)
|
68
|
+
ln = __LINE__ + 1
|
69
|
+
class_eval %{
|
70
|
+
def #{sym}(*args, &block)
|
71
|
+
resolve
|
72
|
+
result = @items.send(:#{sym}, *args, &block)
|
73
|
+
FileList.new.import(result)
|
74
|
+
end
|
75
|
+
}, __FILE__, ln
|
76
|
+
else
|
77
|
+
ln = __LINE__ + 1
|
78
|
+
class_eval %{
|
79
|
+
def #{sym}(*args, &block)
|
80
|
+
resolve
|
81
|
+
result = @items.send(:#{sym}, *args, &block)
|
82
|
+
result.object_id == @items.object_id ? self : result
|
83
|
+
end
|
84
|
+
}, __FILE__, ln
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# Create a file list from the globbable patterns given. If you wish to
|
89
|
+
# perform multiple includes or excludes at object build time, use the
|
90
|
+
# "yield self" pattern.
|
91
|
+
#
|
92
|
+
# Example:
|
93
|
+
# file_list = FileList.new('lib/**/*.rb', 'test/test*.rb')
|
94
|
+
#
|
95
|
+
# pkg_files = FileList.new('lib/**/*') do |fl|
|
96
|
+
# fl.exclude(/\bCVS\b/)
|
97
|
+
# end
|
98
|
+
#
|
99
|
+
def initialize(*patterns)
|
100
|
+
@pending_add = []
|
101
|
+
@pending = false
|
102
|
+
@exclude_patterns = DEFAULT_IGNORE_PATTERNS.dup
|
103
|
+
@exclude_procs = DEFAULT_IGNORE_PROCS.dup
|
104
|
+
@items = []
|
105
|
+
patterns.each { |pattern| include(pattern) }
|
106
|
+
yield self if block_given?
|
107
|
+
end
|
108
|
+
|
109
|
+
# Add file names defined by glob patterns to the file list. If an array
|
110
|
+
# is given, add each element of the array.
|
111
|
+
#
|
112
|
+
# Example:
|
113
|
+
# file_list.include("*.java", "*.cfg")
|
114
|
+
# file_list.include %w( math.c lib.h *.o )
|
115
|
+
#
|
116
|
+
def include(*filenames)
|
117
|
+
# TODO: check for pending
|
118
|
+
filenames.each do |fn|
|
119
|
+
if fn.respond_to? :to_ary
|
120
|
+
include(*fn.to_ary)
|
121
|
+
else
|
122
|
+
@pending_add << fn
|
123
|
+
end
|
124
|
+
end
|
125
|
+
@pending = true
|
126
|
+
self
|
127
|
+
end
|
128
|
+
alias :add :include
|
129
|
+
|
130
|
+
# Register a list of file name patterns that should be excluded from the
|
131
|
+
# list. Patterns may be regular expressions, glob patterns or regular
|
132
|
+
# strings. In addition, a block given to exclude will remove entries that
|
133
|
+
# return true when given to the block.
|
134
|
+
#
|
135
|
+
# Note that glob patterns are expanded against the file system. If a file
|
136
|
+
# is explicitly added to a file list, but does not exist in the file
|
137
|
+
# system, then an glob pattern in the exclude list will not exclude the
|
138
|
+
# file.
|
139
|
+
#
|
140
|
+
# Examples:
|
141
|
+
# FileList['a.c', 'b.c'].exclude("a.c") => ['b.c']
|
142
|
+
# FileList['a.c', 'b.c'].exclude(/^a/) => ['b.c']
|
143
|
+
#
|
144
|
+
# If "a.c" is a file, then ...
|
145
|
+
# FileList['a.c', 'b.c'].exclude("a.*") => ['b.c']
|
146
|
+
#
|
147
|
+
# If "a.c" is not a file, then ...
|
148
|
+
# FileList['a.c', 'b.c'].exclude("a.*") => ['a.c', 'b.c']
|
149
|
+
#
|
150
|
+
def exclude(*patterns, &block)
|
151
|
+
patterns.each do |pat|
|
152
|
+
@exclude_patterns << pat
|
153
|
+
end
|
154
|
+
@exclude_procs << block if block_given?
|
155
|
+
resolve_exclude unless @pending
|
156
|
+
self
|
157
|
+
end
|
158
|
+
|
159
|
+
|
160
|
+
# Clear all the exclude patterns so that we exclude nothing.
|
161
|
+
def clear_exclude
|
162
|
+
@exclude_patterns = []
|
163
|
+
@exclude_procs = []
|
164
|
+
self
|
165
|
+
end
|
166
|
+
|
167
|
+
# Define equality.
|
168
|
+
def ==(array)
|
169
|
+
to_ary == array
|
170
|
+
end
|
171
|
+
|
172
|
+
# Return the internal array object.
|
173
|
+
def to_a
|
174
|
+
resolve
|
175
|
+
@items
|
176
|
+
end
|
177
|
+
|
178
|
+
# Return the internal array object.
|
179
|
+
def to_ary
|
180
|
+
to_a
|
181
|
+
end
|
182
|
+
|
183
|
+
# Lie about our class.
|
184
|
+
def is_a?(klass)
|
185
|
+
klass == Array || super(klass)
|
186
|
+
end
|
187
|
+
alias kind_of? is_a?
|
188
|
+
|
189
|
+
# Redefine * to return either a string or a new file list.
|
190
|
+
def *(other)
|
191
|
+
result = @items * other
|
192
|
+
case result
|
193
|
+
when Array
|
194
|
+
FileList.new.import(result)
|
195
|
+
else
|
196
|
+
result
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
# Resolve all the pending adds now.
|
201
|
+
def resolve
|
202
|
+
if @pending
|
203
|
+
@pending = false
|
204
|
+
@pending_add.each do |fn| resolve_add(fn) end
|
205
|
+
@pending_add = []
|
206
|
+
resolve_exclude
|
207
|
+
end
|
208
|
+
self
|
209
|
+
end
|
210
|
+
|
211
|
+
def resolve_add(fn)
|
212
|
+
case fn
|
213
|
+
when %r{[*?\[\{]}
|
214
|
+
add_matching(fn)
|
215
|
+
else
|
216
|
+
self << fn
|
217
|
+
end
|
218
|
+
end
|
219
|
+
private :resolve_add
|
220
|
+
|
221
|
+
def resolve_exclude
|
222
|
+
reject! { |fn| excluded_from_list?(fn) }
|
223
|
+
self
|
224
|
+
end
|
225
|
+
private :resolve_exclude
|
226
|
+
|
227
|
+
# Return a new FileList with the results of running +sub+ against each
|
228
|
+
# element of the original list.
|
229
|
+
#
|
230
|
+
# Example:
|
231
|
+
# FileList['a.c', 'b.c'].sub(/\.c$/, '.o') => ['a.o', 'b.o']
|
232
|
+
#
|
233
|
+
def sub(pat, rep)
|
234
|
+
inject(FileList.new) { |res, fn| res << fn.sub(pat, rep) }
|
235
|
+
end
|
236
|
+
|
237
|
+
# Return a new FileList with the results of running +gsub+ against each
|
238
|
+
# element of the original list.
|
239
|
+
#
|
240
|
+
# Example:
|
241
|
+
# FileList['lib/test/file', 'x/y'].gsub(/\//, "\\")
|
242
|
+
# => ['lib\\test\\file', 'x\\y']
|
243
|
+
#
|
244
|
+
def gsub(pat, rep)
|
245
|
+
inject(FileList.new) { |res, fn| res << fn.gsub(pat, rep) }
|
246
|
+
end
|
247
|
+
|
248
|
+
# Same as +sub+ except that the original file list is modified.
|
249
|
+
def sub!(pat, rep)
|
250
|
+
each_with_index { |fn, i| self[i] = fn.sub(pat, rep) }
|
251
|
+
self
|
252
|
+
end
|
253
|
+
|
254
|
+
# Same as +gsub+ except that the original file list is modified.
|
255
|
+
def gsub!(pat, rep)
|
256
|
+
each_with_index { |fn, i| self[i] = fn.gsub(pat, rep) }
|
257
|
+
self
|
258
|
+
end
|
259
|
+
|
260
|
+
# Apply the pathmap spec to each of the included file names, returning a
|
261
|
+
# new file list with the modified paths. (See String#pathmap for
|
262
|
+
# details.)
|
263
|
+
def pathmap(spec=nil)
|
264
|
+
collect { |fn| fn.pathmap(spec) }
|
265
|
+
end
|
266
|
+
|
267
|
+
# Return a new FileList with <tt>String#ext</tt> method applied to
|
268
|
+
# each member of the array.
|
269
|
+
#
|
270
|
+
# This method is a shortcut for:
|
271
|
+
#
|
272
|
+
# array.collect { |item| item.ext(newext) }
|
273
|
+
#
|
274
|
+
# +ext+ is a user added method for the Array class.
|
275
|
+
def ext(newext='')
|
276
|
+
collect { |fn| fn.ext(newext) }
|
277
|
+
end
|
278
|
+
|
279
|
+
|
280
|
+
# Grep each of the files in the filelist using the given pattern. If a
|
281
|
+
# block is given, call the block on each matching line, passing the file
|
282
|
+
# name, line number, and the matching line of text. If no block is given,
|
283
|
+
# a standard emacs style file:linenumber:line message will be printed to
|
284
|
+
# standard out. Returns the number of matched items.
|
285
|
+
def egrep(pattern, *options)
|
286
|
+
matched = 0
|
287
|
+
each do |fn|
|
288
|
+
begin
|
289
|
+
open(fn, "r", *options) do |inf|
|
290
|
+
count = 0
|
291
|
+
inf.each do |line|
|
292
|
+
count += 1
|
293
|
+
if pattern.match(line)
|
294
|
+
matched += 1
|
295
|
+
if block_given?
|
296
|
+
yield fn, count, line
|
297
|
+
else
|
298
|
+
puts "#{fn}:#{count}:#{line}"
|
299
|
+
end
|
300
|
+
end
|
301
|
+
end
|
302
|
+
end
|
303
|
+
rescue StandardError => ex
|
304
|
+
$stderr.puts "Error while processing '#{fn}': #{ex}"
|
305
|
+
end
|
306
|
+
end
|
307
|
+
matched
|
308
|
+
end
|
309
|
+
|
310
|
+
# Return a new file list that only contains file names from the current
|
311
|
+
# file list that exist on the file system.
|
312
|
+
def existing
|
313
|
+
select { |fn| File.exist?(fn) }
|
314
|
+
end
|
315
|
+
|
316
|
+
# Modify the current file list so that it contains only file name that
|
317
|
+
# exist on the file system.
|
318
|
+
def existing!
|
319
|
+
resolve
|
320
|
+
@items = @items.select { |fn| File.exist?(fn) }
|
321
|
+
self
|
322
|
+
end
|
323
|
+
|
324
|
+
# FileList version of partition. Needed because the nested arrays should
|
325
|
+
# be FileLists in this version.
|
326
|
+
def partition(&block) # :nodoc:
|
327
|
+
resolve
|
328
|
+
result = @items.partition(&block)
|
329
|
+
[
|
330
|
+
FileList.new.import(result[0]),
|
331
|
+
FileList.new.import(result[1]),
|
332
|
+
]
|
333
|
+
end
|
334
|
+
|
335
|
+
# Convert a FileList to a string by joining all elements with a space.
|
336
|
+
def to_s
|
337
|
+
resolve
|
338
|
+
self.join(' ')
|
339
|
+
end
|
340
|
+
|
341
|
+
# Add matching glob patterns.
|
342
|
+
def add_matching(pattern)
|
343
|
+
FileList.glob(pattern).each do |fn|
|
344
|
+
self << fn unless excluded_from_list?(fn)
|
345
|
+
end
|
346
|
+
end
|
347
|
+
private :add_matching
|
348
|
+
|
349
|
+
# Should the given file name be excluded from the list?
|
350
|
+
#
|
351
|
+
# NOTE: This method was formally named "exclude?", but Rails
|
352
|
+
# introduced an exclude? method as an array method and setup a
|
353
|
+
# conflict with file list. We renamed the method to avoid
|
354
|
+
# confusion. If you were using "FileList#exclude?" in your user
|
355
|
+
# code, you will need to update.
|
356
|
+
def excluded_from_list?(fn)
|
357
|
+
return true if @exclude_patterns.any? do |pat|
|
358
|
+
case pat
|
359
|
+
when Regexp
|
360
|
+
fn =~ pat
|
361
|
+
when /[*?]/
|
362
|
+
File.fnmatch?(pat, fn, File::FNM_PATHNAME)
|
363
|
+
else
|
364
|
+
fn == pat
|
365
|
+
end
|
366
|
+
end
|
367
|
+
@exclude_procs.any? { |p| p.call(fn) }
|
368
|
+
end
|
369
|
+
|
370
|
+
DEFAULT_IGNORE_PATTERNS = [
|
371
|
+
/(^|[\/\\])CVS([\/\\]|$)/,
|
372
|
+
/(^|[\/\\])\.svn([\/\\]|$)/,
|
373
|
+
/\.bak$/,
|
374
|
+
/~$/
|
375
|
+
]
|
376
|
+
DEFAULT_IGNORE_PROCS = [
|
377
|
+
proc { |fn| fn =~ /(^|[\/\\])core$/ && ! File.directory?(fn) }
|
378
|
+
]
|
379
|
+
|
380
|
+
def import(array)
|
381
|
+
@items = array
|
382
|
+
self
|
383
|
+
end
|
384
|
+
|
385
|
+
class << self
|
386
|
+
# Create a new file list including the files listed. Similar to:
|
387
|
+
#
|
388
|
+
# FileList.new(*args)
|
389
|
+
def [](*args)
|
390
|
+
new(*args)
|
391
|
+
end
|
392
|
+
|
393
|
+
# Get a sorted list of files matching the pattern. This method
|
394
|
+
# should be prefered to Dir[pattern] and Dir.glob(pattern) because
|
395
|
+
# the files returned are guaranteed to be sorted.
|
396
|
+
def glob(pattern, *args)
|
397
|
+
Dir.glob(pattern, *args).sort
|
398
|
+
end
|
399
|
+
end
|
400
|
+
end
|
401
|
+
end
|
402
|
+
|
403
|
+
module Rake
|
404
|
+
class << self
|
405
|
+
|
406
|
+
# Yield each file or directory component.
|
407
|
+
def each_dir_parent(dir) # :nodoc:
|
408
|
+
old_length = nil
|
409
|
+
while dir != '.' && dir.length != old_length
|
410
|
+
yield(dir)
|
411
|
+
old_length = dir.length
|
412
|
+
dir = File.dirname(dir)
|
413
|
+
end
|
414
|
+
end
|
415
|
+
end
|
416
|
+
end # module Rake
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rake/task.rb'
|
2
|
+
require 'rake/early_time'
|
3
|
+
|
4
|
+
module Rake
|
5
|
+
# #########################################################################
|
6
|
+
# A FileTask is a task that includes time based dependencies. If any of a
|
7
|
+
# FileTask's prerequisites have a timestamp that is later than the file
|
8
|
+
# represented by this task, then the file must be rebuilt (using the
|
9
|
+
# supplied actions).
|
10
|
+
#
|
11
|
+
class FileTask < Task
|
12
|
+
|
13
|
+
# Is this file task needed? Yes if it doesn't exist, or if its time stamp
|
14
|
+
# is out of date.
|
15
|
+
def needed?
|
16
|
+
! File.exist?(name) || out_of_date?(timestamp)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Time stamp for file task.
|
20
|
+
def timestamp
|
21
|
+
if File.exist?(name)
|
22
|
+
File.mtime(name.to_s)
|
23
|
+
else
|
24
|
+
Rake::EARLY
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# Are there any prerequisites with a later time than the given time stamp?
|
31
|
+
def out_of_date?(stamp)
|
32
|
+
@prerequisites.any? { |n| application[n, @scope].timestamp > stamp }
|
33
|
+
end
|
34
|
+
|
35
|
+
# ----------------------------------------------------------------
|
36
|
+
# Task class methods.
|
37
|
+
#
|
38
|
+
class << self
|
39
|
+
# Apply the scope to the task name according to the rules for this kind
|
40
|
+
# of task. File based tasks ignore the scope when creating the name.
|
41
|
+
def scope_name(scope, task_name)
|
42
|
+
task_name
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|