From e1f847d59dd0290be43e1e55a62ca30b6bb104c0 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Mon, 1 Oct 2018 22:05:47 +0200 Subject: [PATCH 01/24] Remove all other languages except Kotlin --- C/GildedRose.c | 90 - C/GildedRose.h | 9 - C/GildedRoseTextTests.c | 43 - C/GildedRoseUnitTests.cc | 43 - C/Makefile | 51 - C/README | 5 - C/run-once.sh | 2 - COBOL/mf/src/.cobolProj | 167 - COBOL/mf/src/.gitignore | 2 - COBOL/mf/src/.project | 17 - COBOL/mf/src/GildedRose.cbl | 72 - Groovy/.gitignore | 124 - Groovy/.idea/compiler.xml | 22 - Groovy/.idea/copyright/profiles_settings.xml | 3 - Groovy/.idea/misc.xml | 26 - Groovy/.idea/modules.xml | 8 - Groovy/Groovy.iml | 12 - Groovy/readme.txt | 17 - Groovy/src/com/gildedrose/GildedRose.groovy | 62 - .../src/com/gildedrose/GildedRoseTest.groovy | 15 - Groovy/src/com/gildedrose/Item.groovy | 21 - .../src/com/gildedrose/TexttestFixture.groovy | 32 - Java - Spock/.gitignore | 3 - Java - Spock/build.gradle | 9 - .../gradle/wrapper/gradle-wrapper.jar | Bin 53636 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - Java - Spock/gradlew | 160 - Java - Spock/gradlew.bat | 90 - .../main/java/com/gildedrose/GildedRose.java | 62 - .../src/main/java/com/gildedrose/Item.java | 21 - .../java/com/gildedrose/TexttestFixture.java | 37 - .../com/gildedrose/GildedRoseSpec.groovy | 25 - Java/.gitignore | 8 - Java/pom.xml | 37 - .../main/java/com/gildedrose/GildedRose.java | 62 - Java/src/main/java/com/gildedrose/Item.java | 21 - .../java/com/gildedrose/GildedRoseTest.java | 17 - .../java/com/gildedrose/TexttestFixture.java | 37 - R/.project | 18 - R/gilded_rose.R | 56 - R/item.R | 13 - R/runit_gilded_rose.R | 7 - R/test_setup.R | 7 - R/texttest_fixture.R | 33 - Smalltalk/GildedRose.st | 1 - TypeScript/.gitignore | 10 - TypeScript/app/gilded-rose.ts | 69 - TypeScript/package.json | 44 - TypeScript/test/guilded-rose.spec.ts | 12 - TypeScript/test/mocha.opts | 4 - TypeScript/tsconfig.json | 11 - abap/README.md | 16 - abap/YY_PAO_GILDED_ROSE.abap | 242 - c99/GildedRose.c | 90 - c99/GildedRose.h | 9 - c99/GildedRoseTextTests.c | 43 - c99/Makefile | 51 - c99/README.md | 41 - c99/test_main.c | 31 - c99/test_rose.c | 34 - clisp/gilded-rose.lisp | 140 - cpp/CMakeLists.txt | 30 - cpp/GildedRose.cc | 80 - cpp/GildedRose.h | 24 - cpp/GildedRoseTextTests.cc | 42 - cpp/GildedRoseUnitTests.cc | 24 - cpp/Makefile | 85 - cpp/README | 38 - cpp/run-once.sh | 4 - csharp/.gitignore | 299 - csharp/App.config | 6 - csharp/ApprovalTest.cs | 30 - csharp/GildedRose.cs | 89 - csharp/GildedRoseTest.cs | 18 - csharp/Item.cs | 14 - csharp/Program.cs | 56 - csharp/Properties/AssemblyInfo.cs | 36 - csharp/ThirtyDays.txt | 373 - csharp/csharp.csproj | 97 - csharp/csharp.sln | 22 - csharp/packages.config | 7 - csharpcore/.gitignore | 300 - csharpcore/ApprovalTest.cs | 29 - csharpcore/GildedRose.cs | 89 - csharpcore/GildedRoseTest.cs | 17 - csharpcore/Item.cs | 9 - csharpcore/Program.cs | 56 - csharpcore/ThirtyDays.txt | 373 - csharpcore/csharpcore.csproj | 17 - d/.gitignore | 1 - d/dub.json | 16 - d/src/GildedRose.d | 93 - d/src/GildedRoseTextTests.d | 38 - d/test/GildedRoseUnitTests.d | 25 - dart/.gitignore | 6 - dart/bin/main.dart | 35 - dart/lib/gilded_rose.dart | 68 - dart/pubspec.yaml | 6 - dart/test/gilded_rose_test.dart | 13 - elixir/config/config.exs | 1 - elixir/lib/gilded_rose.ex | 83 - elixir/lib/item.ex | 3 - elixir/mix.exs | 9 - elixir/test/gilded_rose_test.exs | 6 - elixir/test/test_helper.exs | 1 - erlang/.gitignore | 2 - erlang/README.md | 11 - erlang/include/gilded_rose.hrl | 5 - erlang/rebar.config | 2 - erlang/rebar3 | Bin 695247 -> 0 bytes erlang/src/gilded_rose.app.src | 1 - erlang/src/gilded_rose.erl | 87 - erlang/test/gilded_rose_tests.erl | 44 - .../GildedRose.Tests/GildedRose.Tests.fsproj | 97 - fsharp/GildedRose.Tests/GildedRoseTest.fs | 32 - fsharp/GildedRose.Tests/packages.config | 6 - fsharp/GildedRose.sln | 28 - fsharp/GildedRose/App.config | 6 - fsharp/GildedRose/GildedRose.fs | 63 - fsharp/GildedRose/GildedRose.fsproj | 76 - go/gilded-rose.go | 75 - go/gilded-rose_test.go | 7 - go/readme.md | 21 - haskell/.gitignore | 11 - haskell/README.md | 15 - haskell/gilded-rose.cabal | 34 - haskell/install_deps.sh | 8 - haskell/run.sh | 8 - haskell/src/GildedRose.hs | 70 - haskell/src/Main.hs | 44 - haskell/test.sh | 9 - haskell/test/GildedRoseSpec.hs | 14 - haskell/test/Spec.hs | 1 - js/SpecRunner.html | 56 - js/TexttestFixture.html | 59 - js/lib/jasmine-1.1.0/MIT.LICENSE | 20 - js/lib/jasmine-1.1.0/jasmine-html.js | 190 - js/lib/jasmine-1.1.0/jasmine.css | 166 - js/lib/jasmine-1.1.0/jasmine.js | 2476 ----- js/lib/jasmine-1.1.0/jasmine_favicon.png | Bin 905 -> 0 bytes js/lib/jasmine-ajax/mock-ajax.js | 207 - .../jasmine-jquery-1.3.1.js | 288 - js/lib/jquery-1.7.1/jquery-1.7.1.js | 9266 ----------------- js/spec/gilded_rose_spec.js | 9 - js/src/gilded_rose.js | 62 - pascal/.gitignore | 11 - pascal/README.md | 19 - pascal/ROSE.PAS | 137 - pascal/ROSE_T.PAS | 29 - pascal/TEXTTEST.PAS | 60 - pascal/TPUNIT.PAS | 129 - perl/GildedRose.pm | 74 - perl/Item.pm | 16 - perl/test.pl | 18 - perl/texttest_fixture.pl | 72 - perl6/lib/GildedRose.pm6 | 66 - perl6/lib/Item.pm6 | 11 - perl6/test.p6 | 16 - perl6/texttest_fixture.p6 | 70 - php/.buildpath | 7 - php/.project | 28 - .../com.piece_framework.makegood.core.prefs | 10 - php/.settings/org.eclipse.php.core.prefs | 2 - ....eclipse.wst.common.project.facet.core.xml | 7 - php/phpunit.xml | 15 - php/src/gilded_rose.php | 79 - php/src/texttest_fixture.php | 35 - php/test/bootstrap.php | 2 - php/test/gilded_rose_test.php | 14 - plsql/create_user_if_needed.sql | 7 - plsql/item.sql | 20 - plsql/item_with_id.sql | 50 - plsql/new_item.sql | 9 - plsql/texttest_fixture.sql | 36 - plsql/update_quality.sql | 66 - plsql/ut_update_quality.pkb | 27 - plsql/ut_update_quality.pks | 8 - plsql/ut_update_quality.sql | 5 - python/gilded_rose.py | 46 - python/test_gilded_rose.py | 14 - python/texttest_fixture.py | 30 - ruby/.buildpath | 5 - ruby/.loadpath | 5 - ruby/.project | 23 - ruby/.rspec | 2 - ruby/gilded_rose.rb | 68 - ruby/gilded_rose_spec.rb | 13 - ruby/gilded_rose_tests.rb | 12 - ruby/texttest_fixture.rb | 33 - rust/.gitignore | 1 - rust/Cargo.lock | 4 - rust/Cargo.toml | 4 - rust/src/gildedrose/mod.rs | 80 - rust/src/gildedrose/test.rs | 10 - rust/src/main.rs | 31 - scala/.gitignore | 19 - scala/build.sbt | 7 - scala/project/.gitignore | 2 - scala/project/build.properties | 1 - .../scala/com/gildedrose/GildedRose.scala | 58 - .../src/main/scala/com/gildedrose/Item.scala | 5 - .../scala/com/gildedrose/GildedRoseTest.scala | 12 - .../com/gildedrose/TexttestFixture.scala | 29 - swift/.gitignore | 4 - swift/Package.swift | 5 - swift/Sources/GildedRose.swift | 61 - swift/Sources/Item.swift | 18 - swift/Sources/main.swift | 30 - .../GildedRoseTests/GildedRoseTests.swift | 18 - swift/Tests/LinuxMain.swift | 7 - swift/Tests/swiftTests/GildedRoseTests.swift | 18 - 211 files changed, 20494 deletions(-) delete mode 100644 C/GildedRose.c delete mode 100644 C/GildedRose.h delete mode 100644 C/GildedRoseTextTests.c delete mode 100644 C/GildedRoseUnitTests.cc delete mode 100644 C/Makefile delete mode 100644 C/README delete mode 100755 C/run-once.sh delete mode 100644 COBOL/mf/src/.cobolProj delete mode 100644 COBOL/mf/src/.gitignore delete mode 100644 COBOL/mf/src/.project delete mode 100644 COBOL/mf/src/GildedRose.cbl delete mode 100644 Groovy/.gitignore delete mode 100644 Groovy/.idea/compiler.xml delete mode 100644 Groovy/.idea/copyright/profiles_settings.xml delete mode 100644 Groovy/.idea/misc.xml delete mode 100644 Groovy/.idea/modules.xml delete mode 100644 Groovy/Groovy.iml delete mode 100644 Groovy/readme.txt delete mode 100644 Groovy/src/com/gildedrose/GildedRose.groovy delete mode 100644 Groovy/src/com/gildedrose/GildedRoseTest.groovy delete mode 100644 Groovy/src/com/gildedrose/Item.groovy delete mode 100644 Groovy/src/com/gildedrose/TexttestFixture.groovy delete mode 100644 Java - Spock/.gitignore delete mode 100644 Java - Spock/build.gradle delete mode 100644 Java - Spock/gradle/wrapper/gradle-wrapper.jar delete mode 100644 Java - Spock/gradle/wrapper/gradle-wrapper.properties delete mode 100644 Java - Spock/gradlew delete mode 100644 Java - Spock/gradlew.bat delete mode 100644 Java - Spock/src/main/java/com/gildedrose/GildedRose.java delete mode 100644 Java - Spock/src/main/java/com/gildedrose/Item.java delete mode 100644 Java - Spock/src/main/java/com/gildedrose/TexttestFixture.java delete mode 100644 Java - Spock/src/test/groovy/com/gildedrose/GildedRoseSpec.groovy delete mode 100644 Java/.gitignore delete mode 100644 Java/pom.xml delete mode 100644 Java/src/main/java/com/gildedrose/GildedRose.java delete mode 100644 Java/src/main/java/com/gildedrose/Item.java delete mode 100644 Java/src/test/java/com/gildedrose/GildedRoseTest.java delete mode 100644 Java/src/test/java/com/gildedrose/TexttestFixture.java delete mode 100644 R/.project delete mode 100644 R/gilded_rose.R delete mode 100644 R/item.R delete mode 100644 R/runit_gilded_rose.R delete mode 100644 R/test_setup.R delete mode 100644 R/texttest_fixture.R delete mode 100644 Smalltalk/GildedRose.st delete mode 100644 TypeScript/.gitignore delete mode 100644 TypeScript/app/gilded-rose.ts delete mode 100644 TypeScript/package.json delete mode 100644 TypeScript/test/guilded-rose.spec.ts delete mode 100644 TypeScript/test/mocha.opts delete mode 100644 TypeScript/tsconfig.json delete mode 100644 abap/README.md delete mode 100644 abap/YY_PAO_GILDED_ROSE.abap delete mode 100644 c99/GildedRose.c delete mode 100644 c99/GildedRose.h delete mode 100644 c99/GildedRoseTextTests.c delete mode 100644 c99/Makefile delete mode 100644 c99/README.md delete mode 100644 c99/test_main.c delete mode 100644 c99/test_rose.c delete mode 100644 clisp/gilded-rose.lisp delete mode 100644 cpp/CMakeLists.txt delete mode 100644 cpp/GildedRose.cc delete mode 100644 cpp/GildedRose.h delete mode 100644 cpp/GildedRoseTextTests.cc delete mode 100644 cpp/GildedRoseUnitTests.cc delete mode 100644 cpp/Makefile delete mode 100644 cpp/README delete mode 100755 cpp/run-once.sh delete mode 100644 csharp/.gitignore delete mode 100644 csharp/App.config delete mode 100644 csharp/ApprovalTest.cs delete mode 100644 csharp/GildedRose.cs delete mode 100644 csharp/GildedRoseTest.cs delete mode 100644 csharp/Item.cs delete mode 100644 csharp/Program.cs delete mode 100644 csharp/Properties/AssemblyInfo.cs delete mode 100644 csharp/ThirtyDays.txt delete mode 100644 csharp/csharp.csproj delete mode 100644 csharp/csharp.sln delete mode 100644 csharp/packages.config delete mode 100644 csharpcore/.gitignore delete mode 100644 csharpcore/ApprovalTest.cs delete mode 100644 csharpcore/GildedRose.cs delete mode 100644 csharpcore/GildedRoseTest.cs delete mode 100644 csharpcore/Item.cs delete mode 100644 csharpcore/Program.cs delete mode 100644 csharpcore/ThirtyDays.txt delete mode 100644 csharpcore/csharpcore.csproj delete mode 100644 d/.gitignore delete mode 100644 d/dub.json delete mode 100644 d/src/GildedRose.d delete mode 100644 d/src/GildedRoseTextTests.d delete mode 100644 d/test/GildedRoseUnitTests.d delete mode 100644 dart/.gitignore delete mode 100644 dart/bin/main.dart delete mode 100644 dart/lib/gilded_rose.dart delete mode 100644 dart/pubspec.yaml delete mode 100644 dart/test/gilded_rose_test.dart delete mode 100644 elixir/config/config.exs delete mode 100644 elixir/lib/gilded_rose.ex delete mode 100644 elixir/lib/item.ex delete mode 100644 elixir/mix.exs delete mode 100644 elixir/test/gilded_rose_test.exs delete mode 100644 elixir/test/test_helper.exs delete mode 100644 erlang/.gitignore delete mode 100644 erlang/README.md delete mode 100644 erlang/include/gilded_rose.hrl delete mode 100644 erlang/rebar.config delete mode 100755 erlang/rebar3 delete mode 100644 erlang/src/gilded_rose.app.src delete mode 100644 erlang/src/gilded_rose.erl delete mode 100644 erlang/test/gilded_rose_tests.erl delete mode 100644 fsharp/GildedRose.Tests/GildedRose.Tests.fsproj delete mode 100644 fsharp/GildedRose.Tests/GildedRoseTest.fs delete mode 100644 fsharp/GildedRose.Tests/packages.config delete mode 100644 fsharp/GildedRose.sln delete mode 100644 fsharp/GildedRose/App.config delete mode 100644 fsharp/GildedRose/GildedRose.fs delete mode 100644 fsharp/GildedRose/GildedRose.fsproj delete mode 100644 go/gilded-rose.go delete mode 100644 go/gilded-rose_test.go delete mode 100644 go/readme.md delete mode 100644 haskell/.gitignore delete mode 100644 haskell/README.md delete mode 100644 haskell/gilded-rose.cabal delete mode 100755 haskell/install_deps.sh delete mode 100755 haskell/run.sh delete mode 100644 haskell/src/GildedRose.hs delete mode 100644 haskell/src/Main.hs delete mode 100755 haskell/test.sh delete mode 100644 haskell/test/GildedRoseSpec.hs delete mode 100644 haskell/test/Spec.hs delete mode 100644 js/SpecRunner.html delete mode 100644 js/TexttestFixture.html delete mode 100644 js/lib/jasmine-1.1.0/MIT.LICENSE delete mode 100644 js/lib/jasmine-1.1.0/jasmine-html.js delete mode 100644 js/lib/jasmine-1.1.0/jasmine.css delete mode 100644 js/lib/jasmine-1.1.0/jasmine.js delete mode 100644 js/lib/jasmine-1.1.0/jasmine_favicon.png delete mode 100644 js/lib/jasmine-ajax/mock-ajax.js delete mode 100644 js/lib/jasmine-jquery-1.3.1/jasmine-jquery-1.3.1.js delete mode 100644 js/lib/jquery-1.7.1/jquery-1.7.1.js delete mode 100644 js/spec/gilded_rose_spec.js delete mode 100644 js/src/gilded_rose.js delete mode 100644 pascal/.gitignore delete mode 100644 pascal/README.md delete mode 100644 pascal/ROSE.PAS delete mode 100644 pascal/ROSE_T.PAS delete mode 100644 pascal/TEXTTEST.PAS delete mode 100644 pascal/TPUNIT.PAS delete mode 100644 perl/GildedRose.pm delete mode 100644 perl/Item.pm delete mode 100755 perl/test.pl delete mode 100755 perl/texttest_fixture.pl delete mode 100644 perl6/lib/GildedRose.pm6 delete mode 100644 perl6/lib/Item.pm6 delete mode 100755 perl6/test.p6 delete mode 100755 perl6/texttest_fixture.p6 delete mode 100644 php/.buildpath delete mode 100644 php/.project delete mode 100644 php/.settings/com.piece_framework.makegood.core.prefs delete mode 100644 php/.settings/org.eclipse.php.core.prefs delete mode 100644 php/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 php/phpunit.xml delete mode 100644 php/src/gilded_rose.php delete mode 100644 php/src/texttest_fixture.php delete mode 100644 php/test/bootstrap.php delete mode 100644 php/test/gilded_rose_test.php delete mode 100644 plsql/create_user_if_needed.sql delete mode 100644 plsql/item.sql delete mode 100644 plsql/item_with_id.sql delete mode 100644 plsql/new_item.sql delete mode 100644 plsql/texttest_fixture.sql delete mode 100644 plsql/update_quality.sql delete mode 100644 plsql/ut_update_quality.pkb delete mode 100644 plsql/ut_update_quality.pks delete mode 100644 plsql/ut_update_quality.sql delete mode 100755 python/gilded_rose.py delete mode 100644 python/test_gilded_rose.py delete mode 100644 python/texttest_fixture.py delete mode 100644 ruby/.buildpath delete mode 100644 ruby/.loadpath delete mode 100644 ruby/.project delete mode 100644 ruby/.rspec delete mode 100644 ruby/gilded_rose.rb delete mode 100644 ruby/gilded_rose_spec.rb delete mode 100644 ruby/gilded_rose_tests.rb delete mode 100644 ruby/texttest_fixture.rb delete mode 100644 rust/.gitignore delete mode 100644 rust/Cargo.lock delete mode 100644 rust/Cargo.toml delete mode 100644 rust/src/gildedrose/mod.rs delete mode 100644 rust/src/gildedrose/test.rs delete mode 100644 rust/src/main.rs delete mode 100644 scala/.gitignore delete mode 100644 scala/build.sbt delete mode 100644 scala/project/.gitignore delete mode 100644 scala/project/build.properties delete mode 100644 scala/src/main/scala/com/gildedrose/GildedRose.scala delete mode 100644 scala/src/main/scala/com/gildedrose/Item.scala delete mode 100644 scala/src/test/scala/com/gildedrose/GildedRoseTest.scala delete mode 100644 scala/src/test/scala/com/gildedrose/TexttestFixture.scala delete mode 100644 swift/.gitignore delete mode 100644 swift/Package.swift delete mode 100644 swift/Sources/GildedRose.swift delete mode 100644 swift/Sources/Item.swift delete mode 100644 swift/Sources/main.swift delete mode 100644 swift/Tests/GildedRoseTests/GildedRoseTests.swift delete mode 100644 swift/Tests/LinuxMain.swift delete mode 100644 swift/Tests/swiftTests/GildedRoseTests.swift diff --git a/C/GildedRose.c b/C/GildedRose.c deleted file mode 100644 index afb97bbe..00000000 --- a/C/GildedRose.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include "GildedRose.h" - -Item* -init_item(Item* item, const char *name, int sellIn, int quality) -{ - item->sellIn = sellIn; - item->quality = quality; - item->name = strdup(name); - - return item; -} - -void update_quality(Item items[], int size) -{ - int i; - - for (i = 0; i < size; i++) - { - if (strcmp(items[i].name, "Aged Brie") && strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].quality > 0) - { - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - - if (!strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].sellIn < 11) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) - { - if (strcmp(items[i].name, "Aged Brie")) - { - if (strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].quality > 0) - { - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - items[i].quality = items[i].quality - items[i].quality; - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } -} diff --git a/C/GildedRose.h b/C/GildedRose.h deleted file mode 100644 index 78d54a08..00000000 --- a/C/GildedRose.h +++ /dev/null @@ -1,9 +0,0 @@ -typedef struct -{ - char *name; - int sellIn; - int quality; -} Item; - -extern Item* init_item(Item* item, const char *name, int sellIn, int quality); -extern void update_quality(Item items[], int size); diff --git a/C/GildedRoseTextTests.c b/C/GildedRoseTextTests.c deleted file mode 100644 index d200ca0c..00000000 --- a/C/GildedRoseTextTests.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include "GildedRose.h" - -int -print_item(Item *item) -{ - return printf("%s, %d, %d\n", item->name, item->sellIn, item->quality); -} - -int main() -{ - Item items[9]; - int last = 0; - int day; - int index; - - init_item(items + last++, "+5 Dexterity Vest", 10, 20); - init_item(items + last++, "Aged Brie", 2, 0); - init_item(items + last++, "Elixir of the Mongoose", 5, 7); - init_item(items + last++, "Sulfuras, Hand of Ragnaros", 0, 80); - init_item(items + last++, "Sulfuras, Hand of Ragnaros", -1, 80); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 15, 20); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 10, 49); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 5, 49); - // this Conjured item doesn't yet work properly - init_item(items + last++, "Conjured Mana Cake", 3, 6); - - puts("OMGHAI!"); - - for (day = 0; day <= 30; day++) - { - printf("-------- day %d --------\n", day); - printf("name, sellIn, quality\n"); - for(index = 0; index < last; index++) { - print_item(items + index); - } - - printf("\n"); - - update_quality(items, last); - } - return 0; -} diff --git a/C/GildedRoseUnitTests.cc b/C/GildedRoseUnitTests.cc deleted file mode 100644 index 6d06fdb7..00000000 --- a/C/GildedRoseUnitTests.cc +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -extern "C" { -#include "GildedRose.h" -} - -TEST_GROUP(TestGildedRoseGroup) -{ - void setup() { - } - void teardown() { - } -}; - -TEST(TestGildedRoseGroup, FirstTest) -{ - Item items[2]; - init_item(items, "Foo", 0, 0); - update_quality(items, 1); - STRCMP_EQUAL("fixme", items[0].name); -} - -void example() -{ - Item items[6]; - int last = 0; - - init_item(items + last++, "+5 Dexterity Vest", 10, 20); - init_item(items + last++, "Aged Brie", 2, 0); - init_item(items + last++, "Elixir of the Mongoose", 5, 7); - init_item(items + last++, "Sulfuras, Hand of Ragnaros", 0, 80); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 15, 20); - init_item(items + last++, "Conjured Mana Cake", 3, 6); - update_quality(items, last); -} - -int -main(int ac, char** av) -{ - return CommandLineTestRunner::RunAllTests(ac, av); -} diff --git a/C/Makefile b/C/Makefile deleted file mode 100644 index 3a695892..00000000 --- a/C/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# Makefile for building the kata file with the Google Testing Framework -# -# SYNOPSIS: -# -# make [all] - makes everything. -# make TARGET - makes the given target. -# make clean - removes all files generated by make. - -# Please tweak the following variable definitions as needed by your -# project. - -# Points to the root of CppUTest, relative to where this file is. -# Remember to tweak this if you move this file. -CPPUTEST_HOME = CppUTest - -# Where to find user code. -USER_DIR = . - -# Flags passed to the preprocessor. -CPPFLAGS += -I$(CPPUTEST_HOME)/include - -# Flags passed to the C++ compiler. -CFLAGS += -g -Wall -Wextra - -LD_LIBRARIES = -L$(CPPUTEST_HOME)/lib -lCppUTest - -# All tests produced by this Makefile. Remember to add new tests you -# created to the list. -TESTS = GildedRoseUnitTests - -TEXTTESTS = GildedRoseTextTests - -# House-keeping build targets. - -all : $(TESTS) $(TEXTTESTS) - -GildedRose.o : $(USER_DIR)/GildedRose.c - -GildedRoseUnitTests : $(USER_DIR)/GildedRoseUnitTests.cc GildedRose.o - $(CXX) $(CPPFLAGS) $(CFLAGS) -o $@ $(USER_DIR)/GildedRoseUnitTests.cc GildedRose.o $(LD_LIBRARIES) - -GildedRoseTextTests.o : $(USER_DIR)/GildedRoseTextTests.c - -GildedRoseTextTests : GildedRoseTextTests.o GildedRose.o - $(CC) $^ -o $@ - -clean : - rm -f $(TESTS) $(TEXTTESTS) *.o *~ - -check-syntax: - gcc $(CPPFLAGS) -o /dev/null -S ${CHK_SOURCES} diff --git a/C/README b/C/README deleted file mode 100644 index 2bc1f69b..00000000 --- a/C/README +++ /dev/null @@ -1,5 +0,0 @@ -run-once.sh runs your tests once - -Assumptions: - - make and a C++ compiler (like gcc) is installed on your system and is in the PATH - - The CppUTest framework is in the directory CppUTest diff --git a/C/run-once.sh b/C/run-once.sh deleted file mode 100755 index 4f6b2303..00000000 --- a/C/run-once.sh +++ /dev/null @@ -1,2 +0,0 @@ -make -./GildedRoseTextTests diff --git a/COBOL/mf/src/.cobolProj b/COBOL/mf/src/.cobolProj deleted file mode 100644 index 6bcc2791..00000000 --- a/COBOL/mf/src/.cobolProj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/COBOL/mf/src/.gitignore b/COBOL/mf/src/.gitignore deleted file mode 100644 index eea4e81d..00000000 --- a/COBOL/mf/src/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.cobolBuild -/Gilded_Rose.bin/ diff --git a/COBOL/mf/src/.project b/COBOL/mf/src/.project deleted file mode 100644 index a702b492..00000000 --- a/COBOL/mf/src/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Gilded Rose - - - - - - com.microfocus.eclipse.project.cobolBuilder - - - - - - com.microfocus.eclipse.project.cobolNature - - diff --git a/COBOL/mf/src/GildedRose.cbl b/COBOL/mf/src/GildedRose.cbl deleted file mode 100644 index 28ff10a2..00000000 --- a/COBOL/mf/src/GildedRose.cbl +++ /dev/null @@ -1,72 +0,0 @@ -program-id. GildedRose as "GildedRose". - -file-control. - select in-items assign 'in-items'. - select items assign 'items'. - -data division. -file section. - fd in-items. - 01 in-item pic x(58). - fd items. - 01 item. - 02 sell-in pic 9(4). - 02 quality pic 9(4). - 02 name pic x(50). - -working-storage section. -procedure division. - open input in-items output items. -start-lable. - read in-items end go to end-lable. - move in-item to item. - if name not equal "Aged Brie" and name not equal "Backstage passes to a TAFKAL80ETC concert" - if quality greater then 0 - if name not equal to "Sulfuras, Hand of Ragnaros" - compute quality = quality - 1 - end-if - end-if - else - if quality is less then 50 - compute quality = quality + 1 - if name equals "Backstage passes to a TAFKAL80ETC concert" - if sell-in less then 11 - if quality less then 50 - compute quality = quality + 1 - end-if - end-if - if sell-in less then 6 - if quality less then 50 - compute quality = quality + 1 - end-if - end-if - end-if - end-if - end-if - if name not equal "Sulfuras, Hand of Ragnaros" - compute sell-in = sell-in - 1 - end-if - if sell-in is less then 0 - if name is not equal to "Aged Brie" - if name is not equal to "Backstage passes to a TAFKAL80ETC concert" - if quality is greater then 0 - if name is equal to "Sulfuras, Hand of Ragnaros" - compute quality = quality - 1 - end-if - end-if - else - compute quality = quality - quality - end-if - else - if quality is less then 50 - compute quality = quality + 1 - end-if - end-if - end-if - write item. - go to start-lable. -end-lable. - close items. -goback. - -end program GildedRose. diff --git a/Groovy/.gitignore b/Groovy/.gitignore deleted file mode 100644 index 8f0aaba4..00000000 --- a/Groovy/.gitignore +++ /dev/null @@ -1,124 +0,0 @@ - -# Created by https://www.gitignore.io/api/groovy,intellij,eclipse,vim - -#!! ERROR: groovy is undefined. Use list command to see defined gitignore types !!# - -### Intellij ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml - -# Gradle: -.idea/gradle.xml -.idea/libraries - -# Mongo Explorer plugin: -.idea/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -### Intellij Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml - - -### Eclipse ### - -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.settings/ -.loadpath -.recommenders - -# Eclipse Core -.project - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# PyDev specific (Python IDE for Eclipse) -*.pydevproject - -# CDT-specific (C/C++ Development Tooling) -.cproject - -# JDT-specific (Eclipse Java Development Tools) -.classpath - -# Java annotation processor (APT) -.factorypath - -# PDT-specific (PHP Development Tools) -.buildpath - -# sbteclipse plugin -.target - -# Tern plugin -.tern-project - -# TeXlipse plugin -.texlipse - -# STS (Spring Tool Suite) -.springBeans - -# Code Recommenders -.recommenders/ - - -### Vim ### -# swap -[._]*.s[a-w][a-z] -[._]s[a-w][a-z] -# session -Session.vim -# temporary -.netrwhist -*~ -# auto-generated tag files -tags - diff --git a/Groovy/.idea/compiler.xml b/Groovy/.idea/compiler.xml deleted file mode 100644 index 96cc43ef..00000000 --- a/Groovy/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Groovy/.idea/copyright/profiles_settings.xml b/Groovy/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf33..00000000 --- a/Groovy/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Groovy/.idea/misc.xml b/Groovy/.idea/misc.xml deleted file mode 100644 index c6d8fb73..00000000 --- a/Groovy/.idea/misc.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Groovy/.idea/modules.xml b/Groovy/.idea/modules.xml deleted file mode 100644 index c1a39855..00000000 --- a/Groovy/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Groovy/Groovy.iml b/Groovy/Groovy.iml deleted file mode 100644 index 85bea791..00000000 --- a/Groovy/Groovy.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Groovy/readme.txt b/Groovy/readme.txt deleted file mode 100644 index 664827d7..00000000 --- a/Groovy/readme.txt +++ /dev/null @@ -1,17 +0,0 @@ -Welcome to the Groovy Gilded Rose -================================= - -to run the test, you can either: -- run them from your favorite IDE - - make sure you have installed language support for Groovy - - IntelliJ: - - open project - - choose this folder (Groovy) - - Eclipse: - - new Groovy Project - - choose this folder (Groovy) as the project folder - - add JUnit to build path -- run the test from the src/ folder in your shell: - - $ cd src/ - - $ groovy com/gildedrose/GildedRoseTest.groovy - diff --git a/Groovy/src/com/gildedrose/GildedRose.groovy b/Groovy/src/com/gildedrose/GildedRose.groovy deleted file mode 100644 index ba054cb6..00000000 --- a/Groovy/src/com/gildedrose/GildedRose.groovy +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedrose - -class GildedRose { - Item[] items - - GildedRose(Item[] items) { - this.items = items - } - - void updateQuality() { - for (int i = 0; i < items.length; i++) { - if (!items[i].name.equals("Aged Brie") - && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1 - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - - if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - } - } - } - - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].sellIn = items[i].sellIn - 1 - } - - if (items[i].sellIn < 0) { - if (!items[i].name.equals("Aged Brie")) { - if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1 - } - } - } else { - items[i].quality = items[i].quality - items[i].quality - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - } - } - } -} diff --git a/Groovy/src/com/gildedrose/GildedRoseTest.groovy b/Groovy/src/com/gildedrose/GildedRoseTest.groovy deleted file mode 100644 index d96202c0..00000000 --- a/Groovy/src/com/gildedrose/GildedRoseTest.groovy +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedrose - -import org.junit.Test - -class GildedRoseTest { - - @Test - void "foo"() { - def items = [ new Item("foo", 0, 0) ] as Item[] - def app = new GildedRose(items) - app.updateQuality() - assert "fixme" == app.items[0].name - } - -} diff --git a/Groovy/src/com/gildedrose/Item.groovy b/Groovy/src/com/gildedrose/Item.groovy deleted file mode 100644 index c42d6cea..00000000 --- a/Groovy/src/com/gildedrose/Item.groovy +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedrose - -class Item { - - String name - - int sellIn - - int quality - - Item(String name, int sellIn, int quality) { - this.name = name - this.sellIn = sellIn - this.quality = quality - } - - @Override - String toString() { - return this.name + ", " + this.sellIn + ", " + this.quality - } -} diff --git a/Groovy/src/com/gildedrose/TexttestFixture.groovy b/Groovy/src/com/gildedrose/TexttestFixture.groovy deleted file mode 100644 index 3c8b46e3..00000000 --- a/Groovy/src/com/gildedrose/TexttestFixture.groovy +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedrose - -println("OMGHAI!") - -Item[] items = [ - new Item("+5 Dexterity Vest", 10, 20), - new Item("Aged Brie", 2, 0), - new Item("Elixir of the Mongoose", 5, 7), - new Item("Sulfuras, Hand of Ragnaros", 0, 80), - new Item("Sulfuras, Hand of Ragnaros", -1, 80), - new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this conjured item does not work properly yet - new Item("Conjured Mana Cake", 3, 6)] as Item[] - -GildedRose app = new GildedRose(items) - -int days = 2 -if (args.length > 0) { - days = Integer.parseInt(args[0]) + 1 -} - -for (int i = 0; i < days; i++) { - println("-------- day " + i + " --------") - println("name, sellIn, quality") - for (Item item in items) { - println(item) - } - println "" - app.updateQuality() -} diff --git a/Java - Spock/.gitignore b/Java - Spock/.gitignore deleted file mode 100644 index cd3d2f4b..00000000 --- a/Java - Spock/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.idea/ -.gradle/ -build/ \ No newline at end of file diff --git a/Java - Spock/build.gradle b/Java - Spock/build.gradle deleted file mode 100644 index f3e0c1c1..00000000 --- a/Java - Spock/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -apply plugin: 'groovy' - -repositories { - mavenCentral() -} - -dependencies { - testCompile 'org.spockframework:spock-core:1.0-groovy-2.4' -} diff --git a/Java - Spock/gradle/wrapper/gradle-wrapper.jar b/Java - Spock/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 941144813d241db74e1bf25b6804c679fbe7f0a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53636 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 DXC5Z7 diff --git a/Java - Spock/gradle/wrapper/gradle-wrapper.properties b/Java - Spock/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 29dd2bcf..00000000 --- a/Java - Spock/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Jul 05 09:24:35 CEST 2016 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-bin.zip diff --git a/Java - Spock/gradlew b/Java - Spock/gradlew deleted file mode 100644 index 9d82f789..00000000 --- a/Java - Spock/gradlew +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/Java - Spock/gradlew.bat b/Java - Spock/gradlew.bat deleted file mode 100644 index 8a0b282a..00000000 --- a/Java - Spock/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/Java - Spock/src/main/java/com/gildedrose/GildedRose.java b/Java - Spock/src/main/java/com/gildedrose/GildedRose.java deleted file mode 100644 index 87a3b926..00000000 --- a/Java - Spock/src/main/java/com/gildedrose/GildedRose.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedrose; - -class GildedRose { - Item[] items; - - public GildedRose(Item[] items) { - this.items = items; - } - - public void updateQuality() { - for (int i = 0; i < items.length; i++) { - if (!items[i].name.equals("Aged Brie") - && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - - if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) { - if (!items[i].name.equals("Aged Brie")) { - if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - items[i].quality = items[i].quality - items[i].quality; - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } -} diff --git a/Java - Spock/src/main/java/com/gildedrose/Item.java b/Java - Spock/src/main/java/com/gildedrose/Item.java deleted file mode 100644 index 465729ec..00000000 --- a/Java - Spock/src/main/java/com/gildedrose/Item.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedrose; - -public class Item { - - public String name; - - public int sellIn; - - public int quality; - - public Item(String name, int sellIn, int quality) { - this.name = name; - this.sellIn = sellIn; - this.quality = quality; - } - - @Override - public String toString() { - return this.name + ", " + this.sellIn + ", " + this.quality; - } -} diff --git a/Java - Spock/src/main/java/com/gildedrose/TexttestFixture.java b/Java - Spock/src/main/java/com/gildedrose/TexttestFixture.java deleted file mode 100644 index d059c88f..00000000 --- a/Java - Spock/src/main/java/com/gildedrose/TexttestFixture.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedrose; - -public class TexttestFixture { - public static void main(String[] args) { - System.out.println("OMGHAI!"); - - Item[] items = new Item[] { - new Item("+5 Dexterity Vest", 10, 20), // - new Item("Aged Brie", 2, 0), // - new Item("Elixir of the Mongoose", 5, 7), // - new Item("Sulfuras, Hand of Ragnaros", 0, 80), // - new Item("Sulfuras, Hand of Ragnaros", -1, 80), - new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this conjured item does not work properly yet - new Item("Conjured Mana Cake", 3, 6) }; - - GildedRose app = new GildedRose(items); - - int days = 2; - if (args.length > 0) { - days = Integer.parseInt(args[0]) + 1; - } - - for (int i = 0; i < days; i++) { - System.out.println("-------- day " + i + " --------"); - System.out.println("name, sellIn, quality"); - for (Item item : items) { - System.out.println(item); - } - System.out.println(); - app.updateQuality(); - } - } - -} diff --git a/Java - Spock/src/test/groovy/com/gildedrose/GildedRoseSpec.groovy b/Java - Spock/src/test/groovy/com/gildedrose/GildedRoseSpec.groovy deleted file mode 100644 index 04276c03..00000000 --- a/Java - Spock/src/test/groovy/com/gildedrose/GildedRoseSpec.groovy +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedrose - -import spock.lang.Specification - -/** - * Spock unit tests. - */ -class GildedRoseSpec extends Specification { - - def "should update quality correctly"() { - - given: "some items" - Item[] items = [new Item("foo", 0, 0)]; - - and: "the application with these items" - GildedRose app = new GildedRose(items); - - when: "updating quality" - app.updateQuality(); - - then: "the quality is correct" - app.items[0].name == "fixme" - } - -} diff --git a/Java/.gitignore b/Java/.gitignore deleted file mode 100644 index 69f580e0..00000000 --- a/Java/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -.idea/ -*.iml -target/ - -.classpath -.project -bin/ -.settings/ diff --git a/Java/pom.xml b/Java/pom.xml deleted file mode 100644 index 6add3690..00000000 --- a/Java/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - 4.0.0 - - com.gildedrose - gilded-rose-kata - 0.0.1-SNAPSHOT - - - 1.8 - - - - - junit - junit - 4.12 - test - - - - - - - maven-compiler-plugin - - ${java.version} - ${java.version} - - - - - - \ No newline at end of file diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java deleted file mode 100644 index e6feb751..00000000 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedrose; - -class GildedRose { - Item[] items; - - public GildedRose(Item[] items) { - this.items = items; - } - - public void updateQuality() { - for (int i = 0; i < items.length; i++) { - if (!items[i].name.equals("Aged Brie") - && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - - if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) { - if (!items[i].name.equals("Aged Brie")) { - if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - items[i].quality = items[i].quality - items[i].quality; - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } -} \ No newline at end of file diff --git a/Java/src/main/java/com/gildedrose/Item.java b/Java/src/main/java/com/gildedrose/Item.java deleted file mode 100644 index 465729ec..00000000 --- a/Java/src/main/java/com/gildedrose/Item.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedrose; - -public class Item { - - public String name; - - public int sellIn; - - public int quality; - - public Item(String name, int sellIn, int quality) { - this.name = name; - this.sellIn = sellIn; - this.quality = quality; - } - - @Override - public String toString() { - return this.name + ", " + this.sellIn + ", " + this.quality; - } -} diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java deleted file mode 100644 index 95bfddc4..00000000 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedrose; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class GildedRoseTest { - - @Test - public void foo() { - Item[] items = new Item[] { new Item("foo", 0, 0) }; - GildedRose app = new GildedRose(items); - app.updateQuality(); - assertEquals("fixme", app.items[0].name); - } - -} diff --git a/Java/src/test/java/com/gildedrose/TexttestFixture.java b/Java/src/test/java/com/gildedrose/TexttestFixture.java deleted file mode 100644 index d059c88f..00000000 --- a/Java/src/test/java/com/gildedrose/TexttestFixture.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedrose; - -public class TexttestFixture { - public static void main(String[] args) { - System.out.println("OMGHAI!"); - - Item[] items = new Item[] { - new Item("+5 Dexterity Vest", 10, 20), // - new Item("Aged Brie", 2, 0), // - new Item("Elixir of the Mongoose", 5, 7), // - new Item("Sulfuras, Hand of Ragnaros", 0, 80), // - new Item("Sulfuras, Hand of Ragnaros", -1, 80), - new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this conjured item does not work properly yet - new Item("Conjured Mana Cake", 3, 6) }; - - GildedRose app = new GildedRose(items); - - int days = 2; - if (args.length > 0) { - days = Integer.parseInt(args[0]) + 1; - } - - for (int i = 0; i < days; i++) { - System.out.println("-------- day " + i + " --------"); - System.out.println("name, sellIn, quality"); - for (Item item : items) { - System.out.println(item); - } - System.out.println(); - app.updateQuality(); - } - } - -} diff --git a/R/.project b/R/.project deleted file mode 100644 index 62d08220..00000000 --- a/R/.project +++ /dev/null @@ -1,18 +0,0 @@ - - - GildedRose.R - - - - - - de.walware.statet.r.builders.RSupport - - - - - - de.walware.statet.base.StatetNature - de.walware.statet.r.RNature - - diff --git a/R/gilded_rose.R b/R/gilded_rose.R deleted file mode 100644 index 3d639dda..00000000 --- a/R/gilded_rose.R +++ /dev/null @@ -1,56 +0,0 @@ -source('item.R') - -update_quality <- function(items) { - lapply(items, - function(item) { - - if (item$name != "Aged Brie" && item$name != "Backstage passes to a TAFKAL80ETC concert") { - if (item$quality > 0) { - if (item$name != "Sulfuras, Hand of Ragnaros") { - item$quality <- item$quality - 1 - } - } - } else { - if (item$quality < 50) { - item$quality <- item$quality + 1 - if (item$name == "Backstage passes to a TAFKAL80ETC concert") { - if (item$sell_in < 11) { - if (item$quality < 50) { - item$quality = item$quality + 1 - } - } - if (item$sell_in < 6) { - if (item$quality < 50) { - item$quality = item$quality + 1 - } - } - } - } - } - - if (item$name != "Sulfuras, Hand of Ragnaros") { - item$sell_in <- item$sell_in - 1 - } - - if (item$sell_in < 0) { - if (item$name != "Aged Brie") { - if (item$name != "Backstage passes to a TAFKAL80ETC concert") { - if (item$quality > 0) { - if (item$name != "Sulfuras, Hand of Ragnaros") { - item$quality <- item$quality - 1 - } - } - } else { - item$quality <- item$quality - item$quality - } - } else { - if (item$quality < 50) { - item$quality <- item$quality + 1 - } - } - } - - item - } - ) -} diff --git a/R/item.R b/R/item.R deleted file mode 100644 index 51cc90dc..00000000 --- a/R/item.R +++ /dev/null @@ -1,13 +0,0 @@ -item <- function(name, sell_in, quality) { - newItem <- list(name=name, sell_in=sell_in, quality=quality) - class(newItem) <- 'item' - newItem -} - -as.character.item <- function(item) { - paste(item$name, ", ", item$sell_in, ", ", item$quality, sep='') -} - -print.item <- function(item) { - print.default(as.character(item)) -} diff --git a/R/runit_gilded_rose.R b/R/runit_gilded_rose.R deleted file mode 100644 index a0004b7c..00000000 --- a/R/runit_gilded_rose.R +++ /dev/null @@ -1,7 +0,0 @@ -source('gilded_rose.R') - -test.foo <- function() { - items <- list( item('foo', 0, 0) ) - items <- update_quality(items) - checkEquals('fixme', items[[1]]$name); -} diff --git a/R/test_setup.R b/R/test_setup.R deleted file mode 100644 index fc62610e..00000000 --- a/R/test_setup.R +++ /dev/null @@ -1,7 +0,0 @@ -# A little helper script to get the testing infrastructure started - -# install.packages("RUnit") -require(RUnit) - -# execute single test file -runTestFile("runit_gilded_rose.R") diff --git a/R/texttest_fixture.R b/R/texttest_fixture.R deleted file mode 100644 index ec635e6e..00000000 --- a/R/texttest_fixture.R +++ /dev/null @@ -1,33 +0,0 @@ -rm(list=ls()) - -source('gilded_rose.R') - -writeLines('OMGHAI!') - -items <- list( - item('+5 Dexterity Vest', 10, 20), - item('Aged Brie', 2, 0), - item('Elixir of the Mongoose', 5, 7), - item('Sulfuras, Hand of Ragnaros', 0, 80), - item('Sulfuras, Hand of Ragnaros', -1, 80), - item('Backstage passes to a TAFKAL80ETC concert', 15, 20), - item('Backstage passes to a TAFKAL80ETC concert', 10, 49), - item('Backstage passes to a TAFKAL80ETC concert', 5, 49), - # This Conjured item does not work properly yet - item('Conjured Mana Cake', 3, 6) -) - -days <- 2 -for (day in 0:days) { - writeLines(paste('-------- day ', day, ' --------', sep='')) - writeLines('name, sellIn, quality') - lapply(items, - function(item) { - writeLines(as.character(item)) - } - ) - writeLines('') - items <- update_quality(items) -} - -rm('day', 'days', 'items') diff --git a/Smalltalk/GildedRose.st b/Smalltalk/GildedRose.st deleted file mode 100644 index 8be7cd18..00000000 --- a/Smalltalk/GildedRose.st +++ /dev/null @@ -1 +0,0 @@ -Object subclass: #GildedRose instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'GildedRose'! !GildedRose commentStamp: 'AndreasLeidig 4/21/2012 15:38' prior: 0! This Kata was originally created by Terry Hughes (http://twitter.com/#!!/TerryHughes). It is already on GitHub as "GildedRose", a sample project for C#. I could have forked it again, but I thought other language users might not want to download a whole C# project environment. In this repository are starting code samples for Java, Python, Ruby, C# and C++. See also http://iamnotmyself.com/2011/02/13/refactor-this-the-gilded-rose-kata/ ==================== How to use this Kata ==================== The simplest way is to just clone the code and start hacking away improving the design. You'll want to look at the "Gilded Rose Background Reading" (below) which explains what the code is for. I strongly advise you that you'll also need some tests if you want to make sure you don't break the code while you refactor. You could write some unit tests yourself, using the Kata Background Reading (below) to identify suitable test cases. I've provided a failing unit test in a popular test framework as a starting point for most languages. Alternatively, use the "Text-Based" tests provided in this repository. (Read more about that in the next section) Whichever testing approach you choose, the idea of the exercise is to do some deliberate practice, and improve your Refactoring skills. The idea is not to re-write the code from scratch, but rather to practice taking small steps, running the tests often, and incrementally improving the design. ================== Text-Based Testing ================== This is a testing approach which is very useful when refactoring legacy code. The basic idea is to create tests that use the text which the code produces. Before you change the code, you run it, and save the output as a "Golden Copy". Then after you change the code, you run it again, and compare the output against the Golden Copy. Any differences, and the test fails. It's basically the same idea as "assertEquals(expected, actual)" in a unit test, except the text you are comparing is typically much longer, and the "expected" value is saved from actual output, rather than being defined in advance. Typically a piece of legacy code may not produce suitable textual output from the start, so you may need to modify it before you can write your first text-based test. That could involve inserting log statements into the code, or just writing a "main" method that executes the code and prints out what the result is afterwards. It's this latter approach we are using here to test GildedRose. The Text-Based tests in this repository are designed to be used with the tool "TextTest" (http://texttest.org). This tool helps you to organize and run text-based tests. There is more information in the README file in the "texttests" subdirectory. =================================== Gilded Rose Kata Background Reading =================================== Hi and welcome to team Gilded Rose. As you know, we are a small inn with a prime location in a prominent city ran by a friendly innkeeper named Allison. We also buy and sell only the finest goods. Unfortunately, our goods are constantly degrading in quality as they approach their sell by date. We have a system in place that updates our inventory for us. It was developed by a no-nonsense type named Leeroy, who has moved on to new adventures. Your task is to add the new feature to our system so that we can begin selling a new category of items. First an introduction to our system: - All items have a SellIn value which denotes the number of days we have to sell the item - All items have a Quality value which denotes how valuable the item is - At the end of each day our system lowers both values for every item Pretty simple, right? Well this is where it gets interesting: - Once the sell by date has passed, Quality degrades twice as fast - The Quality of an item is never negative - "Aged Brie" actually increases in Quality the older it gets - The Quality of an item is never more than 50 - "Sulfuras", being a legendary item, never has to be sold or decreases in Quality - "Backstage passes", like aged brie, increases in Quality as it's SellIn value approaches; Quality increases by 2 when there are 10 days or less and by 3 when there are 5 days or less but Quality drops to 0 after the concert We have recently signed a supplier of conjured items. This requires an update to our system: - "Conjured" items degrade in Quality twice as fast as normal items Feel free to make any changes to the UpdateQuality method and add any new code as long as everything still works correctly. However, do not alter the Item class or Items property as those belong to the goblin in the corner who will insta-rage and one-shot you as he doesn't believe in shared code ownership (you can make the UpdateQuality method and Items property static if you like, we'll cover for you). Just for clarification, an item can never have its Quality increase above 50, however "Sulfuras" is a legendary item and as such its Quality is 80 and it never alters.! !GildedRose methodsFor: 'API' stamp: 'AndreasLeidig 4/21/2012 17:02'! updateQualityFor: items items do: [:item | (item name ~= 'Aged Brie' and: [item name ~= 'Backstage passes to a TAFKAL80ETC concert']) ifTrue: [item quality > 0 ifTrue: [item name ~= 'Sulfuras, Hand of Ragnaros' ifTrue: [item quality: item quality - 1]]] ifFalse: [item quality < 50 ifTrue: [item quality: item quality + 1. item name = 'Backstage passes to a TAFKAL80ETC concert' ifTrue: [item sellIn < 11 ifTrue: [item quality < 50 ifTrue: [item quality: item quality + 1]]. item sellIn < 6 ifTrue: [item quality < 50 ifTrue: [item quality: item quality + 1]]]]]. item name ~= 'Sulfuras, Hand of Ragnaros' ifTrue: [item sellIn: item sellIn - 1]. item sellIn < 0 ifTrue: [item name ~= 'Aged Brie' ifTrue: [item name ~= 'Backstage passes to a TAFKAL80ETC concert' ifTrue: [item quality > 0 ifTrue: [item name ~= 'Sulfuras, Hand of Ragnaros' ifTrue: [item quality: item quality - 1]]] ifFalse: [item quality: item quality - item quality]] ifFalse: [item quality < 50 ifTrue: [item quality: item quality + 1]]]]! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! GildedRose class instanceVariableNames: ''! !GildedRose class methodsFor: 'run Example' stamp: 'AndreasLeidig 4/21/2012 20:26'! runExamples "GildedRose runExamples" | items gildedRose | items := OrderedCollection new add: (Item new name: '+5 Dexterity Vest'; sellIn: 10; quality: 20; yourself); add: (Item new name: 'Aged Brie'; sellIn: 2; quality: 0; yourself); add: (Item new name: 'Elixir of the Mongoose'; sellIn: 5; quality: 7; yourself); add: (Item new name: 'Sulfuras, Hand of Ragnaros'; sellIn: 0; quality: 80; yourself); add: (Item new name: 'Sulfuras, Hand of Ragnaros'; sellIn: -1; quality: 80; yourself); add: (Item new name: 'Backstage passes to a TAFKAL80ETC concert'; sellIn: 15; quality: 20; yourself); add: (Item new name: 'Backstage passes to a TAFKAL80ETC concert'; sellIn: 10; quality: 49; yourself); add: (Item new name: 'Backstage passes to a TAFKAL80ETC concert'; sellIn: 5; quality: 49; yourself); add: (Item new name: 'Conjured Mana Cake'; sellIn: 3; quality: 6; yourself); "this conjured item does not work properly yet" yourself. gildedRose := GildedRose new. Transcript show: 'OMGHAI!!'; cr. 0 to: 30 do: [:idx | Transcript show: '-------- day ' , idx printString , ' --------'; cr; show: 'name, sellIn, quality'; cr. items do: [:item | Transcript show: item name , ', ' , item sellIn printString , ', ' , item quality printString; cr]. Transcript cr. gildedRose updateQualityFor: items]. Transcript cr! ! Object subclass: #Item instanceVariableNames: 'name sellIn quality' classVariableNames: '' poolDictionaries: '' category: 'GildedRose'! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:40'! name ^name! ! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:41'! name: aString name := aString! ! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:41'! quality ^quality! ! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:42'! quality: aNumber quality := aNumber! ! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:41'! sellIn ^sellIn! ! !Item methodsFor: 'accessing' stamp: 'AndreasLeidig 4/21/2012 15:42'! sellIn: aNumber sellIn := aNumber ! ! \ No newline at end of file diff --git a/TypeScript/.gitignore b/TypeScript/.gitignore deleted file mode 100644 index 7d7d75b0..00000000 --- a/TypeScript/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.DS_Store -.idea -node_modules -typings -app/**/*.js -app/**/*.js.map -test/**/*.js -test/**/*.js.map -coverage -.nyc_output diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts deleted file mode 100644 index c7d58c65..00000000 --- a/TypeScript/app/gilded-rose.ts +++ /dev/null @@ -1,69 +0,0 @@ -export class Item { - name: string; - sellIn: number; - quality: number; - - constructor(name, sellIn, quality) { - this.name = name; - this.sellIn = sellIn; - this.quality = quality; - } -} - -export class GildedRose { - items: Array; - - constructor(items = []) { - this.items = items; - } - - updateQuality() { - for (let i = 0; i < this.items.length; i++) { - if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].quality > 0) { - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].quality = this.items[i].quality - 1 - } - } - } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1 - if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].sellIn < 11) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1 - } - } - if (this.items[i].sellIn < 6) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1 - } - } - } - } - } - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].sellIn = this.items[i].sellIn - 1; - } - if (this.items[i].sellIn < 0) { - if (this.items[i].name != 'Aged Brie') { - if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].quality > 0) { - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].quality = this.items[i].quality - 1 - } - } - } else { - this.items[i].quality = this.items[i].quality - this.items[i].quality - } - } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1 - } - } - } - } - - return this.items; - } -} diff --git a/TypeScript/package.json b/TypeScript/package.json deleted file mode 100644 index 28b6bb3f..00000000 --- a/TypeScript/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "typescript-mocha-kata-seed", - "version": "1.4.0", - "description": "Seed project for TDD code katas on TypeScript and mocha", - "main": "index.js", - "scripts": { - "precompile": "rimraf app/**/*.js test/**/*.js", - "compile": "tsc", - "pretest": "rimraf app/**/*.js test/**/*.js", - "test": "nyc mocha" - }, - "author": "paucls", - "homepage": "https://github.com/paucls/typescript-mocha-kata-seed", - "license": "ISC", - "private": true, - "devDependencies": { - "@types/chai": "~3.5.2", - "@types/mocha": "~2.2.41", - "@types/node": "~7.0.18", - "chai": "~3.5.0", - "mocha": "~3.2.0", - "nyc": "~11.0.3", - "rimraf": "~2.5.2", - "ts-node": "~3.1.0", - "typescript": "~2.2.0" - }, - "nyc": { - "extension": [ - ".ts" - ], - "exclude": [ - "**/*.d.ts", - "test/**" - ], - "require": [ - "ts-node/register" - ], - "reporter": [ - "html", - "text" - ] - } -} - diff --git a/TypeScript/test/guilded-rose.spec.ts b/TypeScript/test/guilded-rose.spec.ts deleted file mode 100644 index 0c192caf..00000000 --- a/TypeScript/test/guilded-rose.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from 'chai'; -import { Item, GildedRose } from '../app/gilded-rose'; - -describe('Gilded Rose', function () { - - it('should foo', function() { - const gildedRose = new GildedRose([ new Item('foo', 0, 0) ]); - const items = gildedRose.updateQuality(); - expect(items[0].name).to.equal('fixme'); - }); - -}); diff --git a/TypeScript/test/mocha.opts b/TypeScript/test/mocha.opts deleted file mode 100644 index bf3868c8..00000000 --- a/TypeScript/test/mocha.opts +++ /dev/null @@ -1,4 +0,0 @@ ---compilers ts-node/register ---require source-map-support/register ---recursive -test/**/*.ts diff --git a/TypeScript/tsconfig.json b/TypeScript/tsconfig.json deleted file mode 100644 index 4f713921..00000000 --- a/TypeScript/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es5", - "noImplicitAny": false, - "sourceMap": false - }, - "exclude": [ - "node_modules" - ] -} diff --git a/abap/README.md b/abap/README.md deleted file mode 100644 index ebd18544..00000000 --- a/abap/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Gilded Rose Refactoring Kata in [ABAP](http://scn.sap.com/community/abap/) - -## Prerequisite - -Access to SAP NetWeaver server with at least ABAP 7.40 - -## Installation - -Assuming you have a proper developer key set up, run SE38 -* create a new Module Pool (type M) program as a Local Object -* paste the raw code from [YY_PAO_GILDED_ROSE.abap](https://raw.githubusercontent.com/brehberg/GildedRose-Refactoring-Kata/master/abap/YY_PAO_GILDED_ROSE.abap) -* save (Ctrl-S) and activate (Ctrl-F3) the program - -## Running Tests - -From the menus choose Program -> Execute -> Unit Tests (Ctrl+Shift+F10) diff --git a/abap/YY_PAO_GILDED_ROSE.abap b/abap/YY_PAO_GILDED_ROSE.abap deleted file mode 100644 index 40e8f985..00000000 --- a/abap/YY_PAO_GILDED_ROSE.abap +++ /dev/null @@ -1,242 +0,0 @@ -*&---------------------------------------------------------------------* -*& Gilded Rose Requirements Specification -*&---------------------------------------------------------------------* -*& -*& Hi and welcome to team Gilded Rose. As you know, we are a small inn with -*& a prime location in a prominent city ran by a friendly innkeeper named -*& Allison. We also buy and sell only the finest goods. Unfortunately, our -*& goods are constantly degrading in quality as they approach their sell by -*& date. We have a system in place that updates our inventory for us. It -*& was developed by a no-nonsense type named Leeroy, who has moved on to -*& new adventures. Your task is to add the new feature to our system so that -*& we can begin selling a new category of items. -*& -*& First an introduction to our system: -*& -*& - All items have a Sell In value which denotes the number of -*& days we have to sell the item -*& - All items have a Quality value which denotes how valuable the item is -*& - At the end of each day our system lowers both values for every item -*& -*& Seems pretty simple, right? Well this is where it gets interesting: -*& -*& - Once the sell by date has passed, Quality degrades twice as fast -*& - The Quality of an item is never negative -*& - "Aged Brie" actually increases in Quality the older it gets -*& - The Quality of an item is never more than 50 -*& - "Sulfuras", being a legendary item, never has to be sold or -*& decreases in Quality -*& - "Backstage passes", like aged brie, increases in Quality as its -*& Sell In value approaches; Quality increases by 2 when there -*& are 10 days or less and by 3 when there are 5 days or less -*& but Quality drops to 0 after the concert -*& -*& We have recently signed a supplier of conjured items. This requires an -*& update to our system: -*& -*& - "Conjured" items degrade in Quality twice as fast as normal items -*& -*& Feel free to make any changes to the Update Quality method and add any new -*& code as long as everything still works correctly. However, do not alter -*& the Item class directly or Items table attribute as those belong to the -*& goblin in the corner who will insta-rage and one-shot you as he doesn't -*& believe in shared code ownership (you can make the Update Quality method -*& and Items property static if you must, we'll cover for you). -*& -*& Just for clarification, an item can never have its Quality increase -*& above 50, however "Sulfuras" is a legendary item and as such its Quality -*& is 80 and it never alters. - -PROGRAM yy_pao_gilded_rose. - - -*& Production Code - Class Library -CLASS lcl_item DEFINITION DEFERRED. - -CLASS lcl_gilded_rose DEFINITION FINAL. - PUBLIC SECTION. - TYPES: - tt_items TYPE STANDARD TABLE OF REF TO lcl_item WITH EMPTY KEY. - METHODS: - constructor - IMPORTING it_items TYPE tt_items, - update_quality. - - PRIVATE SECTION. - DATA: - mt_items TYPE tt_items. -ENDCLASS. - -CLASS lcl_item DEFINITION FINAL. - PUBLIC SECTION. - METHODS: - constructor - IMPORTING iv_name TYPE string - iv_sell_in TYPE i - iv_quality TYPE i, - description - RETURNING VALUE(rv_string) TYPE string. - DATA: - mv_name TYPE string, - mv_sell_in TYPE i, - mv_quality TYPE i. -ENDCLASS. - -CLASS lcl_gilded_rose IMPLEMENTATION. - - METHOD constructor. - mt_items = it_items. - ENDMETHOD. - - METHOD update_quality. - - LOOP AT mt_items INTO DATA(lo_item). - IF lo_item->mv_name <> |Aged Brie| AND - lo_item->mv_name <> |Backstage passes to a TAFKAL80ETC concert|. - IF lo_item->mv_quality > 0. - IF lo_item->mv_name <> |Sulfuras, Hand of Ragnaros|. - lo_item->mv_quality = lo_item->mv_quality - 1. - ENDIF. - ENDIF. - ELSE. - IF lo_item->mv_quality < 50. - lo_item->mv_quality = lo_item->mv_quality + 1. - - IF lo_item->mv_name = |Backstage passes to a TAFKAL80ETC concert|. - IF lo_item->mv_sell_in < 11. - IF lo_item->mv_quality < 50. - lo_item->mv_quality = lo_item->mv_quality + 1. - ENDIF. - ENDIF. - - IF lo_item->mv_sell_in < 6. - IF lo_item->mv_quality < 50. - lo_item->mv_quality = lo_item->mv_quality + 1. - ENDIF. - ENDIF. - ENDIF. - ENDIF. - ENDIF. - - IF lo_item->mv_name <> |Sulfuras, Hand of Ragnaros|. - lo_item->mv_sell_in = lo_item->mv_sell_in - 1. - ENDIF. - - IF lo_item->mv_sell_in < 0. - IF lo_item->mv_name <> |Aged Brie|. - IF lo_item->mv_name <> |Backstage passes to a TAFKAL80ETC concert|. - IF lo_item->mv_quality > 0. - IF lo_item->mv_name <> |Sulfuras, Hand of Ragnaros|. - lo_item->mv_quality = lo_item->mv_quality - 1. - ENDIF. - ENDIF. - ELSE. - lo_item->mv_quality = lo_item->mv_quality - lo_item->mv_quality. - ENDIF. - ELSE. - IF lo_item->mv_quality < 50. - lo_item->mv_quality = lo_item->mv_quality + 1. - ENDIF. - ENDIF. - ENDIF. - ENDLOOP. - - ENDMETHOD. - -ENDCLASS. - -CLASS lcl_item IMPLEMENTATION. - - METHOD constructor. - mv_name = iv_name. - mv_sell_in = iv_sell_in. - mv_quality = iv_quality. - ENDMETHOD. - - METHOD description. - rv_string = |{ mv_name }, { mv_sell_in }, { mv_quality }|. - ENDMETHOD. - -ENDCLASS. - - -*& Test Code - Executable Text Test Fixture -CLASS lth_texttest_fixture DEFINITION FINAL. - PUBLIC SECTION. - CLASS-METHODS main. -ENDCLASS. - -CLASS lth_texttest_fixture IMPLEMENTATION. - METHOD main. - DATA(lo_out) = cl_demo_output=>new( )->write_text( |OMGHAI!| ). - - DATA(lt_items) = VALUE lcl_gilded_rose=>tt_items( - ( NEW #( iv_name = |+5 Dexterity Vest| - iv_sell_in = 10 - iv_quality = 20 ) ) - ( NEW #( iv_name = |Aged Brie| - iv_sell_in = 2 - iv_quality = 0 ) ) - ( NEW #( iv_name = |Elixir of the Mongoose| - iv_sell_in = 5 - iv_quality = 7 ) ) - ( NEW #( iv_name = |Sulfuras, Hand of Ragnaros| - iv_sell_in = 0 - iv_quality = 80 ) ) - ( NEW #( iv_name = |Backstage passes to a TAFKAL80ETC concert| - iv_sell_in = 15 - iv_quality = 20 ) ) - ( NEW #( iv_name = |Backstage passes to a TAFKAL80ETC concert| - iv_sell_in = 10 - iv_quality = 49 ) ) - ( NEW #( iv_name = |Backstage passes to a TAFKAL80ETC concert| - iv_sell_in = 5 - iv_quality = 49 ) ) - "This conjured item does not work properly yet - ( NEW #( iv_name = |Conjured Mana Cake| - iv_sell_in = 3 - iv_quality = 6 ) ) ). - - DATA(lo_app) = NEW lcl_gilded_rose( it_items = lt_items ). - - DATA(lv_days) = 2. - cl_demo_input=>request( EXPORTING text = |Number of Days?| - CHANGING field = lv_days ). - - DO lv_days TIMES. - lo_out->next_section( |-------- day { sy-index } --------| ). - lo_out->write_text( |Name, Sell_In, Quality| ). - LOOP AT lt_items INTO DATA(lo_item). - lo_out->write_text( lo_item->description( ) ). - ENDLOOP. - lo_app->update_quality( ). - ENDDO. - - lo_out->display( ). - ENDMETHOD. -ENDCLASS. - - -*& Test Code - Currently Broken -CLASS ltc_gilded_rose DEFINITION FINAL FOR TESTING RISK LEVEL HARMLESS. - PRIVATE SECTION. - METHODS: - foo FOR TESTING. -ENDCLASS. - -CLASS ltc_gilded_rose IMPLEMENTATION. - - METHOD foo. - DATA(lt_items) = VALUE lcl_gilded_rose=>tt_items( ( NEW #( iv_name = |foo| - iv_sell_in = 0 - iv_quality = 0 ) ) ). - - DATA(lo_app) = NEW lcl_gilded_rose( it_items = lt_items ). - lo_app->update_quality( ). - - cl_abap_unit_assert=>assert_equals( - act = CAST lcl_item( lt_items[ 1 ] )->mv_name - exp = |fixme| ). - ENDMETHOD. - -ENDCLASS. diff --git a/c99/GildedRose.c b/c99/GildedRose.c deleted file mode 100644 index afb97bbe..00000000 --- a/c99/GildedRose.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include "GildedRose.h" - -Item* -init_item(Item* item, const char *name, int sellIn, int quality) -{ - item->sellIn = sellIn; - item->quality = quality; - item->name = strdup(name); - - return item; -} - -void update_quality(Item items[], int size) -{ - int i; - - for (i = 0; i < size; i++) - { - if (strcmp(items[i].name, "Aged Brie") && strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].quality > 0) - { - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - - if (!strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].sellIn < 11) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) - { - if (strcmp(items[i].name, "Aged Brie")) - { - if (strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert")) - { - if (items[i].quality > 0) - { - if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros")) - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - items[i].quality = items[i].quality - items[i].quality; - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } -} diff --git a/c99/GildedRose.h b/c99/GildedRose.h deleted file mode 100644 index 78d54a08..00000000 --- a/c99/GildedRose.h +++ /dev/null @@ -1,9 +0,0 @@ -typedef struct -{ - char *name; - int sellIn; - int quality; -} Item; - -extern Item* init_item(Item* item, const char *name, int sellIn, int quality); -extern void update_quality(Item items[], int size); diff --git a/c99/GildedRoseTextTests.c b/c99/GildedRoseTextTests.c deleted file mode 100644 index d200ca0c..00000000 --- a/c99/GildedRoseTextTests.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include "GildedRose.h" - -int -print_item(Item *item) -{ - return printf("%s, %d, %d\n", item->name, item->sellIn, item->quality); -} - -int main() -{ - Item items[9]; - int last = 0; - int day; - int index; - - init_item(items + last++, "+5 Dexterity Vest", 10, 20); - init_item(items + last++, "Aged Brie", 2, 0); - init_item(items + last++, "Elixir of the Mongoose", 5, 7); - init_item(items + last++, "Sulfuras, Hand of Ragnaros", 0, 80); - init_item(items + last++, "Sulfuras, Hand of Ragnaros", -1, 80); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 15, 20); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 10, 49); - init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 5, 49); - // this Conjured item doesn't yet work properly - init_item(items + last++, "Conjured Mana Cake", 3, 6); - - puts("OMGHAI!"); - - for (day = 0; day <= 30; day++) - { - printf("-------- day %d --------\n", day); - printf("name, sellIn, quality\n"); - for(index = 0; index < last; index++) { - print_item(items + index); - } - - printf("\n"); - - update_quality(items, last); - } - return 0; -} diff --git a/c99/Makefile b/c99/Makefile deleted file mode 100644 index 113d1552..00000000 --- a/c99/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# Makefile for building the kata file with the Google Testing Framework -# -# SYNOPSIS: -# -# make [all] - makes everything, runs tests -# make TARGET - makes the given target. -# make clean - removes all files generated by make. -# make memtest - run memory leak analysis - -# The _POSIX_C_SOURCE definition prevents the compiler from throwing warnings -CFLAGS = `pkg-config --cflags check` -g --std=c99 -D_POSIX_C_SOURCE=200809L -LIBS = `pkg-config --libs check` - -# All files that should be part of your test should start with 'test_' -TEST_SRC = $(wildcard test_*.c) -TEST_BASE = $(basename ${TEST_SRC}) -TEST_OBJECTS = $(addsuffix .o, ${TEST_BASE}) - -# All files that should be part of your main program should start with 'gilded_' -PROG_SRC = $(wildcard gilded_*.c) -PROG_BASE = $(basename ${PROG_SRC}) -PROG_OBJECTS = $(addsuffix .o, ${PROG_BASE}) - -OBJECT_UNDER_TEST = GildedRose.o ${PROG_OBJECTS} - -# This is the test application. You can run this program to see your test output -TEST_APP = test_gildedrose - - -# This will generate output for several products over a course of several days. -# You can run this application to build golden rule tests -GOLDEN_APP = golden_rose - -all: ${TEST_APP} ${GOLDEN_APP} - ./${TEST_APP} - -${TEST_APP}: ${TEST_OBJECTS} ${OBJECT_UNDER_TEST} - $(CC) $(CFLAGS) -o $@ $^ $(LIBS) - -${GOLDEN_APP}: GildedRoseTextTests.o ${OBJECT_UNDER_TEST} - $(CC) $(CFLAGS) -o $@ $^ - -# If you're not on a mac, you should run memtest (in fact, consider adding it to the 'all' target). -# If you're on a mac, complain to apple for breaking an important development tool. -memtest: ${TEST_APP} - valgrind --leak-check=full --error-exitcode=1 ./${TEST_APP} --nofork - -clean: - rm -f *.o - rm -f ${TEST_APP} - rm -f ${GOLDEN_APP} diff --git a/c99/README.md b/c99/README.md deleted file mode 100644 index ec2cd02e..00000000 --- a/c99/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Gilded Rose, C99 Edition - -The command "make" will build and run your tests, as well as build the program -golden_rose, which can serve as the basis for a golden-rule test. - - -## Assumptions - - gnu make and a C compiler (like gcc) is installed on your system and is in the PATH - - The check unit testing library is installed on your system (https://libcheck.github.io/check/) - - pkg-config is installed on your system - -## Usage - - Run `make` to build the program and run all tests - - Files which contain tests should be named `test_*.c` They will automatically - be included in your test suite. - - `GildedRose.h` should not be modified. The Goblin threat is real. - - New program logic may be included in files named `gilded_*.c` which will - automatically be included in both your tests and the final program. - -## Golden Rule tests - - The program `golden_rose` will generate text output. If you capture this - output after your first `make` you can use this as a reference for a golden - rule test. - - You can test your work against this reference by directing the output of your - current golden_rose to a file and using the `diff` utility to compare that - to the reference file you created above. - - To avoid the Goblin threat you can use `git diff GildedRose.h`, which should - have no output if you have left the precious Item structure unchanged. - -## Notes - - This project is tweaked to run on Linux systems, and will mostly work on Macs. - With some changes to the Makefile it can be made to run on BSD systems with - BSD make. An adventurous person could also get it to run on Windows. - - If you are working on a Macintosh computer you cannot run the memtest target, - because valgrind and OS X don't play nice any more. If you want to use the - memory checker OS X does run docker as a first class citizen. - - If you don't have pkg-config on your system, the only changes you'll need to - make are for the requirements of the check library. Mostly you need to - set the appropriate flags for threaded binaries, which may include some - special linker flags. The libcheck documentation will cover what you need - if you want to undertake this change. diff --git a/c99/test_main.c b/c99/test_main.c deleted file mode 100644 index 0d5a0de0..00000000 --- a/c99/test_main.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include - -Suite *suite_rose(void); - -int main(int argc, char **argv) -{ - Suite *s; - SRunner *runner; - int number_fails; - int forkme = 1; - - if (argc > 1 && strcmp(argv[1], "--nofork") == 0) { - forkme = 0; - } - - s = suite_rose(); - runner = srunner_create(s); - - if (0 == forkme) { - srunner_set_fork_status(runner, CK_NOFORK); - } - - srunner_run_all(runner, CK_NORMAL); - number_fails = srunner_ntests_failed(runner); - - srunner_free(runner); - - return number_fails; -} diff --git a/c99/test_rose.c b/c99/test_rose.c deleted file mode 100644 index 30cc7544..00000000 --- a/c99/test_rose.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include "GildedRose.h" - - - -START_TEST(roseFoo) -{ - Item items[1]; - init_item(items, "foo", 0, 0); - update_quality(items, 1); - - ck_assert_str_eq("fixme", items[0].name); -} -END_TEST - -TCase *tcase_rose(void) -{ - TCase *tc; - - tc = tcase_create("gilded-rose"); - tcase_add_test(tc, roseFoo); - - return tc; -} - -Suite *suite_rose(void) -{ - Suite *s; - - s = suite_create("characterization-tests"); - suite_add_tcase(s, tcase_rose()); - - return s; -} diff --git a/clisp/gilded-rose.lisp b/clisp/gilded-rose.lisp deleted file mode 100644 index 59143a42..00000000 --- a/clisp/gilded-rose.lisp +++ /dev/null @@ -1,140 +0,0 @@ -; Hi and welcome to team Gilded Rose. As you know, we are a small inn -; with a prime location in a prominent city ran by a friendly -; innkeeper named Allison. We also buy and sell only the finest goods. -; Unfortunately, our goods are constantly degrading in quality as they -; approach their sell by date. We have a system in place that updates -; our inventory for us. It was developed by a no-nonsense type named -; Leeroy, who has moved on to new adventures. Your task is to add the -; new feature to our system so that we can begin selling a new -; category of items. -; First an introduction to our system: -; All items have a SellIn value which denotes the number of days we have to sell the item -; All items have a Quality value which denotes how valuable the item is -; At the end of each day our system lowers both values for every item -; Pretty simple, right? Well this is where it gets interesting: -; Once the sell by date has passed, Quality degrades twice as fast -; The Quality of an item is never negative -; "Aged Brie" actually increases in Quality the older it gets -; The Quality of an item is never more than 50 -; "Sulfuras", being a legendary item, never has to be sold or decreases in Quality -; "Backstage passes", like aged brie, increases in Quality as it's -; SellIn value approaches; Quality increases by 2 when there are 10 -; days or less and by 3 when there are 5 days or less but Quality -; drops to 0 after the concert -; We have recently signed a supplier of conjured items. This requires an update to our system: -; "Conjured" items degrade in Quality twice as fast as normal items -; Feel free to make any changes to the UpdateQuality method and add -; any new code as long as everything still works correctly. However, -; do not alter the Item class or Items property as those belong to the -; goblin in the corner who will insta-rage and one-shot you as he -; doesn't believe in shared code ownership (you can make the -; UpdateQuality method and Items property static if you like, we'll -; cover for you). -; Just for clarification, an item can never have its Quality increase -; above 50, however "Sulfuras" is a legendary item and as such its -; Quality is 80 and it never alters. - -; https://github.com/emilybache/GildedRose-Refactoring-Kata - -; Common Lisp version: Rainer Joswig, joswig@lisp.de, 2016 - -; Example from the command line: -; sbcl --script gildedrose.lisp 10 - -;;; ================================================================ -;;; Code - -(defpackage "GILDED-ROSE" - (:use "CL")) - -(in-package "GILDED-ROSE") - - -;;; Class ITEM - -(defclass item () - ((name :initarg :name :type string) - (sell-in :initarg :sell-in :type integer) - (quality :initarg :quality :type integer))) - -(defmethod to-string ((i item)) - (with-slots (name quality sell-in) i - (format nil "~a, ~a, ~a" name sell-in quality))) - -;;; Class GILDED-ROSE - -(defclass gilded-rose () - ((items :initarg :items))) - -(defmethod update-quality ((gr gilded-rose)) - (with-slots (items) gr - (dotimes (i (length items)) - (with-slots (name quality sell-in) - (elt items i) - (if (and (not (equalp name "Aged Brie")) - (not (equalp name "Backstage passes to a TAFKAL80ETC concert"))) - (if (> quality 0) - (if (not (equalp name "Sulfuras, Hand of Ragnaros")) - (setf quality (- quality 1)))) - (when (< quality 50) - (setf quality (+ quality 1)) - (when (equalp name "Backstage passes to a TAFKAL80ETC concert") - (if (< sell-in 11) - (if (< quality 50) - (setf quality (+ quality 1)))) - (if (< sell-in 6) - (if (< quality 50) - (setf quality (+ quality 1))))))) - - (if (not (equalp name "Sulfuras, Hand of Ragnaros")) - (setf sell-in (- sell-in 1))) - - (if (< sell-in 0) - (if (not (equalp name "Aged Brie")) - (if (not (equalp name "Backstage passes to a TAFKAL80ETC concert")) - (if (> quality 0) - (if (not (equalp name "Sulfuras, Hand of Ragnaros")) - (setf quality (- quality 1)))) - (setf quality (- quality quality))) - (if (< quality 50) - (setf quality (+ quality 1))))))))) - -;;; Example - -(defun run-gilded-rose () - (write-line "OMGHAI!") - (let* ((descriptions '(("+5 Dexterity Vest" 10 20) - ("Aged Brie" 2 0) - ("Elixir of the Mongoose" 5 7) - ("Sulfuras, Hand of Ragnaros" 0 80) - ("Sulfuras, Hand of Ragnaros" -1 80) - ("Backstage passes to a TAFKAL80ETC concert" 15 20) - ("Backstage passes to a TAFKAL80ETC concert" 10 49) - ("Backstage passes to a TAFKAL80ETC concert" 5 49) - ;; this conjured item does not work properly yet - ("Conjured Mana Cake" 3 6))) - (items (loop for (name sell-in quality) in descriptions - collect (make-instance 'item - :name name - :sell-in sell-in - :quality quality))) - (app (make-instance 'gilded-rose :items items)) - (days 2)) - #+sbcl - (if (second sb-ext:*posix-argv*) - (setf days (parse-integer (second sb-ext:*posix-argv*)))) - #+lispworks - (if (fourth sys:*line-arguments-list*) - (setf days (parse-integer (fourth sys:*line-arguments-list*)))) - (dotimes (i days) - (format t "-------- day ~a --------~%" i) - (format t "name, sell-in, quality~%") - (dolist (item items) - (write-line (to-string item))) - (terpri) - (update-quality app)))) - -(run-gilded-rose) - -;;; ================================================================ -;;; EOF diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt deleted file mode 100644 index e704f0c5..00000000 --- a/cpp/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -cmake_minimum_required(VERSION 2.8.4) -project(cpp) - -# CMake FindThreads is broken until 3.1 -#find_package(Threads REQUIRED) -set(CMAKE_THREAD_LIBS_INIT pthread) - -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -set(GILDED_ROSE_SOURCE_FILES - GildedRose.cc - GildedRose.h - GildedRoseUnitTests.cc) - -set(GILDED_ROSE_TEXT_TESTS_SOURCE_FILES - GildedRose.cc - GildedRose.h - GildedRoseTextTests.cc) - -set(SOURCE_FILES - ${GILDED_ROSE_SOURCE_FILES} - ${GILDED_ROSE_TEXT_TESTS_SOURCE_FILES}) - -add_executable(GildedRose ${GILDED_ROSE_SOURCE_FILES}) -target_link_libraries(GildedRose ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - -add_executable(GildedRoseTextTests ${GILDED_ROSE_TEXT_TESTS_SOURCE_FILES}) -target_link_libraries(GildedRoseTextTests ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) diff --git a/cpp/GildedRose.cc b/cpp/GildedRose.cc deleted file mode 100644 index 8df23e47..00000000 --- a/cpp/GildedRose.cc +++ /dev/null @@ -1,80 +0,0 @@ -#include "GildedRose.h" - -GildedRose::GildedRose(vector & items) : items(items) -{} - -void GildedRose::updateQuality() -{ - for (int i = 0; i < items.size(); i++) - { - if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].quality > 0) - { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - - if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].sellIn < 11) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) - { - if (items[i].name != "Aged Brie") - { - if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].quality > 0) - { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - items[i].quality = items[i].quality - items[i].quality; - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } -} diff --git a/cpp/GildedRose.h b/cpp/GildedRose.h deleted file mode 100644 index 8464f87b..00000000 --- a/cpp/GildedRose.h +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace std; - -class Item -{ -public: - string name; - int sellIn; - int quality; - Item(string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality) - {} -}; - -class GildedRose -{ -public: - vector & items; - GildedRose(vector & items); - - void updateQuality(); -}; - diff --git a/cpp/GildedRoseTextTests.cc b/cpp/GildedRoseTextTests.cc deleted file mode 100644 index 182412a6..00000000 --- a/cpp/GildedRoseTextTests.cc +++ /dev/null @@ -1,42 +0,0 @@ -#include "GildedRose.h" - -#include - -using namespace std; - -ostream& operator<<(ostream& s, Item& item) -{ - s << item.name << ", " << item.sellIn << ", " << item.quality; - return s; -} - -int main() -{ - vector items; - items.push_back(Item("+5 Dexterity Vest", 10, 20)); - items.push_back(Item("Aged Brie", 2, 0)); - items.push_back(Item("Elixir of the Mongoose", 5, 7)); - items.push_back(Item("Sulfuras, Hand of Ragnaros", 0, 80)); - items.push_back(Item("Sulfuras, Hand of Ragnaros", -1, 80)); - items.push_back(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); - items.push_back(Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)); - items.push_back(Item("Backstage passes to a TAFKAL80ETC concert", 5, 49)); - // this Conjured item doesn't yet work properly - items.push_back(Item("Conjured Mana Cake", 3, 6)); - GildedRose app(items); - - cout << "OMGHAI!" << endl; - - for (int day = 0; day <= 30; day++) - { - cout << "-------- day " << day << " --------" << endl; - cout << "name, sellIn, quality" << endl; - for (vector::iterator i = items.begin(); i != items.end(); i++) - { - cout << *i << endl; - } - cout << endl; - - app.updateQuality(); - } -} diff --git a/cpp/GildedRoseUnitTests.cc b/cpp/GildedRoseUnitTests.cc deleted file mode 100644 index 7e72d830..00000000 --- a/cpp/GildedRoseUnitTests.cc +++ /dev/null @@ -1,24 +0,0 @@ -#include - -#include "GildedRose.h" - -TEST(GildedRoseTest, Foo) { - vector items; - items.push_back(Item("Foo", 0, 0)); - GildedRose app(items); - app.updateQuality(); - EXPECT_EQ("fixme", app.items[0].name); -} - -void example() -{ - vector items; - items.push_back(Item("+5 Dexterity Vest", 10, 20)); - items.push_back(Item("Aged Brie", 2, 0)); - items.push_back(Item("Elixir of the Mongoose", 5, 7)); - items.push_back(Item("Sulfuras, Hand of Ragnaros", 0, 80)); - items.push_back(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); - items.push_back(Item("Conjured Mana Cake", 3, 6)); - GildedRose app(items); - app.updateQuality(); -} diff --git a/cpp/Makefile b/cpp/Makefile deleted file mode 100644 index cc35de42..00000000 --- a/cpp/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# Makefile for building the kata file with the Google Testing Framework -# -# SYNOPSIS: -# -# make [all] - makes everything. -# make TARGET - makes the given target. -# make clean - removes all files generated by make. - -# Please tweak the following variable definitions as needed by your -# project, except GTEST_HEADERS, which you can use in your own targets -# but shouldn't modify. - -# Points to the root of Google Test, relative to where this file is. -# Remember to tweak this if you move this file. -GTEST_DIR = gtest - -# Where to find user code. -USER_DIR = . - -# Flags passed to the preprocessor. -CPPFLAGS += -I$(GTEST_DIR)/include - -# Flags passed to the C++ compiler. -CXXFLAGS += -g -Wall -Wextra - -# All tests produced by this Makefile. Remember to add new tests you -# created to the list. -TESTS = GildedRose - -TEXTTESTS = GildedRoseTextTests - -# All Google Test headers. Usually you shouldn't change this -# definition. -GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \ - $(GTEST_DIR)/include/gtest/internal/*.h - -# House-keeping build targets. - -all : $(TESTS) $(TEXTTESTS) - -clean : - rm -f $(TESTS) $(TEXTTESTS) gtest.a gtest_main.a *.o - -# Builds gtest.a and gtest_main.a. - -# Usually you shouldn't tweak such internal variables, indicated by a -# trailing _. -GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) - -# For simplicity and to avoid depending on Google Test's -# implementation details, the dependencies specified below are -# conservative and not optimized. This is fine as Google Test -# compiles fast and for ordinary users its source rarely changes. -gtest-all.o : $(GTEST_SRCS_) - $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ - $(GTEST_DIR)/src/gtest-all.cc - -gtest_main.o : $(GTEST_SRCS_) - $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ - $(GTEST_DIR)/src/gtest_main.cc - -gtest.a : gtest-all.o - $(AR) $(ARFLAGS) $@ $^ - -gtest_main.a : gtest-all.o gtest_main.o - $(AR) $(ARFLAGS) $@ $^ - -# Builds a sample test. A test should link with gtest.a, and also -# gtest_main.a if it doesn't define its own main() function. - -GildedRose.o : $(USER_DIR)/GildedRose.cc - $(CXX) -c $^ - -GildedRoseUnitTests.o : $(USER_DIR)/GildedRoseUnitTests.cc \ - $(GTEST_HEADERS) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/GildedRoseUnitTests.cc - -GildedRose : GildedRoseUnitTests.o GildedRose.o gtest.a gtest_main.a - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -pthread $^ -o $@ - -GildedRoseTextTests.o : $(USER_DIR)/GildedRoseTextTests.cc - $(CXX) -c $^ - -GildedRoseTextTests : GildedRoseTextTests.o GildedRose.o - $(CXX) -pthread $^ -o $@ diff --git a/cpp/README b/cpp/README deleted file mode 100644 index bae8ca20..00000000 --- a/cpp/README +++ /dev/null @@ -1,38 +0,0 @@ -TL;DR; -------- -run-once.sh runs your tests once - -Before this will work you will need: - - make and a C++ compiler (like gcc) is installed on your system and is in the PATH - - The GTest framework in the directory gtest. - - If your IDE does the compilation and linking, you should remove the first 3 lines - in the run-once.sh file. - -More Verbose Instructions -------------------------- - -Create a clone of both GildedRose-Refactoring-Kata and googletest in a directory we'll call ${ROOT_INSTALL_DIR}: - - cd ${ROOT_INSTALL_DIR} - git clone https://github.com/emilybache/GildedRose-Refactoring-Kata - git clone https://github.com/google/googletest - -Make googletest by running make in subfolder googletest/googletest/make: - - cd googletest/googletest/make - make - -Create a softlink in the GildedRose-Refactoring-Kata clone pointing at the googletest code: - - cd ${ROOT_INSTALL_DIR}/GildedRose-Refactoring-Kata/cpp - ln -s ${ROOT_INSTALL_DIR}/googletest/googletest gtest - -Make the GildedRose-Refactoring-Kata: - - make - -Then you should be able to run the tests: - - ./run_once.sh - -If you have been successful, then you should see a failing test, "GildedRoseTest.Foo". diff --git a/cpp/run-once.sh b/cpp/run-once.sh deleted file mode 100755 index 7090228b..00000000 --- a/cpp/run-once.sh +++ /dev/null @@ -1,4 +0,0 @@ -rm GildedRose -rm GildedRose.o -make -./GildedRose \ No newline at end of file diff --git a/csharp/.gitignore b/csharp/.gitignore deleted file mode 100644 index c99ff6ab..00000000 --- a/csharp/.gitignore +++ /dev/null @@ -1,299 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ -**/Properties/launchSettings.json - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Typescript v1 declaration files -typings/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush -.cr/ - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs \ No newline at end of file diff --git a/csharp/App.config b/csharp/App.config deleted file mode 100644 index 88fa4027..00000000 --- a/csharp/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/csharp/ApprovalTest.cs b/csharp/ApprovalTest.cs deleted file mode 100644 index 2710c604..00000000 --- a/csharp/ApprovalTest.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.IO; -using System.Text; -using NUnit.Framework; - -namespace csharp -{ - [TestFixture] - public class ApprovalTest - { - [Test] - public void ThirtyDays() - { - var lines = File.ReadAllLines("ThirtyDays.txt"); - - StringBuilder fakeoutput = new StringBuilder(); - Console.SetOut(new StringWriter(fakeoutput)); - Console.SetIn(new StringReader("a\n")); - - Program.Main(new string[] { }); - String output = fakeoutput.ToString(); - - var outputLines = output.Split('\n'); - for(var i = 0; i Items; - public GildedRose(IList Items) - { - this.Items = Items; - } - - public void UpdateQuality() - { - for (var i = 0; i < Items.Count; i++) - { - if (Items[i].Name != "Aged Brie" && Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].Quality > 0) - { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } - } - } - else - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - - if (Items[i].Name == "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].SellIn < 11) - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - - if (Items[i].SellIn < 6) - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - } - } - } - - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].SellIn = Items[i].SellIn - 1; - } - - if (Items[i].SellIn < 0) - { - if (Items[i].Name != "Aged Brie") - { - if (Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].Quality > 0) - { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } - } - } - else - { - Items[i].Quality = Items[i].Quality - Items[i].Quality; - } - } - else - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - } - } - } - } -} diff --git a/csharp/GildedRoseTest.cs b/csharp/GildedRoseTest.cs deleted file mode 100644 index 911df1be..00000000 --- a/csharp/GildedRoseTest.cs +++ /dev/null @@ -1,18 +0,0 @@ -using NUnit.Framework; -using System.Collections.Generic; - -namespace csharp -{ - [TestFixture] - public class GildedRoseTest - { - [Test] - public void foo() - { - IList Items = new List { new Item { Name = "foo", SellIn = 0, Quality = 0 } }; - GildedRose app = new GildedRose(Items); - app.UpdateQuality(); - Assert.AreEqual("fixme", Items[0].Name); - } - } -} diff --git a/csharp/Item.cs b/csharp/Item.cs deleted file mode 100644 index c0174285..00000000 --- a/csharp/Item.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace csharp -{ - public class Item - { - public string Name { get; set; } - public int SellIn { get; set; } - public int Quality { get; set; } - - public override string ToString() - { - return this.Name + ", " + this.SellIn + ", " + this.Quality; - } - } -} diff --git a/csharp/Program.cs b/csharp/Program.cs deleted file mode 100644 index 36313e27..00000000 --- a/csharp/Program.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace csharp -{ - public class Program - { - public static void Main(string[] args) - { - Console.WriteLine("OMGHAI!"); - - IList Items = new List{ - new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}, - new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}, - new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80}, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 15, - Quality = 20 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 10, - Quality = 49 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 5, - Quality = 49 - }, - // this conjured item does not work properly yet - new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6} - }; - - var app = new GildedRose(Items); - - - for (var i = 0; i < 31; i++) - { - Console.WriteLine("-------- day " + i + " --------"); - Console.WriteLine("name, sellIn, quality"); - for (var j = 0; j < Items.Count; j++) - { - System.Console.WriteLine(Items[j]); - } - Console.WriteLine(""); - app.UpdateQuality(); - } - } - } -} diff --git a/csharp/Properties/AssemblyInfo.cs b/csharp/Properties/AssemblyInfo.cs deleted file mode 100644 index dc5db47d..00000000 --- a/csharp/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("csharp")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("csharp")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("176c0214-9136-4079-8dab-11d7420c3881")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/csharp/ThirtyDays.txt b/csharp/ThirtyDays.txt deleted file mode 100644 index cd66984f..00000000 --- a/csharp/ThirtyDays.txt +++ /dev/null @@ -1,373 +0,0 @@ -OMGHAI! --------- day 0 -------- -name, sellIn, quality -+5 Dexterity Vest, 10, 20 -Aged Brie, 2, 0 -Elixir of the Mongoose, 5, 7 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 15, 20 -Backstage passes to a TAFKAL80ETC concert, 10, 49 -Backstage passes to a TAFKAL80ETC concert, 5, 49 -Conjured Mana Cake, 3, 6 - --------- day 1 -------- -name, sellIn, quality -+5 Dexterity Vest, 9, 19 -Aged Brie, 1, 1 -Elixir of the Mongoose, 4, 6 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 14, 21 -Backstage passes to a TAFKAL80ETC concert, 9, 50 -Backstage passes to a TAFKAL80ETC concert, 4, 50 -Conjured Mana Cake, 2, 5 - --------- day 2 -------- -name, sellIn, quality -+5 Dexterity Vest, 8, 18 -Aged Brie, 0, 2 -Elixir of the Mongoose, 3, 5 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 13, 22 -Backstage passes to a TAFKAL80ETC concert, 8, 50 -Backstage passes to a TAFKAL80ETC concert, 3, 50 -Conjured Mana Cake, 1, 4 - --------- day 3 -------- -name, sellIn, quality -+5 Dexterity Vest, 7, 17 -Aged Brie, -1, 4 -Elixir of the Mongoose, 2, 4 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 12, 23 -Backstage passes to a TAFKAL80ETC concert, 7, 50 -Backstage passes to a TAFKAL80ETC concert, 2, 50 -Conjured Mana Cake, 0, 3 - --------- day 4 -------- -name, sellIn, quality -+5 Dexterity Vest, 6, 16 -Aged Brie, -2, 6 -Elixir of the Mongoose, 1, 3 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 11, 24 -Backstage passes to a TAFKAL80ETC concert, 6, 50 -Backstage passes to a TAFKAL80ETC concert, 1, 50 -Conjured Mana Cake, -1, 1 - --------- day 5 -------- -name, sellIn, quality -+5 Dexterity Vest, 5, 15 -Aged Brie, -3, 8 -Elixir of the Mongoose, 0, 2 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 10, 25 -Backstage passes to a TAFKAL80ETC concert, 5, 50 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Conjured Mana Cake, -2, 0 - --------- day 6 -------- -name, sellIn, quality -+5 Dexterity Vest, 4, 14 -Aged Brie, -4, 10 -Elixir of the Mongoose, -1, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 9, 27 -Backstage passes to a TAFKAL80ETC concert, 4, 50 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Conjured Mana Cake, -3, 0 - --------- day 7 -------- -name, sellIn, quality -+5 Dexterity Vest, 3, 13 -Aged Brie, -5, 12 -Elixir of the Mongoose, -2, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 8, 29 -Backstage passes to a TAFKAL80ETC concert, 3, 50 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Conjured Mana Cake, -4, 0 - --------- day 8 -------- -name, sellIn, quality -+5 Dexterity Vest, 2, 12 -Aged Brie, -6, 14 -Elixir of the Mongoose, -3, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 7, 31 -Backstage passes to a TAFKAL80ETC concert, 2, 50 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Conjured Mana Cake, -5, 0 - --------- day 9 -------- -name, sellIn, quality -+5 Dexterity Vest, 1, 11 -Aged Brie, -7, 16 -Elixir of the Mongoose, -4, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 6, 33 -Backstage passes to a TAFKAL80ETC concert, 1, 50 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Conjured Mana Cake, -6, 0 - --------- day 10 -------- -name, sellIn, quality -+5 Dexterity Vest, 0, 10 -Aged Brie, -8, 18 -Elixir of the Mongoose, -5, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 5, 35 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Conjured Mana Cake, -7, 0 - --------- day 11 -------- -name, sellIn, quality -+5 Dexterity Vest, -1, 8 -Aged Brie, -9, 20 -Elixir of the Mongoose, -6, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 4, 38 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Conjured Mana Cake, -8, 0 - --------- day 12 -------- -name, sellIn, quality -+5 Dexterity Vest, -2, 6 -Aged Brie, -10, 22 -Elixir of the Mongoose, -7, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 3, 41 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Conjured Mana Cake, -9, 0 - --------- day 13 -------- -name, sellIn, quality -+5 Dexterity Vest, -3, 4 -Aged Brie, -11, 24 -Elixir of the Mongoose, -8, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 2, 44 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Conjured Mana Cake, -10, 0 - --------- day 14 -------- -name, sellIn, quality -+5 Dexterity Vest, -4, 2 -Aged Brie, -12, 26 -Elixir of the Mongoose, -9, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 1, 47 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Conjured Mana Cake, -11, 0 - --------- day 15 -------- -name, sellIn, quality -+5 Dexterity Vest, -5, 0 -Aged Brie, -13, 28 -Elixir of the Mongoose, -10, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Conjured Mana Cake, -12, 0 - --------- day 16 -------- -name, sellIn, quality -+5 Dexterity Vest, -6, 0 -Aged Brie, -14, 30 -Elixir of the Mongoose, -11, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Conjured Mana Cake, -13, 0 - --------- day 17 -------- -name, sellIn, quality -+5 Dexterity Vest, -7, 0 -Aged Brie, -15, 32 -Elixir of the Mongoose, -12, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Conjured Mana Cake, -14, 0 - --------- day 18 -------- -name, sellIn, quality -+5 Dexterity Vest, -8, 0 -Aged Brie, -16, 34 -Elixir of the Mongoose, -13, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Conjured Mana Cake, -15, 0 - --------- day 19 -------- -name, sellIn, quality -+5 Dexterity Vest, -9, 0 -Aged Brie, -17, 36 -Elixir of the Mongoose, -14, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Conjured Mana Cake, -16, 0 - --------- day 20 -------- -name, sellIn, quality -+5 Dexterity Vest, -10, 0 -Aged Brie, -18, 38 -Elixir of the Mongoose, -15, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Conjured Mana Cake, -17, 0 - --------- day 21 -------- -name, sellIn, quality -+5 Dexterity Vest, -11, 0 -Aged Brie, -19, 40 -Elixir of the Mongoose, -16, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Backstage passes to a TAFKAL80ETC concert, -16, 0 -Conjured Mana Cake, -18, 0 - --------- day 22 -------- -name, sellIn, quality -+5 Dexterity Vest, -12, 0 -Aged Brie, -20, 42 -Elixir of the Mongoose, -17, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Backstage passes to a TAFKAL80ETC concert, -17, 0 -Conjured Mana Cake, -19, 0 - --------- day 23 -------- -name, sellIn, quality -+5 Dexterity Vest, -13, 0 -Aged Brie, -21, 44 -Elixir of the Mongoose, -18, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Backstage passes to a TAFKAL80ETC concert, -18, 0 -Conjured Mana Cake, -20, 0 - --------- day 24 -------- -name, sellIn, quality -+5 Dexterity Vest, -14, 0 -Aged Brie, -22, 46 -Elixir of the Mongoose, -19, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Backstage passes to a TAFKAL80ETC concert, -19, 0 -Conjured Mana Cake, -21, 0 - --------- day 25 -------- -name, sellIn, quality -+5 Dexterity Vest, -15, 0 -Aged Brie, -23, 48 -Elixir of the Mongoose, -20, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Backstage passes to a TAFKAL80ETC concert, -20, 0 -Conjured Mana Cake, -22, 0 - --------- day 26 -------- -name, sellIn, quality -+5 Dexterity Vest, -16, 0 -Aged Brie, -24, 50 -Elixir of the Mongoose, -21, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Backstage passes to a TAFKAL80ETC concert, -16, 0 -Backstage passes to a TAFKAL80ETC concert, -21, 0 -Conjured Mana Cake, -23, 0 - --------- day 27 -------- -name, sellIn, quality -+5 Dexterity Vest, -17, 0 -Aged Brie, -25, 50 -Elixir of the Mongoose, -22, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Backstage passes to a TAFKAL80ETC concert, -17, 0 -Backstage passes to a TAFKAL80ETC concert, -22, 0 -Conjured Mana Cake, -24, 0 - --------- day 28 -------- -name, sellIn, quality -+5 Dexterity Vest, -18, 0 -Aged Brie, -26, 50 -Elixir of the Mongoose, -23, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Backstage passes to a TAFKAL80ETC concert, -18, 0 -Backstage passes to a TAFKAL80ETC concert, -23, 0 -Conjured Mana Cake, -25, 0 - --------- day 29 -------- -name, sellIn, quality -+5 Dexterity Vest, -19, 0 -Aged Brie, -27, 50 -Elixir of the Mongoose, -24, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Backstage passes to a TAFKAL80ETC concert, -19, 0 -Backstage passes to a TAFKAL80ETC concert, -24, 0 -Conjured Mana Cake, -26, 0 - --------- day 30 -------- -name, sellIn, quality -+5 Dexterity Vest, -20, 0 -Aged Brie, -28, 50 -Elixir of the Mongoose, -25, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Backstage passes to a TAFKAL80ETC concert, -20, 0 -Backstage passes to a TAFKAL80ETC concert, -25, 0 -Conjured Mana Cake, -27, 0 - diff --git a/csharp/csharp.csproj b/csharp/csharp.csproj deleted file mode 100644 index 6db531b6..00000000 --- a/csharp/csharp.csproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - Debug - AnyCPU - {176C0214-9136-4079-8DAB-11D7420C3881} - Exe - Properties - csharp - csharp - v4.5.2 - 512 - true - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - packages\ApprovalTests.3.0.13\lib\net40\ApprovalTests.dll - True - - - packages\ApprovalUtilities.3.0.13\lib\net45\ApprovalUtilities.dll - True - - - packages\ApprovalUtilities.3.0.13\lib\net45\ApprovalUtilities.Net45.dll - True - - - packages\NUnit.3.9.0\lib\net45\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - Always - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/csharp/csharp.sln b/csharp/csharp.sln deleted file mode 100644 index 62ff78a8..00000000 --- a/csharp/csharp.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp", "csharp.csproj", "{176C0214-9136-4079-8DAB-11D7420C3881}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {176C0214-9136-4079-8DAB-11D7420C3881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {176C0214-9136-4079-8DAB-11D7420C3881}.Debug|Any CPU.Build.0 = Debug|Any CPU - {176C0214-9136-4079-8DAB-11D7420C3881}.Release|Any CPU.ActiveCfg = Release|Any CPU - {176C0214-9136-4079-8DAB-11D7420C3881}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/csharp/packages.config b/csharp/packages.config deleted file mode 100644 index 63895ed1..00000000 --- a/csharp/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/csharpcore/.gitignore b/csharpcore/.gitignore deleted file mode 100644 index b0e5bb0c..00000000 --- a/csharpcore/.gitignore +++ /dev/null @@ -1,300 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ -**/Properties/launchSettings.json - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Typescript v1 declaration files -typings/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush -.cr/ - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs -.vscode diff --git a/csharpcore/ApprovalTest.cs b/csharpcore/ApprovalTest.cs deleted file mode 100644 index 7d63e93c..00000000 --- a/csharpcore/ApprovalTest.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Xunit; -using System; -using System.IO; -using System.Text; - -namespace csharpcore -{ - public class ApprovalTest - { - [Fact] - public void ThirtyDays() - { - var lines = File.ReadAllLines("ThirtyDays.txt"); - - StringBuilder fakeoutput = new StringBuilder(); - Console.SetOut(new StringWriter(fakeoutput)); - Console.SetIn(new StringReader("a\n")); - - Program.Main(new string[] { }); - String output = fakeoutput.ToString(); - - var outputLines = output.Split('\n'); - for(var i = 0; i Items; - public GildedRose(IList Items) - { - this.Items = Items; - } - - public void UpdateQuality() - { - for (var i = 0; i < Items.Count; i++) - { - if (Items[i].Name != "Aged Brie" && Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].Quality > 0) - { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } - } - } - else - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - - if (Items[i].Name == "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].SellIn < 11) - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - - if (Items[i].SellIn < 6) - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - } - } - } - - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].SellIn = Items[i].SellIn - 1; - } - - if (Items[i].SellIn < 0) - { - if (Items[i].Name != "Aged Brie") - { - if (Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") - { - if (Items[i].Quality > 0) - { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } - } - } - else - { - Items[i].Quality = Items[i].Quality - Items[i].Quality; - } - } - else - { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } - } - } - } - } - } -} diff --git a/csharpcore/GildedRoseTest.cs b/csharpcore/GildedRoseTest.cs deleted file mode 100644 index aa64b0b5..00000000 --- a/csharpcore/GildedRoseTest.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Xunit; -using System.Collections.Generic; - -namespace csharpcore -{ - public class GildedRoseTest - { - [Fact] - public void foo() - { - IList Items = new List { new Item { Name = "foo", SellIn = 0, Quality = 0 } }; - GildedRose app = new GildedRose(Items); - app.UpdateQuality(); - Assert.Equal("fixme", Items[0].Name); - } - } -} \ No newline at end of file diff --git a/csharpcore/Item.cs b/csharpcore/Item.cs deleted file mode 100644 index 7940eb84..00000000 --- a/csharpcore/Item.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace csharpcore -{ - public class Item - { - public string Name { get; set; } - public int SellIn { get; set; } - public int Quality { get; set; } - } -} diff --git a/csharpcore/Program.cs b/csharpcore/Program.cs deleted file mode 100644 index ebe4da4a..00000000 --- a/csharpcore/Program.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace csharpcore -{ - public class Program - { - public static void Main(string[] args) - { - Console.WriteLine("OMGHAI!"); - - IList Items = new List{ - new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}, - new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}, - new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80}, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 15, - Quality = 20 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 10, - Quality = 49 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 5, - Quality = 49 - }, - // this conjured item does not work properly yet - new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6} - }; - - var app = new GildedRose(Items); - - - for (var i = 0; i < 31; i++) - { - Console.WriteLine("-------- day " + i + " --------"); - Console.WriteLine("name, sellIn, quality"); - for (var j = 0; j < Items.Count; j++) - { - System.Console.WriteLine(Items[j].Name + ", " + Items[j].SellIn + ", " + Items[j].Quality); - } - Console.WriteLine(""); - app.UpdateQuality(); - } - } - } -} diff --git a/csharpcore/ThirtyDays.txt b/csharpcore/ThirtyDays.txt deleted file mode 100644 index cd66984f..00000000 --- a/csharpcore/ThirtyDays.txt +++ /dev/null @@ -1,373 +0,0 @@ -OMGHAI! --------- day 0 -------- -name, sellIn, quality -+5 Dexterity Vest, 10, 20 -Aged Brie, 2, 0 -Elixir of the Mongoose, 5, 7 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 15, 20 -Backstage passes to a TAFKAL80ETC concert, 10, 49 -Backstage passes to a TAFKAL80ETC concert, 5, 49 -Conjured Mana Cake, 3, 6 - --------- day 1 -------- -name, sellIn, quality -+5 Dexterity Vest, 9, 19 -Aged Brie, 1, 1 -Elixir of the Mongoose, 4, 6 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 14, 21 -Backstage passes to a TAFKAL80ETC concert, 9, 50 -Backstage passes to a TAFKAL80ETC concert, 4, 50 -Conjured Mana Cake, 2, 5 - --------- day 2 -------- -name, sellIn, quality -+5 Dexterity Vest, 8, 18 -Aged Brie, 0, 2 -Elixir of the Mongoose, 3, 5 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 13, 22 -Backstage passes to a TAFKAL80ETC concert, 8, 50 -Backstage passes to a TAFKAL80ETC concert, 3, 50 -Conjured Mana Cake, 1, 4 - --------- day 3 -------- -name, sellIn, quality -+5 Dexterity Vest, 7, 17 -Aged Brie, -1, 4 -Elixir of the Mongoose, 2, 4 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 12, 23 -Backstage passes to a TAFKAL80ETC concert, 7, 50 -Backstage passes to a TAFKAL80ETC concert, 2, 50 -Conjured Mana Cake, 0, 3 - --------- day 4 -------- -name, sellIn, quality -+5 Dexterity Vest, 6, 16 -Aged Brie, -2, 6 -Elixir of the Mongoose, 1, 3 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 11, 24 -Backstage passes to a TAFKAL80ETC concert, 6, 50 -Backstage passes to a TAFKAL80ETC concert, 1, 50 -Conjured Mana Cake, -1, 1 - --------- day 5 -------- -name, sellIn, quality -+5 Dexterity Vest, 5, 15 -Aged Brie, -3, 8 -Elixir of the Mongoose, 0, 2 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 10, 25 -Backstage passes to a TAFKAL80ETC concert, 5, 50 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Conjured Mana Cake, -2, 0 - --------- day 6 -------- -name, sellIn, quality -+5 Dexterity Vest, 4, 14 -Aged Brie, -4, 10 -Elixir of the Mongoose, -1, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 9, 27 -Backstage passes to a TAFKAL80ETC concert, 4, 50 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Conjured Mana Cake, -3, 0 - --------- day 7 -------- -name, sellIn, quality -+5 Dexterity Vest, 3, 13 -Aged Brie, -5, 12 -Elixir of the Mongoose, -2, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 8, 29 -Backstage passes to a TAFKAL80ETC concert, 3, 50 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Conjured Mana Cake, -4, 0 - --------- day 8 -------- -name, sellIn, quality -+5 Dexterity Vest, 2, 12 -Aged Brie, -6, 14 -Elixir of the Mongoose, -3, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 7, 31 -Backstage passes to a TAFKAL80ETC concert, 2, 50 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Conjured Mana Cake, -5, 0 - --------- day 9 -------- -name, sellIn, quality -+5 Dexterity Vest, 1, 11 -Aged Brie, -7, 16 -Elixir of the Mongoose, -4, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 6, 33 -Backstage passes to a TAFKAL80ETC concert, 1, 50 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Conjured Mana Cake, -6, 0 - --------- day 10 -------- -name, sellIn, quality -+5 Dexterity Vest, 0, 10 -Aged Brie, -8, 18 -Elixir of the Mongoose, -5, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 5, 35 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Conjured Mana Cake, -7, 0 - --------- day 11 -------- -name, sellIn, quality -+5 Dexterity Vest, -1, 8 -Aged Brie, -9, 20 -Elixir of the Mongoose, -6, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 4, 38 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Conjured Mana Cake, -8, 0 - --------- day 12 -------- -name, sellIn, quality -+5 Dexterity Vest, -2, 6 -Aged Brie, -10, 22 -Elixir of the Mongoose, -7, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 3, 41 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Conjured Mana Cake, -9, 0 - --------- day 13 -------- -name, sellIn, quality -+5 Dexterity Vest, -3, 4 -Aged Brie, -11, 24 -Elixir of the Mongoose, -8, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 2, 44 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Conjured Mana Cake, -10, 0 - --------- day 14 -------- -name, sellIn, quality -+5 Dexterity Vest, -4, 2 -Aged Brie, -12, 26 -Elixir of the Mongoose, -9, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 1, 47 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Conjured Mana Cake, -11, 0 - --------- day 15 -------- -name, sellIn, quality -+5 Dexterity Vest, -5, 0 -Aged Brie, -13, 28 -Elixir of the Mongoose, -10, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, 0, 50 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Conjured Mana Cake, -12, 0 - --------- day 16 -------- -name, sellIn, quality -+5 Dexterity Vest, -6, 0 -Aged Brie, -14, 30 -Elixir of the Mongoose, -11, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -1, 0 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Conjured Mana Cake, -13, 0 - --------- day 17 -------- -name, sellIn, quality -+5 Dexterity Vest, -7, 0 -Aged Brie, -15, 32 -Elixir of the Mongoose, -12, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -2, 0 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Conjured Mana Cake, -14, 0 - --------- day 18 -------- -name, sellIn, quality -+5 Dexterity Vest, -8, 0 -Aged Brie, -16, 34 -Elixir of the Mongoose, -13, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -3, 0 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Conjured Mana Cake, -15, 0 - --------- day 19 -------- -name, sellIn, quality -+5 Dexterity Vest, -9, 0 -Aged Brie, -17, 36 -Elixir of the Mongoose, -14, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -4, 0 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Conjured Mana Cake, -16, 0 - --------- day 20 -------- -name, sellIn, quality -+5 Dexterity Vest, -10, 0 -Aged Brie, -18, 38 -Elixir of the Mongoose, -15, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -5, 0 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Conjured Mana Cake, -17, 0 - --------- day 21 -------- -name, sellIn, quality -+5 Dexterity Vest, -11, 0 -Aged Brie, -19, 40 -Elixir of the Mongoose, -16, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -6, 0 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Backstage passes to a TAFKAL80ETC concert, -16, 0 -Conjured Mana Cake, -18, 0 - --------- day 22 -------- -name, sellIn, quality -+5 Dexterity Vest, -12, 0 -Aged Brie, -20, 42 -Elixir of the Mongoose, -17, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -7, 0 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Backstage passes to a TAFKAL80ETC concert, -17, 0 -Conjured Mana Cake, -19, 0 - --------- day 23 -------- -name, sellIn, quality -+5 Dexterity Vest, -13, 0 -Aged Brie, -21, 44 -Elixir of the Mongoose, -18, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -8, 0 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Backstage passes to a TAFKAL80ETC concert, -18, 0 -Conjured Mana Cake, -20, 0 - --------- day 24 -------- -name, sellIn, quality -+5 Dexterity Vest, -14, 0 -Aged Brie, -22, 46 -Elixir of the Mongoose, -19, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -9, 0 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Backstage passes to a TAFKAL80ETC concert, -19, 0 -Conjured Mana Cake, -21, 0 - --------- day 25 -------- -name, sellIn, quality -+5 Dexterity Vest, -15, 0 -Aged Brie, -23, 48 -Elixir of the Mongoose, -20, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -10, 0 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Backstage passes to a TAFKAL80ETC concert, -20, 0 -Conjured Mana Cake, -22, 0 - --------- day 26 -------- -name, sellIn, quality -+5 Dexterity Vest, -16, 0 -Aged Brie, -24, 50 -Elixir of the Mongoose, -21, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -11, 0 -Backstage passes to a TAFKAL80ETC concert, -16, 0 -Backstage passes to a TAFKAL80ETC concert, -21, 0 -Conjured Mana Cake, -23, 0 - --------- day 27 -------- -name, sellIn, quality -+5 Dexterity Vest, -17, 0 -Aged Brie, -25, 50 -Elixir of the Mongoose, -22, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -12, 0 -Backstage passes to a TAFKAL80ETC concert, -17, 0 -Backstage passes to a TAFKAL80ETC concert, -22, 0 -Conjured Mana Cake, -24, 0 - --------- day 28 -------- -name, sellIn, quality -+5 Dexterity Vest, -18, 0 -Aged Brie, -26, 50 -Elixir of the Mongoose, -23, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -13, 0 -Backstage passes to a TAFKAL80ETC concert, -18, 0 -Backstage passes to a TAFKAL80ETC concert, -23, 0 -Conjured Mana Cake, -25, 0 - --------- day 29 -------- -name, sellIn, quality -+5 Dexterity Vest, -19, 0 -Aged Brie, -27, 50 -Elixir of the Mongoose, -24, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -14, 0 -Backstage passes to a TAFKAL80ETC concert, -19, 0 -Backstage passes to a TAFKAL80ETC concert, -24, 0 -Conjured Mana Cake, -26, 0 - --------- day 30 -------- -name, sellIn, quality -+5 Dexterity Vest, -20, 0 -Aged Brie, -28, 50 -Elixir of the Mongoose, -25, 0 -Sulfuras, Hand of Ragnaros, 0, 80 -Sulfuras, Hand of Ragnaros, -1, 80 -Backstage passes to a TAFKAL80ETC concert, -15, 0 -Backstage passes to a TAFKAL80ETC concert, -20, 0 -Backstage passes to a TAFKAL80ETC concert, -25, 0 -Conjured Mana Cake, -27, 0 - diff --git a/csharpcore/csharpcore.csproj b/csharpcore/csharpcore.csproj deleted file mode 100644 index fefdc4c3..00000000 --- a/csharpcore/csharpcore.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - Exe - netcoreapp2.1 - csharpcore.Program - - - - - - - - - - - diff --git a/d/.gitignore b/d/.gitignore deleted file mode 100644 index 33ba95ba..00000000 --- a/d/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.dub \ No newline at end of file diff --git a/d/dub.json b/d/dub.json deleted file mode 100644 index cce9856b..00000000 --- a/d/dub.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "GildedRose", - "configurations": [ - { - "name": "GuildedRose", - "targetType": "executable", - "mainSourceFile": "src/GildedRoseTextTests.d" - }, - { - "name": "unittest", - "targetType": "executable", - "sourcePaths": ["test"], - "mainSourceFile": "test/GildedRoseUnitTests.d" - } - ] -} diff --git a/d/src/GildedRose.d b/d/src/GildedRose.d deleted file mode 100644 index 1b0a8795..00000000 --- a/d/src/GildedRose.d +++ /dev/null @@ -1,93 +0,0 @@ -struct Item -{ - string name; - int sellIn; - int quality; -} - -class GildedRose -{ -public: - Item[] items; - this(Item[] items) - { - this.items = items.dup; - } - - void updateQuality() - { - for (int i = 0; i < items.length; i++) - { - if (items[i].name != "Aged Brie" - && items[i].name != "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].quality > 0) - { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - - if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].sellIn < 11) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) - { - if (items[i].name != "Aged Brie") - { - if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].quality > 0) - { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - items[i].quality = items[i].quality - items[i].quality; - } - } - else - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } -} diff --git a/d/src/GildedRoseTextTests.d b/d/src/GildedRoseTextTests.d deleted file mode 100644 index 3dc6887f..00000000 --- a/d/src/GildedRoseTextTests.d +++ /dev/null @@ -1,38 +0,0 @@ -import GildedRose; - -int main() -{ - import std.stdio : writefln, writeln; - - Item[] items = [ - Item("+5 Dexterity Vest", 10, 20), - Item("Aged Brie", 2, 0), - Item("Elixir of the Mongoose", 5, 7), - Item("Sulfuras, Hand of Ragnaros", 0, 80), - Item("Sulfuras, Hand of Ragnaros", -1, 80), - Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this Conjured item doesn't yet work properly - Item("Conjured Mana Cake", 3, 6), - ]; - - auto app = new GildedRose(items); - - writeln("OMGHAI!"); - - for (int day = 0; day <= 30; day++) - { - writefln!"-------- day %s --------"(day); - writeln("Item(name, sellIn, quality)"); - foreach (item; app.items) - { - writeln(item); - } - writeln; - - app.updateQuality; - } - - return 0; -} diff --git a/d/test/GildedRoseUnitTests.d b/d/test/GildedRoseUnitTests.d deleted file mode 100644 index ac58c703..00000000 --- a/d/test/GildedRoseUnitTests.d +++ /dev/null @@ -1,25 +0,0 @@ -import GildedRose; - -unittest -{ - Item[] items = [ Item("Foo", 0, 0)]; - auto app = new GildedRose(items); - - app.updateQuality; - - assert("fixme" == app.items[0].name); -} - -void example() -{ - Item[] items = [ - Item("+5 Dexterity Vest", 10, 20), - Item("Aged Brie", 2, 0), - Item("Elixir of the Mongoose", 5, 7), - Item("Sulfuras, Hand of Ragnaros", 0, 80), - Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - Item("Conjured Mana Cake", 3, 6), - ]; - auto app = new GildedRose(items); - app.updateQuality; -} diff --git a/dart/.gitignore b/dart/.gitignore deleted file mode 100644 index 33d0df0e..00000000 --- a/dart/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -# Files and directories created by pub -.packages -.pub/ -packages -pubspec.lock # (Remove this pattern if you wish to check in your lock file) -.idea \ No newline at end of file diff --git a/dart/bin/main.dart b/dart/bin/main.dart deleted file mode 100644 index 240994c5..00000000 --- a/dart/bin/main.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:gilded_rose/gilded_rose.dart'; - -main(List args) { - print("OMGHAI!"); - - var items = [ - new Item("+5 Dexterity Vest", 10, 20), - new Item("Aged Brie", 2, 0), - new Item("Elixir of the Mongoose", 5, 7), - new Item("Sulfuras, Hand of Ragnaros", 0, 80), - new Item("Sulfuras, Hand of Ragnaros", -1, 80), - new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this conjured item does not work properly yet - new Item("Conjured Mana Cake", 3, 6) - ]; - - GildedRose app = new GildedRose(items); - - int days = 2; - if (args.length > 0) { - days = int.parse(args[0]) + 1; - } - - for (int i = 0; i < days; i++) { - print("-------- day $i --------"); - print("name, sellIn, quality"); - for (var item in items) { - print(item); - } - print(''); - app.updateQuality(); - } -} diff --git a/dart/lib/gilded_rose.dart b/dart/lib/gilded_rose.dart deleted file mode 100644 index 94857b32..00000000 --- a/dart/lib/gilded_rose.dart +++ /dev/null @@ -1,68 +0,0 @@ -class GildedRose { - List items; - - GildedRose(this.items); - - void updateQuality() { - for (int i = 0; i < items.length; i++) { - if (items[i].name != "Aged Brie" && - items[i].name != "Backstage passes to a TAFKAL80ETC concert") { - if (items[i].quality > 0) { - if (items[i].name != "Sulfuras, Hand of Ragnaros") { - items[i].quality = items[i].quality - 1; - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - - if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (items[i].name != "Sulfuras, Hand of Ragnaros") { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) { - if (items[i].name != "Aged Brie") { - if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") { - if (items[i].quality > 0) { - if (items[i].name != "Sulfuras, Hand of Ragnaros") { - items[i].quality = items[i].quality - 1; - } - } - } else { - items[i].quality = items[i].quality - items[i].quality; - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } - } -} - -class Item { - String name; - int sellIn; - int quality; - - Item(this.name, this.sellIn, this.quality); - - String toString() => '$name, $sellIn, $quality'; -} diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml deleted file mode 100644 index 06814a33..00000000 --- a/dart/pubspec.yaml +++ /dev/null @@ -1,6 +0,0 @@ -name: gilded_rose -version: 0.0.1 -description: A simple console application. - -dev_dependencies: - test: '>=0.12.11 <0.13.0' diff --git a/dart/test/gilded_rose_test.dart b/dart/test/gilded_rose_test.dart deleted file mode 100644 index 69e4a489..00000000 --- a/dart/test/gilded_rose_test.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'package:test/test.dart'; -import 'package:gilded_rose/gilded_rose.dart'; - -main() { - test('foo', () { - var item = new Item('foo', 0, 0); - var items = [item]; - - GildedRose app = new GildedRose(items); - app.updateQuality(); - expect("fixme", app.items[0].name); - }); -} diff --git a/elixir/config/config.exs b/elixir/config/config.exs deleted file mode 100644 index d2d855e6..00000000 --- a/elixir/config/config.exs +++ /dev/null @@ -1 +0,0 @@ -use Mix.Config diff --git a/elixir/lib/gilded_rose.ex b/elixir/lib/gilded_rose.ex deleted file mode 100644 index 7edd8c83..00000000 --- a/elixir/lib/gilded_rose.ex +++ /dev/null @@ -1,83 +0,0 @@ -defmodule GildedRose do - # Example - # update_quality([%Item{name: "Backstage passes to a TAFKAL80ETC concert", sell_in: 9, quality: 1}]) - # => [%Item{name: "Backstage passes to a TAFKAL80ETC concert", sell_in: 8, quality: 3}] - - def update_quality(items) do - Enum.map(items, &update_item/1) - end - - def update_item(item) do - item = cond do - item.name != "Aged Brie" && item.name != "Backstage passes to a TAFKAL80ETC concert" -> - if item.quality > 0 do - if item.name != "Sulfuras, Hand of Ragnaros" do - %{item | quality: item.quality - 1} - else - item - end - else - item - end - true -> - cond do - item.quality < 50 -> - item = %{item | quality: item.quality + 1} - cond do - item.name == "Backstage passes to a TAFKAL80ETC concert" -> - item = cond do - item.sell_in < 11 -> - cond do - item.quality < 50 -> - %{item | quality: item.quality + 1} - true -> item - end - true -> item - end - cond do - item.sell_in < 6 -> - cond do - item.quality < 50 -> - %{item | quality: item.quality + 1} - true -> item - end - true -> item - end - true -> item - end - true -> item - end - end - item = cond do - item.name != "Sulfuras, Hand of Ragnaros" -> - %{item | sell_in: item.sell_in - 1} - true -> item - end - cond do - item.sell_in < 0 -> - cond do - item.name != "Aged Brie" -> - cond do - item.name != "Backstage passes to a TAFKAL80ETC concert" -> - cond do - item.quality > 0 -> - cond do - item.name != "Sulfuras, Hand of Ragnaros" -> - %{item | quality: item.quality - 1} - true -> item - end - true -> item - end - true -> %{item | quality: item.quality - item.quality} - end - true -> - cond do - item.quality < 50 -> - %{item | quality: item.quality + 1} - true -> item - end - end - true -> item - end - end -end diff --git a/elixir/lib/item.ex b/elixir/lib/item.ex deleted file mode 100644 index 0a20edbf..00000000 --- a/elixir/lib/item.ex +++ /dev/null @@ -1,3 +0,0 @@ -defmodule Item do - defstruct name: nil, sell_in: nil, quality: nil -end diff --git a/elixir/mix.exs b/elixir/mix.exs deleted file mode 100644 index c50af0d0..00000000 --- a/elixir/mix.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule GildedRose.Mixfile do - use Mix.Project - - def project do - [app: :gilded_rose, - version: "0.0.1", - elixir: "~> 1.0"] - end -end diff --git a/elixir/test/gilded_rose_test.exs b/elixir/test/gilded_rose_test.exs deleted file mode 100644 index b0db3381..00000000 --- a/elixir/test/gilded_rose_test.exs +++ /dev/null @@ -1,6 +0,0 @@ -defmodule GildedRoseTest do - use ExUnit.Case - - test "begin the journey of refactoring" do - end -end diff --git a/elixir/test/test_helper.exs b/elixir/test/test_helper.exs deleted file mode 100644 index 869559e7..00000000 --- a/elixir/test/test_helper.exs +++ /dev/null @@ -1 +0,0 @@ -ExUnit.start() diff --git a/erlang/.gitignore b/erlang/.gitignore deleted file mode 100644 index 088157b2..00000000 --- a/erlang/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/_build -/*.txt \ No newline at end of file diff --git a/erlang/README.md b/erlang/README.md deleted file mode 100644 index 2f8af532..00000000 --- a/erlang/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Erlang - -## Prerequisites - -- Erlang/OTP 20 or later - -## Running Tests - -``` -./rebar3 eunit -``` diff --git a/erlang/include/gilded_rose.hrl b/erlang/include/gilded_rose.hrl deleted file mode 100644 index 4b74d598..00000000 --- a/erlang/include/gilded_rose.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(item, { - name :: binary(), - sell_in = 0 :: integer(), - quality = 0 :: integer() -}). diff --git a/erlang/rebar.config b/erlang/rebar.config deleted file mode 100644 index 60a00f5d..00000000 --- a/erlang/rebar.config +++ /dev/null @@ -1,2 +0,0 @@ -{erl_opts, [warnings_as_errors]}. -{eunit_opts, [verbose]}. diff --git a/erlang/rebar3 b/erlang/rebar3 deleted file mode 100755 index f0b1ba788249ac1d373afd137c7a2895ea50f49b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695247 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�_$_#>uwBTa-Rpit_C+E8P8-jCTo59(Av#ImGVP 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

GWpV#CuF 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%0A0a@nSD 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

u-~M@yKb*}KIvxrQ{V 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 diff --git a/erlang/src/gilded_rose.app.src b/erlang/src/gilded_rose.app.src deleted file mode 100644 index 4c47019a..00000000 --- a/erlang/src/gilded_rose.app.src +++ /dev/null @@ -1 +0,0 @@ -{application, gilded_rose, [{vsn, "0.1"}]}. diff --git a/erlang/src/gilded_rose.erl b/erlang/src/gilded_rose.erl deleted file mode 100644 index 98b08e95..00000000 --- a/erlang/src/gilded_rose.erl +++ /dev/null @@ -1,87 +0,0 @@ --module(gilded_rose). - --include("gilded_rose.hrl"). - --export([ - update_quality/1 -]). - --spec update_quality([#item{}]) -> [#item{}]. -update_quality(Items) -> - lists:map(fun update_item/1, Items). - --spec update_item(#item{}) -> #item{}. -update_item(Item = #item{name = Name}) -> - Item1 = if - Name /= "Aged Brie" andalso Name /= "Backstage passes to a TAFKAL80ETC concert" -> - if - Item#item.quality > 0 -> - if - Name /= "Sulfuras, Hand of Ragnaros" -> - Item#item{quality = Item#item.quality - 1}; - true -> - Item - end; - true -> - Item - end; - true -> - if - Item#item.quality < 50 -> - Item2 = Item#item{quality = Item#item.quality + 1}, - if - Name == "Backstage passes to a TAFKAL80ETC concert" -> - Item3 = if - Item2#item.sell_in < 11 -> - if - Item2#item.quality < 50 -> - Item2#item{quality = Item2#item.quality + 1}; - true -> Item2 - end; - true -> Item2 - end, - if - Item3#item.sell_in < 6 -> - if - Item3#item.quality < 50 -> - Item3#item{quality = Item3#item.quality + 1}; - true -> Item3 - end; - true -> Item3 - end; - true -> Item2 - end; - true -> Item - end - end, - Item4 = if - Name /= "Sulfuras, Hand of Ragnaros" -> - Item1#item{sell_in = Item1#item.sell_in - 1}; - true -> Item1 - end, - if - Item4#item.sell_in < 0 -> - if - Name /= "Aged Brie" -> - if - Name /= "Backstage passes to a TAFKAL80ETC concert" -> - if - Item4#item.quality > 0 -> - if - Name /= "Sulfuras, Hand of Ragnaros" -> - Item4#item{quality = Item4#item.quality - 1}; - true -> Item4 - end; - true -> Item4 - end; - true -> Item4#item{quality = Item4#item.quality - Item4#item.quality} - end; - true -> - if - Item4#item.quality < 50 -> - Item4#item{quality = Item4#item.quality + 1}; - true -> Item4 - end - end; - true -> Item4 - end. diff --git a/erlang/test/gilded_rose_tests.erl b/erlang/test/gilded_rose_tests.erl deleted file mode 100644 index a05c7f52..00000000 --- a/erlang/test/gilded_rose_tests.erl +++ /dev/null @@ -1,44 +0,0 @@ --module(gilded_rose_tests). - --include("gilded_rose.hrl"). --include_lib("eunit/include/eunit.hrl"). - --define(ITEMS, [ - #item{name = "+5 Dexterity Vest", sell_in = 10, quality = 20}, - #item{name = "Aged Brie", sell_in = 2, quality = 0}, - #item{name = "Elixir of the Mongoose", sell_in = 5, quality = 7}, - #item{name = "Sulfuras, Hand of Ragnaros", sell_in = 0, quality = 80}, - #item{name = "Sulfuras, Hand of Ragnaros", sell_in = -1, quality = 80}, - #item{name = "Backstage passes to a TAFKAL80ETC concert", sell_in = 15, quality = 20}, - #item{name = "Backstage passes to a TAFKAL80ETC concert", sell_in = 10, quality = 49}, - #item{name = "Backstage passes to a TAFKAL80ETC concert", sell_in = 5, quality = 49}, - #item{name = "Conjured Mana Cake", sell_in = 3, quality = 6} -]). - -golden_master_test() -> - Days = 30, - {ok, IoDevice} = file:open("actual_output.txt", [write]), - try - lists:foldl(fun(Day, Items) -> - io:format(IoDevice, "-------- day ~p --------~n", [Day]), - io:format(IoDevice, "name, sellIn, quality~n", []), - lists:foreach(fun(#item{name = Name, sell_in = SellIn, quality = Quality}) -> - io:format(IoDevice, "~s, ~p, ~p~n", [Name, SellIn, Quality]) - end, Items), - io:nl(IoDevice), - gilded_rose:update_quality(Items) - end, ?ITEMS, lists:seq(0, Days - 1)) - after - file:close(IoDevice) - end, - case file:read_file("expected_output.txt") of - {ok, ExpectedFile} -> - {ok, ActualFile} = file:read_file("actual_output.txt"), - ?assertEqual(ExpectedFile, ActualFile); - {error, Reason} -> - ?debugFmt("Could not read file 'expected_output.txt': ~p", [Reason]) - end. - -update_quality_test_() -> [ - {"first test", ?_assertMatch([#item{}], gilded_rose:update_quality([#item{}]))} -]. diff --git a/fsharp/GildedRose.Tests/GildedRose.Tests.fsproj b/fsharp/GildedRose.Tests/GildedRose.Tests.fsproj deleted file mode 100644 index f021553f..00000000 --- a/fsharp/GildedRose.Tests/GildedRose.Tests.fsproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Debug - AnyCPU - 2.0 - 9f9d20e1-cfc0-442c-870a-76e5abf0e7fe - Library - GildedRose.Tests - GildedRose.Tests - v4.5 - true - 4.3.1.0 - GildedRose.Tests - - - true - full - false - false - bin\Debug\ - DEBUG;TRACE - 3 - AnyCPU - bin\Debug\GildedRose.Tests.XML - true - - - pdbonly - true - true - bin\Release\ - TRACE - 3 - AnyCPU - bin\Release\GildedRose.Tests.XML - true - - - 11 - - - - - $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets - - - - - - - - - - - ..\packages\ApprovalTests.3.0.10\lib\net40\ApprovalTests.dll - True - - - ..\packages\ApprovalUtilities.3.0.10\lib\net45\ApprovalUtilities.dll - True - - - ..\packages\ApprovalUtilities.3.0.10\lib\net45\ApprovalUtilities.Net45.dll - True - - - - True - - - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll - True - - - - - - GildedRose - {2660ef56-b4c1-4dcf-b106-278211bd26c6} - True - - - - \ No newline at end of file diff --git a/fsharp/GildedRose.Tests/GildedRoseTest.fs b/fsharp/GildedRose.Tests/GildedRoseTest.fs deleted file mode 100644 index d29ed6d6..00000000 --- a/fsharp/GildedRose.Tests/GildedRoseTest.fs +++ /dev/null @@ -1,32 +0,0 @@ -module GildedRoseTest - -open GildedRose -open System -open System.IO -open System.Text -open NUnit.Framework -open System.Collections.Generic -open ApprovalTests -open ApprovalTests.Reporters - -[] -type GildedRoseTest () as this = - [] member this.Foo ()= - let Items = new List() - Items.Add({Name = "foo"; SellIn = 0; Quality = 0}) - let app = new GildedRose(Items) - app.UpdateQuality() - Assert.AreEqual("fixme", Items.[0].Name) - -[] -[)>] -type ApprovalTest () as this = - [] member this.ThirtyDays ()= - let fakeoutput = new StringBuilder() - Console.SetOut(new StringWriter(fakeoutput)) - Console.SetIn(new StringReader("a\n")) - - main Array.empty - let output = fakeoutput.ToString() - Approvals.Verify(output) - () \ No newline at end of file diff --git a/fsharp/GildedRose.Tests/packages.config b/fsharp/GildedRose.Tests/packages.config deleted file mode 100644 index eff071b2..00000000 --- a/fsharp/GildedRose.Tests/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/fsharp/GildedRose.sln b/fsharp/GildedRose.sln deleted file mode 100644 index 027a29bf..00000000 --- a/fsharp/GildedRose.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "GildedRose", "GildedRose\GildedRose.fsproj", "{2660EF56-B4C1-4DCF-B106-278211BD26C6}" -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "GildedRose.Tests", "GildedRose.Tests\GildedRose.Tests.fsproj", "{9F9D20E1-CFC0-442C-870A-76E5ABF0E7FE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2660EF56-B4C1-4DCF-B106-278211BD26C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2660EF56-B4C1-4DCF-B106-278211BD26C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2660EF56-B4C1-4DCF-B106-278211BD26C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2660EF56-B4C1-4DCF-B106-278211BD26C6}.Release|Any CPU.Build.0 = Release|Any CPU - {9F9D20E1-CFC0-442C-870A-76E5ABF0E7FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F9D20E1-CFC0-442C-870A-76E5ABF0E7FE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F9D20E1-CFC0-442C-870A-76E5ABF0E7FE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F9D20E1-CFC0-442C-870A-76E5ABF0E7FE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/fsharp/GildedRose/App.config b/fsharp/GildedRose/App.config deleted file mode 100644 index 8e156463..00000000 --- a/fsharp/GildedRose/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/fsharp/GildedRose/GildedRose.fs b/fsharp/GildedRose/GildedRose.fs deleted file mode 100644 index f14f4cc9..00000000 --- a/fsharp/GildedRose/GildedRose.fs +++ /dev/null @@ -1,63 +0,0 @@ -module GildedRose - -open System.Collections.Generic - -type Item = { Name: string; SellIn: int; Quality: int } - -type GildedRose(items:IList) as this = - let Items = items - - member this.UpdateQuality() = - for i = 0 to Items.Count - 1 do - if Items.[i].Name <> "Aged Brie" && Items.[i].Name <> "Backstage passes to a TAFKAL80ETC concert" then - if Items.[i].Quality > 0 then - if Items.[i].Name <> "Sulfuras, Hand of Ragnaros" then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality - 1) } - else - if Items.[i].Quality < 50 then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality + 1) } - if Items.[i].Name = "Backstage passes to a TAFKAL80ETC concert" then - if Items.[i].SellIn < 11 then - if Items.[i].Quality < 50 then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality + 1) } - if Items.[i].SellIn < 6 then - if Items.[i].Quality < 50 then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality + 1) } - if Items.[i].Name <> "Sulfuras, Hand of Ragnaros" then - Items.[i] <- { Items.[i] with SellIn = (Items.[i].SellIn - 1) } - if Items.[i].SellIn < 0 then - if Items.[i].Name <> "Aged Brie" then - if Items.[i].Name <> "Backstage passes to a TAFKAL80ETC concert" then - if Items.[i].Quality > 0 then - if Items.[i].Name <> "Sulfuras, Hand of Ragnaros" then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality - 1) } - else - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality - Items.[i].Quality) } - else - if Items.[i].Quality < 50 then - Items.[i] <- { Items.[i] with Quality = (Items.[i].Quality + 1) } - () - -[] -let main argv = - printfn "OMGHAI!" - let Items = new List() - Items.Add({Name = "+5 Dexterity Vest"; SellIn = 10; Quality = 20}) - Items.Add({Name = "Aged Brie"; SellIn = 2; Quality = 0}) - Items.Add({Name = "Elixir of the Mongoose"; SellIn = 5; Quality = 7}) - Items.Add({Name = "Sulfuras, Hand of Ragnaros"; SellIn = 0; Quality = 80}) - Items.Add({Name = "Sulfuras, Hand of Ragnaros"; SellIn = -1; Quality = 80}) - Items.Add({Name = "Backstage passes to a TAFKAL80ETC concert"; SellIn = 15; Quality = 20}) - Items.Add({Name = "Backstage passes to a TAFKAL80ETC concert"; SellIn = 10; Quality = 49}) - Items.Add({Name = "Backstage passes to a TAFKAL80ETC concert"; SellIn = 5; Quality = 49}) - Items.Add({Name = "Conjured Mana Cake"; SellIn = 3; Quality = 6}) - - let app = new GildedRose(Items) - for i = 0 to 30 do - printfn "-------- day %d --------" i - printfn "name, sellIn, quality" - for j = 0 to Items.Count - 1 do - printfn "%s, %d, %d" Items.[j].Name Items.[j].SellIn Items.[j].Quality - printfn "" - app.UpdateQuality() - 0 \ No newline at end of file diff --git a/fsharp/GildedRose/GildedRose.fsproj b/fsharp/GildedRose/GildedRose.fsproj deleted file mode 100644 index 520dda6e..00000000 --- a/fsharp/GildedRose/GildedRose.fsproj +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Debug - AnyCPU - 2.0 - 2660ef56-b4c1-4dcf-b106-278211bd26c6 - Exe - GildedRose - GildedRose - v4.5 - true - 4.3.1.0 - GildedRose - - - true - full - false - false - bin\Debug\ - DEBUG;TRACE - 3 - AnyCPU - bin\Debug\GildedRose.XML - true - - - pdbonly - true - true - bin\Release\ - TRACE - 3 - AnyCPU - bin\Release\GildedRose.XML - true - - - - - True - - - - - - - - - - - 11 - - - - - $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets - - - - - - \ No newline at end of file diff --git a/go/gilded-rose.go b/go/gilded-rose.go deleted file mode 100644 index c5f35822..00000000 --- a/go/gilded-rose.go +++ /dev/null @@ -1,75 +0,0 @@ -package main - -import "fmt" - -type Item struct { - name string - sellIn, quality int -} - -var items = []Item{ - Item{"+5 Dexterity Vest", 10, 20}, - Item{"Aged Brie", 2, 0}, - Item{"Elixir of the Mongoose", 5, 7}, - Item{"Sulfuras, Hand of Ragnaros", 0, 80}, - Item{"Backstage passes to a TAFKAL80ETC concert", 15, 20}, - Item{"Conjured Mana Cake", 3, 6}, -} - -func main() { - fmt.Println("OMGHAI!") - // fmt.Print(items) - GildedRose() -} - -func GildedRose() { - for i := 0; i < len(items); i++ { - - if items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - if items[i].name != "Sulfuras, Hand of Ragnaros" { - items[i].quality = items[i].quality - 1 - } - } - } else { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - if items[i].name == "Backstage passes to a TAFKAL80ETC concert" { - if items[i].sellIn < 11 { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - if items[i].sellIn < 6 { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - } - } - } - - if items[i].name != "Sulfuras, Hand of Ragnaros" { - items[i].sellIn = items[i].sellIn - 1 - } - - if items[i].sellIn < 0 { - if items[i].name != "Aged Brie" { - if items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - if items[i].name != "Sulfuras, Hand of Ragnaros" { - items[i].quality = items[i].quality - 1 - } - } - } else { - items[i].quality = items[i].quality - items[i].quality - } - } else { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - } - } - -} diff --git a/go/gilded-rose_test.go b/go/gilded-rose_test.go deleted file mode 100644 index 6b03bf25..00000000 --- a/go/gilded-rose_test.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -import "testing" - -func Test_GildedRose(t *testing.T) { - main() -} diff --git a/go/readme.md b/go/readme.md deleted file mode 100644 index 6b894ed4..00000000 --- a/go/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# GO Starter - -- Run : - -```shell -go run gilded-rose.go -``` - -- Run tests : - -```shell -go test -``` - -- Run tests and coverage : - -```shell -go test -coverprofile=coverage.out - -go tool cover -html=coverage.out -``` \ No newline at end of file diff --git a/haskell/.gitignore b/haskell/.gitignore deleted file mode 100644 index 1be183c3..00000000 --- a/haskell/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*.hi -*.ho -TAGS -*.log -*.profile -/dist -/cabal.config - -/.cabal-sandbox/ -/cabal.sandbox.config - diff --git a/haskell/README.md b/haskell/README.md deleted file mode 100644 index acc21af9..00000000 --- a/haskell/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Haskell port of the Gilded-Rose Kata - -This is a Haskell port of the *Gilded-Rose-Kata*. For updates and pull-request -on this haskell port go to https://github.com/sheyll/gilded-rose-haskell - -## Building and Running - -Run `./install_deps.sh` initially, then `./test.sh` to execute the tests after -each refactoring. - -To execute the program run `./run.sh [days]` where `[days]` denotes an optional -parameter for the number of days to simulate. - -Tests are in `test/GildedRoseSpec.hs`. Refer to http://hspec.github.io/ for -more information about writing tests using `Hspec`. diff --git a/haskell/gilded-rose.cabal b/haskell/gilded-rose.cabal deleted file mode 100644 index a1071826..00000000 --- a/haskell/gilded-rose.cabal +++ /dev/null @@ -1,34 +0,0 @@ -name: gilded-rose -version: 0.1.0.0 -synopsis: Haskell-port of the gilded rose kata -license: GPL -author: Sven Heyll -maintainer: sven.heyll@gmail.com -category: System -build-type: Simple -cabal-version: >=1.10 - -library - exposed-modules: GildedRose - build-depends: base >=4.7 && <4.8 - hs-source-dirs: src - default-language: Haskell2010 - -executable gilded-rose - main-is: Main.hs - build-depends: gilded-rose, base >=4.7 && <4.8 - hs-source-dirs: src - default-language: Haskell2010 - -test-suite spec - type: exitcode-stdio-1.0 - ghc-options: -Wall - hs-source-dirs: test - default-language: Haskell2010 - main-is: Spec.hs - other-modules: GildedRoseSpec - build-depends: base >=4.7 && <4.8 - , gilded-rose - , hspec - , hspec-expectations - , QuickCheck diff --git a/haskell/install_deps.sh b/haskell/install_deps.sh deleted file mode 100755 index 68eabbbd..00000000 --- a/haskell/install_deps.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# -# Fetch and build all dependencies -# -set -eu - -cabal install --enable-tests --disable-optimization --dependencies-only -cabal -v0 configure --enable-tests --disable-optimization diff --git a/haskell/run.sh b/haskell/run.sh deleted file mode 100755 index 0a3c2158..00000000 --- a/haskell/run.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# -# Rebuild the project and run Main.main with all arguments passed to this -# script. -# -set -eu - -cabal -v0 run $@ diff --git a/haskell/src/GildedRose.hs b/haskell/src/GildedRose.hs deleted file mode 100644 index 8e710c8e..00000000 --- a/haskell/src/GildedRose.hs +++ /dev/null @@ -1,70 +0,0 @@ -module GildedRose where - -type GildedRose = [Item] - -data Item = Item String Int Int - deriving (Eq) - -instance Show Item where - show (Item name sellIn quality) = - name ++ ", " ++ show sellIn ++ ", " ++ show quality - -updateQuality :: GildedRose -> GildedRose -updateQuality = map updateQualityItem - where - updateQualityItem (Item name sellIn quality) = - let - quality' = - if name /= "Aged Brie" - && name /= "Backstage passes to a TAFKAL80ETC concert" - then - if quality > 0 - then - if name /= "Sulfuras, Hand of Ragnaros" - then quality - 1 - else quality - else quality - else - if quality < 50 - then - quality + 1 + - (if name == "Backstage passes to a TAFKAL80ETC concert" - then - if sellIn < 11 - then - if quality < 49 - then - 1 + (if sellIn < 6 - then - if quality < 48 - then 1 - else 0 - else 0) - else 0 - else 0 - else 0) - else quality - - sellIn' = - if name /= "Sulfuras, Hand of Ragnaros" - then sellIn - 1 - else sellIn - in - if sellIn' < 0 - then - if name /= "Aged Brie" - then - if name /= "Backstage passes to a TAFKAL80ETC concert" - then - if quality' > 0 - then - if name /= "Sulfuras, Hand of Ragnaros" - then (Item name sellIn' (quality' - 1)) - else (Item name sellIn' quality') - else (Item name sellIn' quality') - else (Item name sellIn' (quality' - quality')) - else - if quality' < 50 - then (Item name sellIn' (quality' + 1)) - else (Item name sellIn' quality') - else (Item name sellIn' quality') diff --git a/haskell/src/Main.hs b/haskell/src/Main.hs deleted file mode 100644 index a5fad66c..00000000 --- a/haskell/src/Main.hs +++ /dev/null @@ -1,44 +0,0 @@ -module Main where - -import System.Environment -import GildedRose - - -main :: IO () -main = do - putStrLn "OMGHAI!" - - let inventoriesWithDay = inventories `zip` [0..] - inventories = iterate updateQuality initialInventory - - numberOfDays <- daysFromArg - mapM_ printUpdate (take numberOfDays inventoriesWithDay) - - where - printUpdate :: (GildedRose, Int) -> IO () - printUpdate (items, day) = do - putStrLn ("-------- day " ++ show day ++ " --------") - putStrLn "name, sellIn, quality" - mapM_ (putStrLn . show) items - putStrLn "" - - daysFromArg :: IO Int - daysFromArg = do - args <- getArgs - return $ if length args > 0 - then read (head args) - else 20 - - initialInventory :: GildedRose - initialInventory = - [ Item "+5 Dexterity Vest" 10 20 - , Item "Aged Brie" 2 0 - , Item "Elixir of the Mongoose" 5 7 - , Item "Sulfuras, Hand of Ragnaros" 0 80 - , Item "Sulfuras, Hand of Ragnaros" (-1) 80 - , Item "Backstage passes to a TAFKAL80ETC concert" 15 20 - , Item "Backstage passes to a TAFKAL80ETC concert" 10 49 - , Item "Backstage passes to a TAFKAL80ETC concert" 5 49 - -- this conjured item does not work properly yet - , Item "Conjured Mana Cake" 3 6 - ] diff --git a/haskell/test.sh b/haskell/test.sh deleted file mode 100755 index c88240cb..00000000 --- a/haskell/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# -# Rebuild the project and run the hspec based unit tests. This could have been -# achieved by 'cabal test' but then the output would not be as colorful. -# -set -eu - -cabal -v0 build -./dist/build/spec/spec $@ diff --git a/haskell/test/GildedRoseSpec.hs b/haskell/test/GildedRoseSpec.hs deleted file mode 100644 index cdcaaddd..00000000 --- a/haskell/test/GildedRoseSpec.hs +++ /dev/null @@ -1,14 +0,0 @@ -module GildedRoseSpec (spec) where - -import Test.Hspec -import GildedRose - -spec :: Spec -spec = - describe "updateQuality" $ do - - it "fixme" $ - let inventory = [Item "foo" 0 0] - actual = updateQuality inventory - expected = [] - in actual `shouldBe` expected diff --git a/haskell/test/Spec.hs b/haskell/test/Spec.hs deleted file mode 100644 index a824f8c3..00000000 --- a/haskell/test/Spec.hs +++ /dev/null @@ -1 +0,0 @@ -{-# OPTIONS_GHC -F -pgmF hspec-discover #-} diff --git a/js/SpecRunner.html b/js/SpecRunner.html deleted file mode 100644 index ba3e60d8..00000000 --- a/js/SpecRunner.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Jasmine Spec Runner - - - - - - - - - - - - - - - - - - - - - - - diff --git a/js/TexttestFixture.html b/js/TexttestFixture.html deleted file mode 100644 index 0fa50cb9..00000000 --- a/js/TexttestFixture.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Gilded Rose Texttest Fixture - - - - - - - - - - - diff --git a/js/lib/jasmine-1.1.0/MIT.LICENSE b/js/lib/jasmine-1.1.0/MIT.LICENSE deleted file mode 100644 index 7c435baa..00000000 --- a/js/lib/jasmine-1.1.0/MIT.LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2008-2011 Pivotal Labs - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/js/lib/jasmine-1.1.0/jasmine-html.js b/js/lib/jasmine-1.1.0/jasmine-html.js deleted file mode 100644 index 73834010..00000000 --- a/js/lib/jasmine-1.1.0/jasmine-html.js +++ /dev/null @@ -1,190 +0,0 @@ -jasmine.TrivialReporter = function(doc) { - this.document = doc || document; - this.suiteDivs = {}; - this.logRunningSpecs = false; -}; - -jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) { - var el = document.createElement(type); - - for (var i = 2; i < arguments.length; i++) { - var child = arguments[i]; - - if (typeof child === 'string') { - el.appendChild(document.createTextNode(child)); - } else { - if (child) { el.appendChild(child); } - } - } - - for (var attr in attrs) { - if (attr == "className") { - el[attr] = attrs[attr]; - } else { - el.setAttribute(attr, attrs[attr]); - } - } - - return el; -}; - -jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) { - var showPassed, showSkipped; - - this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' }, - this.createDom('div', { className: 'banner' }, - this.createDom('div', { className: 'logo' }, - this.createDom('span', { className: 'title' }, "Jasmine"), - this.createDom('span', { className: 'version' }, runner.env.versionString())), - this.createDom('div', { className: 'options' }, - "Show ", - showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }), - this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "), - showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }), - this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped") - ) - ), - - this.runnerDiv = this.createDom('div', { className: 'runner running' }, - this.createDom('a', { className: 'run_spec', href: '?' }, "run all"), - this.runnerMessageSpan = this.createDom('span', {}, "Running..."), - this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, "")) - ); - - this.document.body.appendChild(this.outerDiv); - - var suites = runner.suites(); - for (var i = 0; i < suites.length; i++) { - var suite = suites[i]; - var suiteDiv = this.createDom('div', { className: 'suite' }, - this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"), - this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description)); - this.suiteDivs[suite.id] = suiteDiv; - var parentDiv = this.outerDiv; - if (suite.parentSuite) { - parentDiv = this.suiteDivs[suite.parentSuite.id]; - } - parentDiv.appendChild(suiteDiv); - } - - this.startedAt = new Date(); - - var self = this; - showPassed.onclick = function(evt) { - if (showPassed.checked) { - self.outerDiv.className += ' show-passed'; - } else { - self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, ''); - } - }; - - showSkipped.onclick = function(evt) { - if (showSkipped.checked) { - self.outerDiv.className += ' show-skipped'; - } else { - self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, ''); - } - }; -}; - -jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) { - var results = runner.results(); - var className = (results.failedCount > 0) ? "runner failed" : "runner passed"; - this.runnerDiv.setAttribute("class", className); - //do it twice for IE - this.runnerDiv.setAttribute("className", className); - var specs = runner.specs(); - var specCount = 0; - for (var i = 0; i < specs.length; i++) { - if (this.specFilter(specs[i])) { - specCount++; - } - } - var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s"); - message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s"; - this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild); - - this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString())); -}; - -jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) { - var results = suite.results(); - var status = results.passed() ? 'passed' : 'failed'; - if (results.totalCount === 0) { // todo: change this to check results.skipped - status = 'skipped'; - } - this.suiteDivs[suite.id].className += " " + status; -}; - -jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) { - if (this.logRunningSpecs) { - this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...'); - } -}; - -jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) { - var results = spec.results(); - var status = results.passed() ? 'passed' : 'failed'; - if (results.skipped) { - status = 'skipped'; - } - var specDiv = this.createDom('div', { className: 'spec ' + status }, - this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"), - this.createDom('a', { - className: 'description', - href: '?spec=' + encodeURIComponent(spec.getFullName()), - title: spec.getFullName() - }, spec.description)); - - - var resultItems = results.getItems(); - var messagesDiv = this.createDom('div', { className: 'messages' }); - for (var i = 0; i < resultItems.length; i++) { - var result = resultItems[i]; - - if (result.type == 'log') { - messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString())); - } else if (result.type == 'expect' && result.passed && !result.passed()) { - messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message)); - - if (result.trace.stack) { - messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack)); - } - } - } - - if (messagesDiv.childNodes.length > 0) { - specDiv.appendChild(messagesDiv); - } - - this.suiteDivs[spec.suite.id].appendChild(specDiv); -}; - -jasmine.TrivialReporter.prototype.log = function() { - var console = jasmine.getGlobal().console; - if (console && console.log) { - if (console.log.apply) { - console.log.apply(console, arguments); - } else { - console.log(arguments); // ie fix: console.log.apply doesn't exist on ie - } - } -}; - -jasmine.TrivialReporter.prototype.getLocation = function() { - return this.document.location; -}; - -jasmine.TrivialReporter.prototype.specFilter = function(spec) { - var paramMap = {}; - var params = this.getLocation().search.substring(1).split('&'); - for (var i = 0; i < params.length; i++) { - var p = params[i].split('='); - paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]); - } - - if (!paramMap.spec) { - return true; - } - return spec.getFullName().indexOf(paramMap.spec) === 0; -}; diff --git a/js/lib/jasmine-1.1.0/jasmine.css b/js/lib/jasmine-1.1.0/jasmine.css deleted file mode 100644 index 6583fe7c..00000000 --- a/js/lib/jasmine-1.1.0/jasmine.css +++ /dev/null @@ -1,166 +0,0 @@ -body { - font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; -} - - -.jasmine_reporter a:visited, .jasmine_reporter a { - color: #303; -} - -.jasmine_reporter a:hover, .jasmine_reporter a:active { - color: blue; -} - -.run_spec { - float:right; - padding-right: 5px; - font-size: .8em; - text-decoration: none; -} - -.jasmine_reporter { - margin: 0 5px; -} - -.banner { - color: #303; - background-color: #fef; - padding: 5px; -} - -.logo { - float: left; - font-size: 1.1em; - padding-left: 5px; -} - -.logo .version { - font-size: .6em; - padding-left: 1em; -} - -.runner.running { - background-color: yellow; -} - - -.options { - text-align: right; - font-size: .8em; -} - - - - -.suite { - border: 1px outset gray; - margin: 5px 0; - padding-left: 1em; -} - -.suite .suite { - margin: 5px; -} - -.suite.passed { - background-color: #dfd; -} - -.suite.failed { - background-color: #fdd; -} - -.spec { - margin: 5px; - padding-left: 1em; - clear: both; -} - -.spec.failed, .spec.passed, .spec.skipped { - padding-bottom: 5px; - border: 1px solid gray; -} - -.spec.failed { - background-color: #fbb; - border-color: red; -} - -.spec.passed { - background-color: #bfb; - border-color: green; -} - -.spec.skipped { - background-color: #bbb; -} - -.messages { - border-left: 1px dashed gray; - padding-left: 1em; - padding-right: 1em; -} - -.passed { - background-color: #cfc; - display: none; -} - -.failed { - background-color: #fbb; -} - -.skipped { - color: #777; - background-color: #eee; - display: none; -} - - -/*.resultMessage {*/ - /*white-space: pre;*/ -/*}*/ - -.resultMessage span.result { - display: block; - line-height: 2em; - color: black; -} - -.resultMessage .mismatch { - color: black; -} - -.stackTrace { - white-space: pre; - font-size: .8em; - margin-left: 10px; - max-height: 5em; - overflow: auto; - border: 1px inset red; - padding: 1em; - background: #eef; -} - -.finished-at { - padding-left: 1em; - font-size: .6em; -} - -.show-passed .passed, -.show-skipped .skipped { - display: block; -} - - -#jasmine_content { - position:fixed; - right: 100%; -} - -.runner { - border: 1px solid gray; - display: block; - margin: 5px 0; - padding: 2px 0 2px 10px; -} diff --git a/js/lib/jasmine-1.1.0/jasmine.js b/js/lib/jasmine-1.1.0/jasmine.js deleted file mode 100644 index c3d2dc7d..00000000 --- a/js/lib/jasmine-1.1.0/jasmine.js +++ /dev/null @@ -1,2476 +0,0 @@ -var isCommonJS = typeof window == "undefined"; - -/** - * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework. - * - * @namespace - */ -var jasmine = {}; -if (isCommonJS) exports.jasmine = jasmine; -/** - * @private - */ -jasmine.unimplementedMethod_ = function() { - throw new Error("unimplemented method"); -}; - -/** - * Use jasmine.undefined instead of undefined, since undefined is just - * a plain old variable and may be redefined by somebody else. - * - * @private - */ -jasmine.undefined = jasmine.___undefined___; - -/** - * Show diagnostic messages in the console if set to true - * - */ -jasmine.VERBOSE = false; - -/** - * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed. - * - */ -jasmine.DEFAULT_UPDATE_INTERVAL = 250; - -/** - * Default timeout interval in milliseconds for waitsFor() blocks. - */ -jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000; - -jasmine.getGlobal = function() { - function getGlobal() { - return this; - } - - return getGlobal(); -}; - -/** - * Allows for bound functions to be compared. Internal use only. - * - * @ignore - * @private - * @param base {Object} bound 'this' for the function - * @param name {Function} function to find - */ -jasmine.bindOriginal_ = function(base, name) { - var original = base[name]; - if (original.apply) { - return function() { - return original.apply(base, arguments); - }; - } else { - // IE support - return jasmine.getGlobal()[name]; - } -}; - -jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout'); -jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout'); -jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval'); -jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval'); - -jasmine.MessageResult = function(values) { - this.type = 'log'; - this.values = values; - this.trace = new Error(); // todo: test better -}; - -jasmine.MessageResult.prototype.toString = function() { - var text = ""; - for (var i = 0; i < this.values.length; i++) { - if (i > 0) text += " "; - if (jasmine.isString_(this.values[i])) { - text += this.values[i]; - } else { - text += jasmine.pp(this.values[i]); - } - } - return text; -}; - -jasmine.ExpectationResult = function(params) { - this.type = 'expect'; - this.matcherName = params.matcherName; - this.passed_ = params.passed; - this.expected = params.expected; - this.actual = params.actual; - this.message = this.passed_ ? 'Passed.' : params.message; - - var trace = (params.trace || new Error(this.message)); - this.trace = this.passed_ ? '' : trace; -}; - -jasmine.ExpectationResult.prototype.toString = function () { - return this.message; -}; - -jasmine.ExpectationResult.prototype.passed = function () { - return this.passed_; -}; - -/** - * Getter for the Jasmine environment. Ensures one gets created - */ -jasmine.getEnv = function() { - var env = jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env(); - return env; -}; - -/** - * @ignore - * @private - * @param value - * @returns {Boolean} - */ -jasmine.isArray_ = function(value) { - return jasmine.isA_("Array", value); -}; - -/** - * @ignore - * @private - * @param value - * @returns {Boolean} - */ -jasmine.isString_ = function(value) { - return jasmine.isA_("String", value); -}; - -/** - * @ignore - * @private - * @param value - * @returns {Boolean} - */ -jasmine.isNumber_ = function(value) { - return jasmine.isA_("Number", value); -}; - -/** - * @ignore - * @private - * @param {String} typeName - * @param value - * @returns {Boolean} - */ -jasmine.isA_ = function(typeName, value) { - return Object.prototype.toString.apply(value) === '[object ' + typeName + ']'; -}; - -/** - * Pretty printer for expecations. Takes any object and turns it into a human-readable string. - * - * @param value {Object} an object to be outputted - * @returns {String} - */ -jasmine.pp = function(value) { - var stringPrettyPrinter = new jasmine.StringPrettyPrinter(); - stringPrettyPrinter.format(value); - return stringPrettyPrinter.string; -}; - -/** - * Returns true if the object is a DOM Node. - * - * @param {Object} obj object to check - * @returns {Boolean} - */ -jasmine.isDomNode = function(obj) { - return obj.nodeType > 0; -}; - -/** - * Returns a matchable 'generic' object of the class type. For use in expecations of type when values don't matter. - * - * @example - * // don't care about which function is passed in, as long as it's a function - * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function)); - * - * @param {Class} clazz - * @returns matchable object of the type clazz - */ -jasmine.any = function(clazz) { - return new jasmine.Matchers.Any(clazz); -}; - -/** - * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks. - * - * Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine - * expectation syntax. Spies can be checked if they were called or not and what the calling params were. - * - * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs). - * - * Spies are torn down at the end of every spec. - * - * Note: Do not call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj. - * - * @example - * // a stub - * var myStub = jasmine.createSpy('myStub'); // can be used anywhere - * - * // spy example - * var foo = { - * not: function(bool) { return !bool; } - * } - * - * // actual foo.not will not be called, execution stops - * spyOn(foo, 'not'); - - // foo.not spied upon, execution will continue to implementation - * spyOn(foo, 'not').andCallThrough(); - * - * // fake example - * var foo = { - * not: function(bool) { return !bool; } - * } - * - * // foo.not(val) will return val - * spyOn(foo, 'not').andCallFake(function(value) {return value;}); - * - * // mock example - * foo.not(7 == 7); - * expect(foo.not).toHaveBeenCalled(); - * expect(foo.not).toHaveBeenCalledWith(true); - * - * @constructor - * @see spyOn, jasmine.createSpy, jasmine.createSpyObj - * @param {String} name - */ -jasmine.Spy = function(name) { - /** - * The name of the spy, if provided. - */ - this.identity = name || 'unknown'; - /** - * Is this Object a spy? - */ - this.isSpy = true; - /** - * The actual function this spy stubs. - */ - this.plan = function() { - }; - /** - * Tracking of the most recent call to the spy. - * @example - * var mySpy = jasmine.createSpy('foo'); - * mySpy(1, 2); - * mySpy.mostRecentCall.args = [1, 2]; - */ - this.mostRecentCall = {}; - - /** - * Holds arguments for each call to the spy, indexed by call count - * @example - * var mySpy = jasmine.createSpy('foo'); - * mySpy(1, 2); - * mySpy(7, 8); - * mySpy.mostRecentCall.args = [7, 8]; - * mySpy.argsForCall[0] = [1, 2]; - * mySpy.argsForCall[1] = [7, 8]; - */ - this.argsForCall = []; - this.calls = []; -}; - -/** - * Tells a spy to call through to the actual implemenatation. - * - * @example - * var foo = { - * bar: function() { // do some stuff } - * } - * - * // defining a spy on an existing property: foo.bar - * spyOn(foo, 'bar').andCallThrough(); - */ -jasmine.Spy.prototype.andCallThrough = function() { - this.plan = this.originalValue; - return this; -}; - -/** - * For setting the return value of a spy. - * - * @example - * // defining a spy from scratch: foo() returns 'baz' - * var foo = jasmine.createSpy('spy on foo').andReturn('baz'); - * - * // defining a spy on an existing property: foo.bar() returns 'baz' - * spyOn(foo, 'bar').andReturn('baz'); - * - * @param {Object} value - */ -jasmine.Spy.prototype.andReturn = function(value) { - this.plan = function() { - return value; - }; - return this; -}; - -/** - * For throwing an exception when a spy is called. - * - * @example - * // defining a spy from scratch: foo() throws an exception w/ message 'ouch' - * var foo = jasmine.createSpy('spy on foo').andThrow('baz'); - * - * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch' - * spyOn(foo, 'bar').andThrow('baz'); - * - * @param {String} exceptionMsg - */ -jasmine.Spy.prototype.andThrow = function(exceptionMsg) { - this.plan = function() { - throw exceptionMsg; - }; - return this; -}; - -/** - * Calls an alternate implementation when a spy is called. - * - * @example - * var baz = function() { - * // do some stuff, return something - * } - * // defining a spy from scratch: foo() calls the function baz - * var foo = jasmine.createSpy('spy on foo').andCall(baz); - * - * // defining a spy on an existing property: foo.bar() calls an anonymnous function - * spyOn(foo, 'bar').andCall(function() { return 'baz';} ); - * - * @param {Function} fakeFunc - */ -jasmine.Spy.prototype.andCallFake = function(fakeFunc) { - this.plan = fakeFunc; - return this; -}; - -/** - * Resets all of a spy's the tracking variables so that it can be used again. - * - * @example - * spyOn(foo, 'bar'); - * - * foo.bar(); - * - * expect(foo.bar.callCount).toEqual(1); - * - * foo.bar.reset(); - * - * expect(foo.bar.callCount).toEqual(0); - */ -jasmine.Spy.prototype.reset = function() { - this.wasCalled = false; - this.callCount = 0; - this.argsForCall = []; - this.calls = []; - this.mostRecentCall = {}; -}; - -jasmine.createSpy = function(name) { - - var spyObj = function() { - spyObj.wasCalled = true; - spyObj.callCount++; - var args = jasmine.util.argsToArray(arguments); - spyObj.mostRecentCall.object = this; - spyObj.mostRecentCall.args = args; - spyObj.argsForCall.push(args); - spyObj.calls.push({object: this, args: args}); - return spyObj.plan.apply(this, arguments); - }; - - var spy = new jasmine.Spy(name); - - for (var prop in spy) { - spyObj[prop] = spy[prop]; - } - - spyObj.reset(); - - return spyObj; -}; - -/** - * Determines whether an object is a spy. - * - * @param {jasmine.Spy|Object} putativeSpy - * @returns {Boolean} - */ -jasmine.isSpy = function(putativeSpy) { - return putativeSpy && putativeSpy.isSpy; -}; - -/** - * Creates a more complicated spy: an Object that has every property a function that is a spy. Used for stubbing something - * large in one call. - * - * @param {String} baseName name of spy class - * @param {Array} methodNames array of names of methods to make spies - */ -jasmine.createSpyObj = function(baseName, methodNames) { - if (!jasmine.isArray_(methodNames) || methodNames.length === 0) { - throw new Error('createSpyObj requires a non-empty array of method names to create spies for'); - } - var obj = {}; - for (var i = 0; i < methodNames.length; i++) { - obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]); - } - return obj; -}; - -/** - * All parameters are pretty-printed and concatenated together, then written to the current spec's output. - * - * Be careful not to leave calls to jasmine.log in production code. - */ -jasmine.log = function() { - var spec = jasmine.getEnv().currentSpec; - spec.log.apply(spec, arguments); -}; - -/** - * Function that installs a spy on an existing object's method name. Used within a Spec to create a spy. - * - * @example - * // spy example - * var foo = { - * not: function(bool) { return !bool; } - * } - * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops - * - * @see jasmine.createSpy - * @param obj - * @param methodName - * @returns a Jasmine spy that can be chained with all spy methods - */ -var spyOn = function(obj, methodName) { - return jasmine.getEnv().currentSpec.spyOn(obj, methodName); -}; -if (isCommonJS) exports.spyOn = spyOn; - -/** - * Creates a Jasmine spec that will be added to the current suite. - * - * // TODO: pending tests - * - * @example - * it('should be true', function() { - * expect(true).toEqual(true); - * }); - * - * @param {String} desc description of this specification - * @param {Function} func defines the preconditions and expectations of the spec - */ -var it = function(desc, func) { - return jasmine.getEnv().it(desc, func); -}; -if (isCommonJS) exports.it = it; - -/** - * Creates a disabled Jasmine spec. - * - * A convenience method that allows existing specs to be disabled temporarily during development. - * - * @param {String} desc description of this specification - * @param {Function} func defines the preconditions and expectations of the spec - */ -var xit = function(desc, func) { - return jasmine.getEnv().xit(desc, func); -}; -if (isCommonJS) exports.xit = xit; - -/** - * Starts a chain for a Jasmine expectation. - * - * It is passed an Object that is the actual value and should chain to one of the many - * jasmine.Matchers functions. - * - * @param {Object} actual Actual value to test against and expected value - */ -var expect = function(actual) { - return jasmine.getEnv().currentSpec.expect(actual); -}; -if (isCommonJS) exports.expect = expect; - -/** - * Defines part of a jasmine spec. Used in cominbination with waits or waitsFor in asynchrnous specs. - * - * @param {Function} func Function that defines part of a jasmine spec. - */ -var runs = function(func) { - jasmine.getEnv().currentSpec.runs(func); -}; -if (isCommonJS) exports.runs = runs; - -/** - * Waits a fixed time period before moving to the next block. - * - * @deprecated Use waitsFor() instead - * @param {Number} timeout milliseconds to wait - */ -var waits = function(timeout) { - jasmine.getEnv().currentSpec.waits(timeout); -}; -if (isCommonJS) exports.waits = waits; - -/** - * Waits for the latchFunction to return true before proceeding to the next block. - * - * @param {Function} latchFunction - * @param {String} optional_timeoutMessage - * @param {Number} optional_timeout - */ -var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) { - jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments); -}; -if (isCommonJS) exports.waitsFor = waitsFor; - -/** - * A function that is called before each spec in a suite. - * - * Used for spec setup, including validating assumptions. - * - * @param {Function} beforeEachFunction - */ -var beforeEach = function(beforeEachFunction) { - jasmine.getEnv().beforeEach(beforeEachFunction); -}; -if (isCommonJS) exports.beforeEach = beforeEach; - -/** - * A function that is called after each spec in a suite. - * - * Used for restoring any state that is hijacked during spec execution. - * - * @param {Function} afterEachFunction - */ -var afterEach = function(afterEachFunction) { - jasmine.getEnv().afterEach(afterEachFunction); -}; -if (isCommonJS) exports.afterEach = afterEach; - -/** - * Defines a suite of specifications. - * - * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared - * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization - * of setup in some tests. - * - * @example - * // TODO: a simple suite - * - * // TODO: a simple suite with a nested describe block - * - * @param {String} description A string, usually the class under test. - * @param {Function} specDefinitions function that defines several specs. - */ -var describe = function(description, specDefinitions) { - return jasmine.getEnv().describe(description, specDefinitions); -}; -if (isCommonJS) exports.describe = describe; - -/** - * Disables a suite of specifications. Used to disable some suites in a file, or files, temporarily during development. - * - * @param {String} description A string, usually the class under test. - * @param {Function} specDefinitions function that defines several specs. - */ -var xdescribe = function(description, specDefinitions) { - return jasmine.getEnv().xdescribe(description, specDefinitions); -}; -if (isCommonJS) exports.xdescribe = xdescribe; - - -// Provide the XMLHttpRequest class for IE 5.x-6.x: -jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() { - function tryIt(f) { - try { - return f(); - } catch(e) { - } - return null; - } - - var xhr = tryIt(function() { - return new ActiveXObject("Msxml2.XMLHTTP.6.0"); - }) || - tryIt(function() { - return new ActiveXObject("Msxml2.XMLHTTP.3.0"); - }) || - tryIt(function() { - return new ActiveXObject("Msxml2.XMLHTTP"); - }) || - tryIt(function() { - return new ActiveXObject("Microsoft.XMLHTTP"); - }); - - if (!xhr) throw new Error("This browser does not support XMLHttpRequest."); - - return xhr; -} : XMLHttpRequest; -/** - * @namespace - */ -jasmine.util = {}; - -/** - * Declare that a child class inherit it's prototype from the parent class. - * - * @private - * @param {Function} childClass - * @param {Function} parentClass - */ -jasmine.util.inherit = function(childClass, parentClass) { - /** - * @private - */ - var subclass = function() { - }; - subclass.prototype = parentClass.prototype; - childClass.prototype = new subclass(); -}; - -jasmine.util.formatException = function(e) { - var lineNumber; - if (e.line) { - lineNumber = e.line; - } - else if (e.lineNumber) { - lineNumber = e.lineNumber; - } - - var file; - - if (e.sourceURL) { - file = e.sourceURL; - } - else if (e.fileName) { - file = e.fileName; - } - - var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString(); - - if (file && lineNumber) { - message += ' in ' + file + ' (line ' + lineNumber + ')'; - } - - return message; -}; - -jasmine.util.htmlEscape = function(str) { - if (!str) return str; - return str.replace(/&/g, '&') - .replace(//g, '>'); -}; - -jasmine.util.argsToArray = function(args) { - var arrayOfArgs = []; - for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]); - return arrayOfArgs; -}; - -jasmine.util.extend = function(destination, source) { - for (var property in source) destination[property] = source[property]; - return destination; -}; - -/** - * Environment for Jasmine - * - * @constructor - */ -jasmine.Env = function() { - this.currentSpec = null; - this.currentSuite = null; - this.currentRunner_ = new jasmine.Runner(this); - - this.reporter = new jasmine.MultiReporter(); - - this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL; - this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL; - this.lastUpdate = 0; - this.specFilter = function() { - return true; - }; - - this.nextSpecId_ = 0; - this.nextSuiteId_ = 0; - this.equalityTesters_ = []; - - // wrap matchers - this.matchersClass = function() { - jasmine.Matchers.apply(this, arguments); - }; - jasmine.util.inherit(this.matchersClass, jasmine.Matchers); - - jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass); -}; - - -jasmine.Env.prototype.setTimeout = jasmine.setTimeout; -jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout; -jasmine.Env.prototype.setInterval = jasmine.setInterval; -jasmine.Env.prototype.clearInterval = jasmine.clearInterval; - -/** - * @returns an object containing jasmine version build info, if set. - */ -jasmine.Env.prototype.version = function () { - if (jasmine.version_) { - return jasmine.version_; - } else { - throw new Error('Version not set'); - } -}; - -/** - * @returns string containing jasmine version build info, if set. - */ -jasmine.Env.prototype.versionString = function() { - if (!jasmine.version_) { - return "version unknown"; - } - - var version = this.version(); - var versionString = version.major + "." + version.minor + "." + version.build; - if (version.release_candidate) { - versionString += ".rc" + version.release_candidate; - } - versionString += " revision " + version.revision; - return versionString; -}; - -/** - * @returns a sequential integer starting at 0 - */ -jasmine.Env.prototype.nextSpecId = function () { - return this.nextSpecId_++; -}; - -/** - * @returns a sequential integer starting at 0 - */ -jasmine.Env.prototype.nextSuiteId = function () { - return this.nextSuiteId_++; -}; - -/** - * Register a reporter to receive status updates from Jasmine. - * @param {jasmine.Reporter} reporter An object which will receive status updates. - */ -jasmine.Env.prototype.addReporter = function(reporter) { - this.reporter.addReporter(reporter); -}; - -jasmine.Env.prototype.execute = function() { - this.currentRunner_.execute(); -}; - -jasmine.Env.prototype.describe = function(description, specDefinitions) { - var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite); - - var parentSuite = this.currentSuite; - if (parentSuite) { - parentSuite.add(suite); - } else { - this.currentRunner_.add(suite); - } - - this.currentSuite = suite; - - var declarationError = null; - try { - specDefinitions.call(suite); - } catch(e) { - declarationError = e; - } - - if (declarationError) { - this.it("encountered a declaration exception", function() { - throw declarationError; - }); - } - - this.currentSuite = parentSuite; - - return suite; -}; - -jasmine.Env.prototype.beforeEach = function(beforeEachFunction) { - if (this.currentSuite) { - this.currentSuite.beforeEach(beforeEachFunction); - } else { - this.currentRunner_.beforeEach(beforeEachFunction); - } -}; - -jasmine.Env.prototype.currentRunner = function () { - return this.currentRunner_; -}; - -jasmine.Env.prototype.afterEach = function(afterEachFunction) { - if (this.currentSuite) { - this.currentSuite.afterEach(afterEachFunction); - } else { - this.currentRunner_.afterEach(afterEachFunction); - } - -}; - -jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) { - return { - execute: function() { - } - }; -}; - -jasmine.Env.prototype.it = function(description, func) { - var spec = new jasmine.Spec(this, this.currentSuite, description); - this.currentSuite.add(spec); - this.currentSpec = spec; - - if (func) { - spec.runs(func); - } - - return spec; -}; - -jasmine.Env.prototype.xit = function(desc, func) { - return { - id: this.nextSpecId(), - runs: function() { - } - }; -}; - -jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) { - if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) { - return true; - } - - a.__Jasmine_been_here_before__ = b; - b.__Jasmine_been_here_before__ = a; - - var hasKey = function(obj, keyName) { - return obj !== null && obj[keyName] !== jasmine.undefined; - }; - - for (var property in b) { - if (!hasKey(a, property) && hasKey(b, property)) { - mismatchKeys.push("expected has key '" + property + "', but missing from actual."); - } - } - for (property in a) { - if (!hasKey(b, property) && hasKey(a, property)) { - mismatchKeys.push("expected missing key '" + property + "', but present in actual."); - } - } - for (property in b) { - if (property == '__Jasmine_been_here_before__') continue; - if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) { - mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual."); - } - } - - if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) { - mismatchValues.push("arrays were not the same length"); - } - - delete a.__Jasmine_been_here_before__; - delete b.__Jasmine_been_here_before__; - return (mismatchKeys.length === 0 && mismatchValues.length === 0); -}; - -jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) { - mismatchKeys = mismatchKeys || []; - mismatchValues = mismatchValues || []; - - for (var i = 0; i < this.equalityTesters_.length; i++) { - var equalityTester = this.equalityTesters_[i]; - var result = equalityTester(a, b, this, mismatchKeys, mismatchValues); - if (result !== jasmine.undefined) return result; - } - - if (a === b) return true; - - if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) { - return (a == jasmine.undefined && b == jasmine.undefined); - } - - if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) { - return a === b; - } - - if (a instanceof Date && b instanceof Date) { - return a.getTime() == b.getTime(); - } - - if (a instanceof jasmine.Matchers.Any) { - return a.matches(b); - } - - if (b instanceof jasmine.Matchers.Any) { - return b.matches(a); - } - - if (jasmine.isString_(a) && jasmine.isString_(b)) { - return (a == b); - } - - if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) { - return (a == b); - } - - if (typeof a === "object" && typeof b === "object") { - return this.compareObjects_(a, b, mismatchKeys, mismatchValues); - } - - //Straight check - return (a === b); -}; - -jasmine.Env.prototype.contains_ = function(haystack, needle) { - if (jasmine.isArray_(haystack)) { - for (var i = 0; i < haystack.length; i++) { - if (this.equals_(haystack[i], needle)) return true; - } - return false; - } - return haystack.indexOf(needle) >= 0; -}; - -jasmine.Env.prototype.addEqualityTester = function(equalityTester) { - this.equalityTesters_.push(equalityTester); -}; -/** No-op base class for Jasmine reporters. - * - * @constructor - */ -jasmine.Reporter = function() { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.reportRunnerStarting = function(runner) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.reportRunnerResults = function(runner) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.reportSuiteResults = function(suite) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.reportSpecStarting = function(spec) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.reportSpecResults = function(spec) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.Reporter.prototype.log = function(str) { -}; - -/** - * Blocks are functions with executable code that make up a spec. - * - * @constructor - * @param {jasmine.Env} env - * @param {Function} func - * @param {jasmine.Spec} spec - */ -jasmine.Block = function(env, func, spec) { - this.env = env; - this.func = func; - this.spec = spec; -}; - -jasmine.Block.prototype.execute = function(onComplete) { - try { - this.func.apply(this.spec); - } catch (e) { - this.spec.fail(e); - } - onComplete(); -}; -/** JavaScript API reporter. - * - * @constructor - */ -jasmine.JsApiReporter = function() { - this.started = false; - this.finished = false; - this.suites_ = []; - this.results_ = {}; -}; - -jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) { - this.started = true; - var suites = runner.topLevelSuites(); - for (var i = 0; i < suites.length; i++) { - var suite = suites[i]; - this.suites_.push(this.summarize_(suite)); - } -}; - -jasmine.JsApiReporter.prototype.suites = function() { - return this.suites_; -}; - -jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) { - var isSuite = suiteOrSpec instanceof jasmine.Suite; - var summary = { - id: suiteOrSpec.id, - name: suiteOrSpec.description, - type: isSuite ? 'suite' : 'spec', - children: [] - }; - - if (isSuite) { - var children = suiteOrSpec.children(); - for (var i = 0; i < children.length; i++) { - summary.children.push(this.summarize_(children[i])); - } - } - return summary; -}; - -jasmine.JsApiReporter.prototype.results = function() { - return this.results_; -}; - -jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) { - return this.results_[specId]; -}; - -//noinspection JSUnusedLocalSymbols -jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) { - this.finished = true; -}; - -//noinspection JSUnusedLocalSymbols -jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) { -}; - -//noinspection JSUnusedLocalSymbols -jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) { - this.results_[spec.id] = { - messages: spec.results().getItems(), - result: spec.results().failedCount > 0 ? "failed" : "passed" - }; -}; - -//noinspection JSUnusedLocalSymbols -jasmine.JsApiReporter.prototype.log = function(str) { -}; - -jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){ - var results = {}; - for (var i = 0; i < specIds.length; i++) { - var specId = specIds[i]; - results[specId] = this.summarizeResult_(this.results_[specId]); - } - return results; -}; - -jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){ - var summaryMessages = []; - var messagesLength = result.messages.length; - for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) { - var resultMessage = result.messages[messageIndex]; - summaryMessages.push({ - text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined, - passed: resultMessage.passed ? resultMessage.passed() : true, - type: resultMessage.type, - message: resultMessage.message, - trace: { - stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined - } - }); - } - - return { - result : result.result, - messages : summaryMessages - }; -}; - -/** - * @constructor - * @param {jasmine.Env} env - * @param actual - * @param {jasmine.Spec} spec - */ -jasmine.Matchers = function(env, actual, spec, opt_isNot) { - this.env = env; - this.actual = actual; - this.spec = spec; - this.isNot = opt_isNot || false; - this.reportWasCalled_ = false; -}; - -// todo: @deprecated as of Jasmine 0.11, remove soon [xw] -jasmine.Matchers.pp = function(str) { - throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!"); -}; - -// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw] -jasmine.Matchers.prototype.report = function(result, failing_message, details) { - throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs"); -}; - -jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) { - for (var methodName in prototype) { - if (methodName == 'report') continue; - var orig = prototype[methodName]; - matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig); - } -}; - -jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) { - return function() { - var matcherArgs = jasmine.util.argsToArray(arguments); - var result = matcherFunction.apply(this, arguments); - - if (this.isNot) { - result = !result; - } - - if (this.reportWasCalled_) return result; - - var message; - if (!result) { - if (this.message) { - message = this.message.apply(this, arguments); - if (jasmine.isArray_(message)) { - message = message[this.isNot ? 1 : 0]; - } - } else { - var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); }); - message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate; - if (matcherArgs.length > 0) { - for (var i = 0; i < matcherArgs.length; i++) { - if (i > 0) message += ","; - message += " " + jasmine.pp(matcherArgs[i]); - } - } - message += "."; - } - } - var expectationResult = new jasmine.ExpectationResult({ - matcherName: matcherName, - passed: result, - expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0], - actual: this.actual, - message: message - }); - this.spec.addMatcherResult(expectationResult); - return jasmine.undefined; - }; -}; - - - - -/** - * toBe: compares the actual to the expected using === - * @param expected - */ -jasmine.Matchers.prototype.toBe = function(expected) { - return this.actual === expected; -}; - -/** - * toNotBe: compares the actual to the expected using !== - * @param expected - * @deprecated as of 1.0. Use not.toBe() instead. - */ -jasmine.Matchers.prototype.toNotBe = function(expected) { - return this.actual !== expected; -}; - -/** - * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc. - * - * @param expected - */ -jasmine.Matchers.prototype.toEqual = function(expected) { - return this.env.equals_(this.actual, expected); -}; - -/** - * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual - * @param expected - * @deprecated as of 1.0. Use not.toNotEqual() instead. - */ -jasmine.Matchers.prototype.toNotEqual = function(expected) { - return !this.env.equals_(this.actual, expected); -}; - -/** - * Matcher that compares the actual to the expected using a regular expression. Constructs a RegExp, so takes - * a pattern or a String. - * - * @param expected - */ -jasmine.Matchers.prototype.toMatch = function(expected) { - return new RegExp(expected).test(this.actual); -}; - -/** - * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch - * @param expected - * @deprecated as of 1.0. Use not.toMatch() instead. - */ -jasmine.Matchers.prototype.toNotMatch = function(expected) { - return !(new RegExp(expected).test(this.actual)); -}; - -/** - * Matcher that compares the actual to jasmine.undefined. - */ -jasmine.Matchers.prototype.toBeDefined = function() { - return (this.actual !== jasmine.undefined); -}; - -/** - * Matcher that compares the actual to jasmine.undefined. - */ -jasmine.Matchers.prototype.toBeUndefined = function() { - return (this.actual === jasmine.undefined); -}; - -/** - * Matcher that compares the actual to null. - */ -jasmine.Matchers.prototype.toBeNull = function() { - return (this.actual === null); -}; - -/** - * Matcher that boolean not-nots the actual. - */ -jasmine.Matchers.prototype.toBeTruthy = function() { - return !!this.actual; -}; - - -/** - * Matcher that boolean nots the actual. - */ -jasmine.Matchers.prototype.toBeFalsy = function() { - return !this.actual; -}; - - -/** - * Matcher that checks to see if the actual, a Jasmine spy, was called. - */ -jasmine.Matchers.prototype.toHaveBeenCalled = function() { - if (arguments.length > 0) { - throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith'); - } - - if (!jasmine.isSpy(this.actual)) { - throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.'); - } - - this.message = function() { - return [ - "Expected spy " + this.actual.identity + " to have been called.", - "Expected spy " + this.actual.identity + " not to have been called." - ]; - }; - - return this.actual.wasCalled; -}; - -/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */ -jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled; - -/** - * Matcher that checks to see if the actual, a Jasmine spy, was not called. - * - * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead - */ -jasmine.Matchers.prototype.wasNotCalled = function() { - if (arguments.length > 0) { - throw new Error('wasNotCalled does not take arguments'); - } - - if (!jasmine.isSpy(this.actual)) { - throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.'); - } - - this.message = function() { - return [ - "Expected spy " + this.actual.identity + " to not have been called.", - "Expected spy " + this.actual.identity + " to have been called." - ]; - }; - - return !this.actual.wasCalled; -}; - -/** - * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters. - * - * @example - * - */ -jasmine.Matchers.prototype.toHaveBeenCalledWith = function() { - var expectedArgs = jasmine.util.argsToArray(arguments); - if (!jasmine.isSpy(this.actual)) { - throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.'); - } - this.message = function() { - if (this.actual.callCount === 0) { - // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw] - return [ - "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.", - "Expected spy " + this.actual.identity + " not to have been called with " + jasmine.pp(expectedArgs) + " but it was." - ]; - } else { - return [ - "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall), - "Expected spy " + this.actual.identity + " not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall) - ]; - } - }; - - return this.env.contains_(this.actual.argsForCall, expectedArgs); -}; - -/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */ -jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith; - -/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */ -jasmine.Matchers.prototype.wasNotCalledWith = function() { - var expectedArgs = jasmine.util.argsToArray(arguments); - if (!jasmine.isSpy(this.actual)) { - throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.'); - } - - this.message = function() { - return [ - "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was", - "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was" - ]; - }; - - return !this.env.contains_(this.actual.argsForCall, expectedArgs); -}; - -/** - * Matcher that checks that the expected item is an element in the actual Array. - * - * @param {Object} expected - */ -jasmine.Matchers.prototype.toContain = function(expected) { - return this.env.contains_(this.actual, expected); -}; - -/** - * Matcher that checks that the expected item is NOT an element in the actual Array. - * - * @param {Object} expected - * @deprecated as of 1.0. Use not.toNotContain() instead. - */ -jasmine.Matchers.prototype.toNotContain = function(expected) { - return !this.env.contains_(this.actual, expected); -}; - -jasmine.Matchers.prototype.toBeLessThan = function(expected) { - return this.actual < expected; -}; - -jasmine.Matchers.prototype.toBeGreaterThan = function(expected) { - return this.actual > expected; -}; - -/** - * Matcher that checks that the expected item is equal to the actual item - * up to a given level of decimal precision (default 2). - * - * @param {Number} expected - * @param {Number} precision - */ -jasmine.Matchers.prototype.toBeCloseTo = function(expected, precision) { - if (!(precision === 0)) { - precision = precision || 2; - } - var multiplier = Math.pow(10, precision); - var actual = Math.round(this.actual * multiplier); - expected = Math.round(expected * multiplier); - return expected == actual; -}; - -/** - * Matcher that checks that the expected exception was thrown by the actual. - * - * @param {String} expected - */ -jasmine.Matchers.prototype.toThrow = function(expected) { - var result = false; - var exception; - if (typeof this.actual != 'function') { - throw new Error('Actual is not a function'); - } - try { - this.actual(); - } catch (e) { - exception = e; - } - if (exception) { - result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected)); - } - - var not = this.isNot ? "not " : ""; - - this.message = function() { - if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) { - return ["Expected function " + not + "to throw", expected ? expected.message || expected : "an exception", ", but it threw", exception.message || exception].join(' '); - } else { - return "Expected function to throw an exception."; - } - }; - - return result; -}; - -jasmine.Matchers.Any = function(expectedClass) { - this.expectedClass = expectedClass; -}; - -jasmine.Matchers.Any.prototype.matches = function(other) { - if (this.expectedClass == String) { - return typeof other == 'string' || other instanceof String; - } - - if (this.expectedClass == Number) { - return typeof other == 'number' || other instanceof Number; - } - - if (this.expectedClass == Function) { - return typeof other == 'function' || other instanceof Function; - } - - if (this.expectedClass == Object) { - return typeof other == 'object'; - } - - return other instanceof this.expectedClass; -}; - -jasmine.Matchers.Any.prototype.toString = function() { - return ''; -}; - -/** - * @constructor - */ -jasmine.MultiReporter = function() { - this.subReporters_ = []; -}; -jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter); - -jasmine.MultiReporter.prototype.addReporter = function(reporter) { - this.subReporters_.push(reporter); -}; - -(function() { - var functionNames = [ - "reportRunnerStarting", - "reportRunnerResults", - "reportSuiteResults", - "reportSpecStarting", - "reportSpecResults", - "log" - ]; - for (var i = 0; i < functionNames.length; i++) { - var functionName = functionNames[i]; - jasmine.MultiReporter.prototype[functionName] = (function(functionName) { - return function() { - for (var j = 0; j < this.subReporters_.length; j++) { - var subReporter = this.subReporters_[j]; - if (subReporter[functionName]) { - subReporter[functionName].apply(subReporter, arguments); - } - } - }; - })(functionName); - } -})(); -/** - * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults - * - * @constructor - */ -jasmine.NestedResults = function() { - /** - * The total count of results - */ - this.totalCount = 0; - /** - * Number of passed results - */ - this.passedCount = 0; - /** - * Number of failed results - */ - this.failedCount = 0; - /** - * Was this suite/spec skipped? - */ - this.skipped = false; - /** - * @ignore - */ - this.items_ = []; -}; - -/** - * Roll up the result counts. - * - * @param result - */ -jasmine.NestedResults.prototype.rollupCounts = function(result) { - this.totalCount += result.totalCount; - this.passedCount += result.passedCount; - this.failedCount += result.failedCount; -}; - -/** - * Adds a log message. - * @param values Array of message parts which will be concatenated later. - */ -jasmine.NestedResults.prototype.log = function(values) { - this.items_.push(new jasmine.MessageResult(values)); -}; - -/** - * Getter for the results: message & results. - */ -jasmine.NestedResults.prototype.getItems = function() { - return this.items_; -}; - -/** - * Adds a result, tracking counts (total, passed, & failed) - * @param {jasmine.ExpectationResult|jasmine.NestedResults} result - */ -jasmine.NestedResults.prototype.addResult = function(result) { - if (result.type != 'log') { - if (result.items_) { - this.rollupCounts(result); - } else { - this.totalCount++; - if (result.passed()) { - this.passedCount++; - } else { - this.failedCount++; - } - } - } - this.items_.push(result); -}; - -/** - * @returns {Boolean} True if everything below passed - */ -jasmine.NestedResults.prototype.passed = function() { - return this.passedCount === this.totalCount; -}; -/** - * Base class for pretty printing for expectation results. - */ -jasmine.PrettyPrinter = function() { - this.ppNestLevel_ = 0; -}; - -/** - * Formats a value in a nice, human-readable string. - * - * @param value - */ -jasmine.PrettyPrinter.prototype.format = function(value) { - if (this.ppNestLevel_ > 40) { - throw new Error('jasmine.PrettyPrinter: format() nested too deeply!'); - } - - this.ppNestLevel_++; - try { - if (value === jasmine.undefined) { - this.emitScalar('undefined'); - } else if (value === null) { - this.emitScalar('null'); - } else if (value === jasmine.getGlobal()) { - this.emitScalar(''); - } else if (value instanceof jasmine.Matchers.Any) { - this.emitScalar(value.toString()); - } else if (typeof value === 'string') { - this.emitString(value); - } else if (jasmine.isSpy(value)) { - this.emitScalar("spy on " + value.identity); - } else if (value instanceof RegExp) { - this.emitScalar(value.toString()); - } else if (typeof value === 'function') { - this.emitScalar('Function'); - } else if (typeof value.nodeType === 'number') { - this.emitScalar('HTMLNode'); - } else if (value instanceof Date) { - this.emitScalar('Date(' + value + ')'); - } else if (value.__Jasmine_been_here_before__) { - this.emitScalar(''); - } else if (jasmine.isArray_(value) || typeof value == 'object') { - value.__Jasmine_been_here_before__ = true; - if (jasmine.isArray_(value)) { - this.emitArray(value); - } else { - this.emitObject(value); - } - delete value.__Jasmine_been_here_before__; - } else { - this.emitScalar(value.toString()); - } - } finally { - this.ppNestLevel_--; - } -}; - -jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) { - for (var property in obj) { - if (property == '__Jasmine_been_here_before__') continue; - fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) !== jasmine.undefined && - obj.__lookupGetter__(property) !== null) : false); - } -}; - -jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_; -jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_; -jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_; -jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_; - -jasmine.StringPrettyPrinter = function() { - jasmine.PrettyPrinter.call(this); - - this.string = ''; -}; -jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter); - -jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) { - this.append(value); -}; - -jasmine.StringPrettyPrinter.prototype.emitString = function(value) { - this.append("'" + value + "'"); -}; - -jasmine.StringPrettyPrinter.prototype.emitArray = function(array) { - this.append('[ '); - for (var i = 0; i < array.length; i++) { - if (i > 0) { - this.append(', '); - } - this.format(array[i]); - } - this.append(' ]'); -}; - -jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) { - var self = this; - this.append('{ '); - var first = true; - - this.iterateObject(obj, function(property, isGetter) { - if (first) { - first = false; - } else { - self.append(', '); - } - - self.append(property); - self.append(' : '); - if (isGetter) { - self.append(''); - } else { - self.format(obj[property]); - } - }); - - this.append(' }'); -}; - -jasmine.StringPrettyPrinter.prototype.append = function(value) { - this.string += value; -}; -jasmine.Queue = function(env) { - this.env = env; - this.blocks = []; - this.running = false; - this.index = 0; - this.offset = 0; - this.abort = false; -}; - -jasmine.Queue.prototype.addBefore = function(block) { - this.blocks.unshift(block); -}; - -jasmine.Queue.prototype.add = function(block) { - this.blocks.push(block); -}; - -jasmine.Queue.prototype.insertNext = function(block) { - this.blocks.splice((this.index + this.offset + 1), 0, block); - this.offset++; -}; - -jasmine.Queue.prototype.start = function(onComplete) { - this.running = true; - this.onComplete = onComplete; - this.next_(); -}; - -jasmine.Queue.prototype.isRunning = function() { - return this.running; -}; - -jasmine.Queue.LOOP_DONT_RECURSE = true; - -jasmine.Queue.prototype.next_ = function() { - var self = this; - var goAgain = true; - - while (goAgain) { - goAgain = false; - - if (self.index < self.blocks.length && !this.abort) { - var calledSynchronously = true; - var completedSynchronously = false; - - var onComplete = function () { - if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) { - completedSynchronously = true; - return; - } - - if (self.blocks[self.index].abort) { - self.abort = true; - } - - self.offset = 0; - self.index++; - - var now = new Date().getTime(); - if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) { - self.env.lastUpdate = now; - self.env.setTimeout(function() { - self.next_(); - }, 0); - } else { - if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) { - goAgain = true; - } else { - self.next_(); - } - } - }; - self.blocks[self.index].execute(onComplete); - - calledSynchronously = false; - if (completedSynchronously) { - onComplete(); - } - - } else { - self.running = false; - if (self.onComplete) { - self.onComplete(); - } - } - } -}; - -jasmine.Queue.prototype.results = function() { - var results = new jasmine.NestedResults(); - for (var i = 0; i < this.blocks.length; i++) { - if (this.blocks[i].results) { - results.addResult(this.blocks[i].results()); - } - } - return results; -}; - - -/** - * Runner - * - * @constructor - * @param {jasmine.Env} env - */ -jasmine.Runner = function(env) { - var self = this; - self.env = env; - self.queue = new jasmine.Queue(env); - self.before_ = []; - self.after_ = []; - self.suites_ = []; -}; - -jasmine.Runner.prototype.execute = function() { - var self = this; - if (self.env.reporter.reportRunnerStarting) { - self.env.reporter.reportRunnerStarting(this); - } - self.queue.start(function () { - self.finishCallback(); - }); -}; - -jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) { - beforeEachFunction.typeName = 'beforeEach'; - this.before_.splice(0,0,beforeEachFunction); -}; - -jasmine.Runner.prototype.afterEach = function(afterEachFunction) { - afterEachFunction.typeName = 'afterEach'; - this.after_.splice(0,0,afterEachFunction); -}; - - -jasmine.Runner.prototype.finishCallback = function() { - this.env.reporter.reportRunnerResults(this); -}; - -jasmine.Runner.prototype.addSuite = function(suite) { - this.suites_.push(suite); -}; - -jasmine.Runner.prototype.add = function(block) { - if (block instanceof jasmine.Suite) { - this.addSuite(block); - } - this.queue.add(block); -}; - -jasmine.Runner.prototype.specs = function () { - var suites = this.suites(); - var specs = []; - for (var i = 0; i < suites.length; i++) { - specs = specs.concat(suites[i].specs()); - } - return specs; -}; - -jasmine.Runner.prototype.suites = function() { - return this.suites_; -}; - -jasmine.Runner.prototype.topLevelSuites = function() { - var topLevelSuites = []; - for (var i = 0; i < this.suites_.length; i++) { - if (!this.suites_[i].parentSuite) { - topLevelSuites.push(this.suites_[i]); - } - } - return topLevelSuites; -}; - -jasmine.Runner.prototype.results = function() { - return this.queue.results(); -}; -/** - * Internal representation of a Jasmine specification, or test. - * - * @constructor - * @param {jasmine.Env} env - * @param {jasmine.Suite} suite - * @param {String} description - */ -jasmine.Spec = function(env, suite, description) { - if (!env) { - throw new Error('jasmine.Env() required'); - } - if (!suite) { - throw new Error('jasmine.Suite() required'); - } - var spec = this; - spec.id = env.nextSpecId ? env.nextSpecId() : null; - spec.env = env; - spec.suite = suite; - spec.description = description; - spec.queue = new jasmine.Queue(env); - - spec.afterCallbacks = []; - spec.spies_ = []; - - spec.results_ = new jasmine.NestedResults(); - spec.results_.description = description; - spec.matchersClass = null; -}; - -jasmine.Spec.prototype.getFullName = function() { - return this.suite.getFullName() + ' ' + this.description + '.'; -}; - - -jasmine.Spec.prototype.results = function() { - return this.results_; -}; - -/** - * All parameters are pretty-printed and concatenated together, then written to the spec's output. - * - * Be careful not to leave calls to jasmine.log in production code. - */ -jasmine.Spec.prototype.log = function() { - return this.results_.log(arguments); -}; - -jasmine.Spec.prototype.runs = function (func) { - var block = new jasmine.Block(this.env, func, this); - this.addToQueue(block); - return this; -}; - -jasmine.Spec.prototype.addToQueue = function (block) { - if (this.queue.isRunning()) { - this.queue.insertNext(block); - } else { - this.queue.add(block); - } -}; - -/** - * @param {jasmine.ExpectationResult} result - */ -jasmine.Spec.prototype.addMatcherResult = function(result) { - this.results_.addResult(result); -}; - -jasmine.Spec.prototype.expect = function(actual) { - var positive = new (this.getMatchersClass_())(this.env, actual, this); - positive.not = new (this.getMatchersClass_())(this.env, actual, this, true); - return positive; -}; - -/** - * Waits a fixed time period before moving to the next block. - * - * @deprecated Use waitsFor() instead - * @param {Number} timeout milliseconds to wait - */ -jasmine.Spec.prototype.waits = function(timeout) { - var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this); - this.addToQueue(waitsFunc); - return this; -}; - -/** - * Waits for the latchFunction to return true before proceeding to the next block. - * - * @param {Function} latchFunction - * @param {String} optional_timeoutMessage - * @param {Number} optional_timeout - */ -jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) { - var latchFunction_ = null; - var optional_timeoutMessage_ = null; - var optional_timeout_ = null; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - switch (typeof arg) { - case 'function': - latchFunction_ = arg; - break; - case 'string': - optional_timeoutMessage_ = arg; - break; - case 'number': - optional_timeout_ = arg; - break; - } - } - - var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this); - this.addToQueue(waitsForFunc); - return this; -}; - -jasmine.Spec.prototype.fail = function (e) { - var expectationResult = new jasmine.ExpectationResult({ - passed: false, - message: e ? jasmine.util.formatException(e) : 'Exception', - trace: { stack: e.stack } - }); - this.results_.addResult(expectationResult); -}; - -jasmine.Spec.prototype.getMatchersClass_ = function() { - return this.matchersClass || this.env.matchersClass; -}; - -jasmine.Spec.prototype.addMatchers = function(matchersPrototype) { - var parent = this.getMatchersClass_(); - var newMatchersClass = function() { - parent.apply(this, arguments); - }; - jasmine.util.inherit(newMatchersClass, parent); - jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass); - this.matchersClass = newMatchersClass; -}; - -jasmine.Spec.prototype.finishCallback = function() { - this.env.reporter.reportSpecResults(this); -}; - -jasmine.Spec.prototype.finish = function(onComplete) { - this.removeAllSpies(); - this.finishCallback(); - if (onComplete) { - onComplete(); - } -}; - -jasmine.Spec.prototype.after = function(doAfter) { - if (this.queue.isRunning()) { - this.queue.add(new jasmine.Block(this.env, doAfter, this)); - } else { - this.afterCallbacks.unshift(doAfter); - } -}; - -jasmine.Spec.prototype.execute = function(onComplete) { - var spec = this; - if (!spec.env.specFilter(spec)) { - spec.results_.skipped = true; - spec.finish(onComplete); - return; - } - - this.env.reporter.reportSpecStarting(this); - - spec.env.currentSpec = spec; - - spec.addBeforesAndAftersToQueue(); - - spec.queue.start(function () { - spec.finish(onComplete); - }); -}; - -jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() { - var runner = this.env.currentRunner(); - var i; - - for (var suite = this.suite; suite; suite = suite.parentSuite) { - for (i = 0; i < suite.before_.length; i++) { - this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this)); - } - } - for (i = 0; i < runner.before_.length; i++) { - this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this)); - } - for (i = 0; i < this.afterCallbacks.length; i++) { - this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this)); - } - for (suite = this.suite; suite; suite = suite.parentSuite) { - for (i = 0; i < suite.after_.length; i++) { - this.queue.add(new jasmine.Block(this.env, suite.after_[i], this)); - } - } - for (i = 0; i < runner.after_.length; i++) { - this.queue.add(new jasmine.Block(this.env, runner.after_[i], this)); - } -}; - -jasmine.Spec.prototype.explodes = function() { - throw 'explodes function should not have been called'; -}; - -jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) { - if (obj == jasmine.undefined) { - throw "spyOn could not find an object to spy upon for " + methodName + "()"; - } - - if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) { - throw methodName + '() method does not exist'; - } - - if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) { - throw new Error(methodName + ' has already been spied upon'); - } - - var spyObj = jasmine.createSpy(methodName); - - this.spies_.push(spyObj); - spyObj.baseObj = obj; - spyObj.methodName = methodName; - spyObj.originalValue = obj[methodName]; - - obj[methodName] = spyObj; - - return spyObj; -}; - -jasmine.Spec.prototype.removeAllSpies = function() { - for (var i = 0; i < this.spies_.length; i++) { - var spy = this.spies_[i]; - spy.baseObj[spy.methodName] = spy.originalValue; - } - this.spies_ = []; -}; - -/** - * Internal representation of a Jasmine suite. - * - * @constructor - * @param {jasmine.Env} env - * @param {String} description - * @param {Function} specDefinitions - * @param {jasmine.Suite} parentSuite - */ -jasmine.Suite = function(env, description, specDefinitions, parentSuite) { - var self = this; - self.id = env.nextSuiteId ? env.nextSuiteId() : null; - self.description = description; - self.queue = new jasmine.Queue(env); - self.parentSuite = parentSuite; - self.env = env; - self.before_ = []; - self.after_ = []; - self.children_ = []; - self.suites_ = []; - self.specs_ = []; -}; - -jasmine.Suite.prototype.getFullName = function() { - var fullName = this.description; - for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) { - fullName = parentSuite.description + ' ' + fullName; - } - return fullName; -}; - -jasmine.Suite.prototype.finish = function(onComplete) { - this.env.reporter.reportSuiteResults(this); - this.finished = true; - if (typeof(onComplete) == 'function') { - onComplete(); - } -}; - -jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) { - beforeEachFunction.typeName = 'beforeEach'; - this.before_.unshift(beforeEachFunction); -}; - -jasmine.Suite.prototype.afterEach = function(afterEachFunction) { - afterEachFunction.typeName = 'afterEach'; - this.after_.unshift(afterEachFunction); -}; - -jasmine.Suite.prototype.results = function() { - return this.queue.results(); -}; - -jasmine.Suite.prototype.add = function(suiteOrSpec) { - this.children_.push(suiteOrSpec); - if (suiteOrSpec instanceof jasmine.Suite) { - this.suites_.push(suiteOrSpec); - this.env.currentRunner().addSuite(suiteOrSpec); - } else { - this.specs_.push(suiteOrSpec); - } - this.queue.add(suiteOrSpec); -}; - -jasmine.Suite.prototype.specs = function() { - return this.specs_; -}; - -jasmine.Suite.prototype.suites = function() { - return this.suites_; -}; - -jasmine.Suite.prototype.children = function() { - return this.children_; -}; - -jasmine.Suite.prototype.execute = function(onComplete) { - var self = this; - this.queue.start(function () { - self.finish(onComplete); - }); -}; -jasmine.WaitsBlock = function(env, timeout, spec) { - this.timeout = timeout; - jasmine.Block.call(this, env, null, spec); -}; - -jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block); - -jasmine.WaitsBlock.prototype.execute = function (onComplete) { - if (jasmine.VERBOSE) { - this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...'); - } - this.env.setTimeout(function () { - onComplete(); - }, this.timeout); -}; -/** - * A block which waits for some condition to become true, with timeout. - * - * @constructor - * @extends jasmine.Block - * @param {jasmine.Env} env The Jasmine environment. - * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true. - * @param {Function} latchFunction A function which returns true when the desired condition has been met. - * @param {String} message The message to display if the desired condition hasn't been met within the given time period. - * @param {jasmine.Spec} spec The Jasmine spec. - */ -jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) { - this.timeout = timeout || env.defaultTimeoutInterval; - this.latchFunction = latchFunction; - this.message = message; - this.totalTimeSpentWaitingForLatch = 0; - jasmine.Block.call(this, env, null, spec); -}; -jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block); - -jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10; - -jasmine.WaitsForBlock.prototype.execute = function(onComplete) { - if (jasmine.VERBOSE) { - this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen')); - } - var latchFunctionResult; - try { - latchFunctionResult = this.latchFunction.apply(this.spec); - } catch (e) { - this.spec.fail(e); - onComplete(); - return; - } - - if (latchFunctionResult) { - onComplete(); - } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) { - var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen'); - this.spec.fail({ - name: 'timeout', - message: message - }); - - this.abort = true; - onComplete(); - } else { - this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT; - var self = this; - this.env.setTimeout(function() { - self.execute(onComplete); - }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT); - } -}; -// Mock setTimeout, clearTimeout -// Contributed by Pivotal Computer Systems, www.pivotalsf.com - -jasmine.FakeTimer = function() { - this.reset(); - - var self = this; - self.setTimeout = function(funcToCall, millis) { - self.timeoutsMade++; - self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false); - return self.timeoutsMade; - }; - - self.setInterval = function(funcToCall, millis) { - self.timeoutsMade++; - self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true); - return self.timeoutsMade; - }; - - self.clearTimeout = function(timeoutKey) { - self.scheduledFunctions[timeoutKey] = jasmine.undefined; - }; - - self.clearInterval = function(timeoutKey) { - self.scheduledFunctions[timeoutKey] = jasmine.undefined; - }; - -}; - -jasmine.FakeTimer.prototype.reset = function() { - this.timeoutsMade = 0; - this.scheduledFunctions = {}; - this.nowMillis = 0; -}; - -jasmine.FakeTimer.prototype.tick = function(millis) { - var oldMillis = this.nowMillis; - var newMillis = oldMillis + millis; - this.runFunctionsWithinRange(oldMillis, newMillis); - this.nowMillis = newMillis; -}; - -jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) { - var scheduledFunc; - var funcsToRun = []; - for (var timeoutKey in this.scheduledFunctions) { - scheduledFunc = this.scheduledFunctions[timeoutKey]; - if (scheduledFunc != jasmine.undefined && - scheduledFunc.runAtMillis >= oldMillis && - scheduledFunc.runAtMillis <= nowMillis) { - funcsToRun.push(scheduledFunc); - this.scheduledFunctions[timeoutKey] = jasmine.undefined; - } - } - - if (funcsToRun.length > 0) { - funcsToRun.sort(function(a, b) { - return a.runAtMillis - b.runAtMillis; - }); - for (var i = 0; i < funcsToRun.length; ++i) { - try { - var funcToRun = funcsToRun[i]; - this.nowMillis = funcToRun.runAtMillis; - funcToRun.funcToCall(); - if (funcToRun.recurring) { - this.scheduleFunction(funcToRun.timeoutKey, - funcToRun.funcToCall, - funcToRun.millis, - true); - } - } catch(e) { - } - } - this.runFunctionsWithinRange(oldMillis, nowMillis); - } -}; - -jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) { - this.scheduledFunctions[timeoutKey] = { - runAtMillis: this.nowMillis + millis, - funcToCall: funcToCall, - recurring: recurring, - timeoutKey: timeoutKey, - millis: millis - }; -}; - -/** - * @namespace - */ -jasmine.Clock = { - defaultFakeTimer: new jasmine.FakeTimer(), - - reset: function() { - jasmine.Clock.assertInstalled(); - jasmine.Clock.defaultFakeTimer.reset(); - }, - - tick: function(millis) { - jasmine.Clock.assertInstalled(); - jasmine.Clock.defaultFakeTimer.tick(millis); - }, - - runFunctionsWithinRange: function(oldMillis, nowMillis) { - jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis); - }, - - scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) { - jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring); - }, - - useMock: function() { - if (!jasmine.Clock.isInstalled()) { - var spec = jasmine.getEnv().currentSpec; - spec.after(jasmine.Clock.uninstallMock); - - jasmine.Clock.installMock(); - } - }, - - installMock: function() { - jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer; - }, - - uninstallMock: function() { - jasmine.Clock.assertInstalled(); - jasmine.Clock.installed = jasmine.Clock.real; - }, - - real: { - setTimeout: jasmine.getGlobal().setTimeout, - clearTimeout: jasmine.getGlobal().clearTimeout, - setInterval: jasmine.getGlobal().setInterval, - clearInterval: jasmine.getGlobal().clearInterval - }, - - assertInstalled: function() { - if (!jasmine.Clock.isInstalled()) { - throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()"); - } - }, - - isInstalled: function() { - return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer; - }, - - installed: null -}; -jasmine.Clock.installed = jasmine.Clock.real; - -//else for IE support -jasmine.getGlobal().setTimeout = function(funcToCall, millis) { - if (jasmine.Clock.installed.setTimeout.apply) { - return jasmine.Clock.installed.setTimeout.apply(this, arguments); - } else { - return jasmine.Clock.installed.setTimeout(funcToCall, millis); - } -}; - -jasmine.getGlobal().setInterval = function(funcToCall, millis) { - if (jasmine.Clock.installed.setInterval.apply) { - return jasmine.Clock.installed.setInterval.apply(this, arguments); - } else { - return jasmine.Clock.installed.setInterval(funcToCall, millis); - } -}; - -jasmine.getGlobal().clearTimeout = function(timeoutKey) { - if (jasmine.Clock.installed.clearTimeout.apply) { - return jasmine.Clock.installed.clearTimeout.apply(this, arguments); - } else { - return jasmine.Clock.installed.clearTimeout(timeoutKey); - } -}; - -jasmine.getGlobal().clearInterval = function(timeoutKey) { - if (jasmine.Clock.installed.clearTimeout.apply) { - return jasmine.Clock.installed.clearInterval.apply(this, arguments); - } else { - return jasmine.Clock.installed.clearInterval(timeoutKey); - } -}; - -jasmine.version_= { - "major": 1, - "minor": 1, - "build": 0, - "revision": 1315677058 -}; diff --git a/js/lib/jasmine-1.1.0/jasmine_favicon.png b/js/lib/jasmine-1.1.0/jasmine_favicon.png deleted file mode 100644 index 218f3b43713598fa5a3e78b57aceb909c33f46df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmV;419tq0P)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_0008u zNkl3{fod28|PjmA)7fYg4w8-(2my9xtBGOs}K`n&t1VzxMO^X)M zrW+Ln1udc?q6TP)z5gAjt)P&D!M$+HJK#x<`xnD030zwD?KrxxY!2tlA zGc-58?0D7SsT)7Km=v+tNVNUk`?s@;^OxCF)y6P}_mL;~7;S<@b|MzmKq)m8l@yky zT1~ECpxZw@64!nkI34QLiUsA%i%N>-$&zGYR7WJyi9ERMyS(%kf z7A_r)X>!90&m(FwDQZ>q;+nOa*KR2+E6Fz)QwU=W1Oyo*4>_qlm|~joa|{4_A_3W8 z#FFZzRp-xMIx5a7D_Fj3&#r^TbIY@cND1d0f*^qDIs{!pw!IWGQ_%l4#ASm_D5Vet z0%ek7^)@xPihX_G0&hIc9*14ca=D!8oG}vW?H%~w^F?f_s>zU|fKrNJXJ_d6{v!t( zpEoqMws_yQws>3o?VW8Txq~#->dJG^ELW5irR!s`(_JvD^6;r+ho~eIK@ia8_lH(h zt*-p?CFC1_h2MV=?jP){uW!7WjLjCaO&c1D+tf582!XEaoB#xWAYcN5f$sLtf$koW zQs{{>)ZTq?FC6|J_%n}AWbiFK(Bo-%^-{H`*)E(ucjo-r%SYm)W5f6tN=xz=S646E fNXW#U{x?4WXWJ 0) { - return ajaxRequests[ajaxRequests.length - 1]; - } else { - return null; - } -} - -function clearAjaxRequests() { - ajaxRequests = []; -} - -// Fake XHR for mocking Ajax Requests & Responses -function FakeXMLHttpRequest() { - var extend = Object.extend || $.extend; - extend(this, { - requestHeaders: {}, - - open: function() { - this.method = arguments[0]; - this.url = arguments[1]; - this.readyState = 1; - }, - - setRequestHeader: function(header, value) { - this.requestHeaders[header] = value; - }, - - abort: function() { - this.readyState = 0; - }, - - readyState: 0, - - onreadystatechange: function(isTimeout) { - }, - - status: null, - - send: function(data) { - this.params = data; - this.readyState = 2; - }, - - getResponseHeader: function(name) { - return this.responseHeaders[name]; - }, - - getAllResponseHeaders: function() { - var responseHeaders = []; - for (var i in this.responseHeaders) { - if (this.responseHeaders.hasOwnProperty(i)) { - responseHeaders.push(i + ': ' + this.responseHeaders[i]); - } - } - return responseHeaders.join('\r\n'); - }, - - responseText: null, - - response: function(response) { - this.status = response.status; - this.responseText = response.responseText || ""; - this.readyState = 4; - this.responseHeaders = response.responseHeaders || - {"Content-type": response.contentType || "application/json" }; - // uncomment for jquery 1.3.x support - // jasmine.Clock.tick(20); - - this.onreadystatechange(); - }, - responseTimeout: function() { - this.readyState = 4; - jasmine.Clock.tick(jQuery.ajaxSettings.timeout || 30000); - this.onreadystatechange('timeout'); - } - }); - - return this; -} - - -jasmine.Ajax = { - - isInstalled: function() { - return jasmine.Ajax.installed == true; - }, - - assertInstalled: function() { - if (!jasmine.Ajax.isInstalled()) { - throw new Error("Mock ajax is not installed, use jasmine.Ajax.useMock()") - } - }, - - useMock: function() { - if (!jasmine.Ajax.isInstalled()) { - var spec = jasmine.getEnv().currentSpec; - spec.after(jasmine.Ajax.uninstallMock); - - jasmine.Ajax.installMock(); - } - }, - - installMock: function() { - if (typeof jQuery != 'undefined') { - jasmine.Ajax.installJquery(); - } else if (typeof Prototype != 'undefined') { - jasmine.Ajax.installPrototype(); - } else { - throw new Error("jasmine.Ajax currently only supports jQuery and Prototype"); - } - jasmine.Ajax.installed = true; - }, - - installJquery: function() { - jasmine.Ajax.mode = 'jQuery'; - jasmine.Ajax.real = jQuery.ajaxSettings.xhr; - jQuery.ajaxSettings.xhr = jasmine.Ajax.jQueryMock; - - }, - - installPrototype: function() { - jasmine.Ajax.mode = 'Prototype'; - jasmine.Ajax.real = Ajax.getTransport; - - Ajax.getTransport = jasmine.Ajax.prototypeMock; - }, - - uninstallMock: function() { - jasmine.Ajax.assertInstalled(); - if (jasmine.Ajax.mode == 'jQuery') { - jQuery.ajaxSettings.xhr = jasmine.Ajax.real; - } else if (jasmine.Ajax.mode == 'Prototype') { - Ajax.getTransport = jasmine.Ajax.real; - } - jasmine.Ajax.reset(); - }, - - reset: function() { - jasmine.Ajax.installed = false; - jasmine.Ajax.mode = null; - jasmine.Ajax.real = null; - }, - - jQueryMock: function() { - var newXhr = new FakeXMLHttpRequest(); - ajaxRequests.push(newXhr); - return newXhr; - }, - - prototypeMock: function() { - return new FakeXMLHttpRequest(); - }, - - installed: false, - mode: null -} - - -// Jasmine-Ajax Glue code for Prototype.js -if (typeof Prototype != 'undefined' && Ajax && Ajax.Request) { - Ajax.Request.prototype.originalRequest = Ajax.Request.prototype.request; - Ajax.Request.prototype.request = function(url) { - this.originalRequest(url); - ajaxRequests.push(this); - }; - - Ajax.Request.prototype.response = function(responseOptions) { - return this.transport.response(responseOptions); - }; -} diff --git a/js/lib/jasmine-jquery-1.3.1/jasmine-jquery-1.3.1.js b/js/lib/jasmine-jquery-1.3.1/jasmine-jquery-1.3.1.js deleted file mode 100644 index 7e85548a..00000000 --- a/js/lib/jasmine-jquery-1.3.1/jasmine-jquery-1.3.1.js +++ /dev/null @@ -1,288 +0,0 @@ -var readFixtures = function() { - return jasmine.getFixtures().proxyCallTo_('read', arguments); -}; - -var preloadFixtures = function() { - jasmine.getFixtures().proxyCallTo_('preload', arguments); -}; - -var loadFixtures = function() { - jasmine.getFixtures().proxyCallTo_('load', arguments); -}; - -var setFixtures = function(html) { - jasmine.getFixtures().set(html); -}; - -var sandbox = function(attributes) { - return jasmine.getFixtures().sandbox(attributes); -}; - -var spyOnEvent = function(selector, eventName) { - jasmine.JQuery.events.spyOn(selector, eventName); -} - -jasmine.getFixtures = function() { - return jasmine.currentFixtures_ = jasmine.currentFixtures_ || new jasmine.Fixtures(); -}; - -jasmine.Fixtures = function() { - this.containerId = 'jasmine-fixtures'; - this.fixturesCache_ = {}; - this.fixturesPath = 'spec/javascripts/fixtures'; -}; - -jasmine.Fixtures.prototype.set = function(html) { - this.cleanUp(); - this.createContainer_(html); -}; - -jasmine.Fixtures.prototype.preload = function() { - this.read.apply(this, arguments); -}; - -jasmine.Fixtures.prototype.load = function() { - this.cleanUp(); - this.createContainer_(this.read.apply(this, arguments)); -}; - -jasmine.Fixtures.prototype.read = function() { - var htmlChunks = []; - - var fixtureUrls = arguments; - for(var urlCount = fixtureUrls.length, urlIndex = 0; urlIndex < urlCount; urlIndex++) { - htmlChunks.push(this.getFixtureHtml_(fixtureUrls[urlIndex])); - } - - return htmlChunks.join(''); -}; - -jasmine.Fixtures.prototype.clearCache = function() { - this.fixturesCache_ = {}; -}; - -jasmine.Fixtures.prototype.cleanUp = function() { - jQuery('#' + this.containerId).remove(); -}; - -jasmine.Fixtures.prototype.sandbox = function(attributes) { - var attributesToSet = attributes || {}; - return jQuery('

').attr(attributesToSet); -}; - -jasmine.Fixtures.prototype.createContainer_ = function(html) { - var container; - if(html instanceof jQuery) { - container = jQuery('
'); - container.html(html); - } else { - container = '
' + html + '
' - } - jQuery('body').append(container); -}; - -jasmine.Fixtures.prototype.getFixtureHtml_ = function(url) { - if (typeof this.fixturesCache_[url] == 'undefined') { - this.loadFixtureIntoCache_(url); - } - return this.fixturesCache_[url]; -}; - -jasmine.Fixtures.prototype.loadFixtureIntoCache_ = function(relativeUrl) { - var self = this; - var url = this.fixturesPath.match('/$') ? this.fixturesPath + relativeUrl : this.fixturesPath + '/' + relativeUrl; - jQuery.ajax({ - async: false, // must be synchronous to guarantee that no tests are run before fixture is loaded - cache: false, - dataType: 'html', - url: url, - success: function(data) { - self.fixturesCache_[relativeUrl] = data; - }, - error: function(jqXHR, status, errorThrown) { - throw Error('Fixture could not be loaded: ' + url + ' (status: ' + status + ', message: ' + errorThrown.message + ')'); - } - }); -}; - -jasmine.Fixtures.prototype.proxyCallTo_ = function(methodName, passedArguments) { - return this[methodName].apply(this, passedArguments); -}; - - -jasmine.JQuery = function() {}; - -jasmine.JQuery.browserTagCaseIndependentHtml = function(html) { - return jQuery('
').append(html).html(); -}; - -jasmine.JQuery.elementToString = function(element) { - return jQuery('
').append(element.clone()).html(); -}; - -jasmine.JQuery.matchersClass = {}; - -(function(namespace) { - var data = { - spiedEvents: {}, - handlers: [] - }; - - namespace.events = { - spyOn: function(selector, eventName) { - var handler = function(e) { - data.spiedEvents[[selector, eventName]] = e; - }; - jQuery(selector).bind(eventName, handler); - data.handlers.push(handler); - }, - - wasTriggered: function(selector, eventName) { - return !!(data.spiedEvents[[selector, eventName]]); - }, - - cleanUp: function() { - data.spiedEvents = {}; - data.handlers = []; - } - } -})(jasmine.JQuery); - -(function(){ - var jQueryMatchers = { - toHaveClass: function(className) { - return this.actual.hasClass(className); - }, - - toBeVisible: function() { - return this.actual.is(':visible'); - }, - - toBeHidden: function() { - return this.actual.is(':hidden'); - }, - - toBeSelected: function() { - return this.actual.is(':selected'); - }, - - toBeChecked: function() { - return this.actual.is(':checked'); - }, - - toBeEmpty: function() { - return this.actual.is(':empty'); - }, - - toExist: function() { - return this.actual.size() > 0; - }, - - toHaveAttr: function(attributeName, expectedAttributeValue) { - return hasProperty(this.actual.attr(attributeName), expectedAttributeValue); - }, - - toHaveId: function(id) { - return this.actual.attr('id') == id; - }, - - toHaveHtml: function(html) { - return this.actual.html() == jasmine.JQuery.browserTagCaseIndependentHtml(html); - }, - - toHaveText: function(text) { - if (text && jQuery.isFunction(text.test)) { - return text.test(this.actual.text()); - } else { - return this.actual.text() == text; - } - }, - - toHaveValue: function(value) { - return this.actual.val() == value; - }, - - toHaveData: function(key, expectedValue) { - return hasProperty(this.actual.data(key), expectedValue); - }, - - toBe: function(selector) { - return this.actual.is(selector); - }, - - toContain: function(selector) { - return this.actual.find(selector).size() > 0; - }, - - toBeDisabled: function(selector){ - return this.actual.is(':disabled'); - }, - - // tests the existence of a specific event binding - toHandle: function(eventName) { - var events = this.actual.data("events"); - return events && events[eventName].length > 0; - }, - - // tests the existence of a specific event binding + handler - toHandleWith: function(eventName, eventHandler) { - var stack = this.actual.data("events")[eventName]; - var i; - for (i = 0; i < stack.length; i++) { - if (stack[i].handler == eventHandler) { - return true; - } - } - return false; - } - }; - - var hasProperty = function(actualValue, expectedValue) { - if (expectedValue === undefined) { - return actualValue !== undefined; - } - return actualValue == expectedValue; - }; - - var bindMatcher = function(methodName) { - var builtInMatcher = jasmine.Matchers.prototype[methodName]; - - jasmine.JQuery.matchersClass[methodName] = function() { - if (this.actual instanceof jQuery) { - var result = jQueryMatchers[methodName].apply(this, arguments); - this.actual = jasmine.JQuery.elementToString(this.actual); - return result; - } - - if (builtInMatcher) { - return builtInMatcher.apply(this, arguments); - } - - return false; - }; - }; - - for(var methodName in jQueryMatchers) { - bindMatcher(methodName); - } -})(); - -beforeEach(function() { - this.addMatchers(jasmine.JQuery.matchersClass); - this.addMatchers({ - toHaveBeenTriggeredOn: function(selector) { - this.message = function() { - return [ - "Expected event " + this.actual + " to have been triggered on" + selector, - "Expected event " + this.actual + " not to have been triggered on" + selector - ]; - }; - return jasmine.JQuery.events.wasTriggered(selector, this.actual); - } - }) -}); - -afterEach(function() { - jasmine.getFixtures().cleanUp(); - jasmine.JQuery.events.cleanUp(); -}); diff --git a/js/lib/jquery-1.7.1/jquery-1.7.1.js b/js/lib/jquery-1.7.1/jquery-1.7.1.js deleted file mode 100644 index 8ccd0ea7..00000000 --- a/js/lib/jquery-1.7.1/jquery-1.7.1.js +++ /dev/null @@ -1,9266 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function( window, undefined ) { - -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, - - // Matches dashed string for camelizing - rdashAlpha = /-([a-z]|[0-9])/ig, - rmsPrefix = /^-ms-/, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return ( letter + "" ).toUpperCase(); - }, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, - - // [[Class]] -> type pairs - class2type = {}; - -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = ( context ? context.ownerDocument || context : document ); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.7.1", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.add( fn ); - - return this; - }, - - eq: function( i ) { - i = +i; - return i === -1 ? - this.slice( i ) : - this.slice( i, i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.fireWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).off( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery.Callbacks( "once memory" ); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - // A crude way of determining if an object is a window - isWindow: function( obj ) { - return obj && typeof obj === "object" && "setInterval" in obj; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { - break; - } - } - } - } - - return object; - }, - - // Use native String.trim function wherever possible - trim: trim ? - function( text ) { - return text == null ? - "" : - trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array, i ) { - var len; - - if ( array ) { - if ( indexOf ) { - return indexOf.call( array, elem, i ); - } - - len = array.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in array && array[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, key, ret = [], - i = 0, - length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - if ( typeof context === "string" ) { - var tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - - return proxy; - }, - - // Mutifunctional method to get and set values to a collection - // The value/s can optionally be executed if it's a function - access: function( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - jQuery.access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; - }, - - now: function() { - return ( new Date() ).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } - - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, - - browser: {} -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -return jQuery; - -})(); - - -// String to Object flags format cache -var flagsCache = {}; - -// Convert String-formatted flags into Object-formatted ones and store in cache -function createFlags( flags ) { - var object = flagsCache[ flags ] = {}, - i, length; - flags = flags.split( /\s+/ ); - for ( i = 0, length = flags.length; i < length; i++ ) { - object[ flags[i] ] = true; - } - return object; -} - -/* - * Create a callback list using the following parameters: - * - * flags: an optional list of space-separated flags that will change how - * the callback list behaves - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible flags: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( flags ) { - - // Convert flags from String-formatted to Object-formatted - // (we check in cache first) - flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; - - var // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = [], - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Add one or several callbacks to the list - add = function( args ) { - var i, - length, - elem, - type, - actual; - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - // Inspect recursively - add( elem ); - } else if ( type === "function" ) { - // Add if not in unique mode and callback is not in - if ( !flags.unique || !self.has( elem ) ) { - list.push( elem ); - } - } - } - }, - // Fire callbacks - fire = function( context, args ) { - args = args || []; - memory = !flags.memory || [ context, args ]; - firing = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { - memory = true; // Mark as halted - break; - } - } - firing = false; - if ( list ) { - if ( !flags.once ) { - if ( stack && stack.length ) { - memory = stack.shift(); - self.fireWith( memory[ 0 ], memory[ 1 ] ); - } - } else if ( memory === true ) { - self.disable(); - } else { - list = []; - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - var length = list.length; - add( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away, unless previous - // firing was halted (stopOnFalse) - } else if ( memory && memory !== true ) { - firingStart = length; - fire( memory[ 0 ], memory[ 1 ] ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - var args = arguments, - argIndex = 0, - argLength = args.length; - for ( ; argIndex < argLength ; argIndex++ ) { - for ( var i = 0; i < list.length; i++ ) { - if ( args[ argIndex ] === list[ i ] ) { - // Handle firingIndex and firingLength - if ( firing ) { - if ( i <= firingLength ) { - firingLength--; - if ( i <= firingIndex ) { - firingIndex--; - } - } - } - // Remove the element - list.splice( i--, 1 ); - // If we have some unicity property then - // we only need to do this once - if ( flags.unique ) { - break; - } - } - } - } - } - return this; - }, - // Control if a given callback is in the list - has: function( fn ) { - if ( list ) { - var i = 0, - length = list.length; - for ( ; i < length; i++ ) { - if ( fn === list[ i ] ) { - return true; - } - } - } - return false; - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory || memory === true ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( stack ) { - if ( firing ) { - if ( !flags.once ) { - stack.push( [ context, args ] ); - } - } else if ( !( flags.once && memory ) ) { - fire( context, args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!memory; - } - }; - - return self; -}; - - - - -var // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - - Deferred: function( func ) { - var doneList = jQuery.Callbacks( "once memory" ), - failList = jQuery.Callbacks( "once memory" ), - progressList = jQuery.Callbacks( "memory" ), - state = "pending", - lists = { - resolve: doneList, - reject: failList, - notify: progressList - }, - promise = { - done: doneList.add, - fail: failList.add, - progress: progressList.add, - - state: function() { - return state; - }, - - // Deprecated - isResolved: doneList.fired, - isRejected: failList.fired, - - then: function( doneCallbacks, failCallbacks, progressCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); - return this; - }, - always: function() { - deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); - return this; - }, - pipe: function( fnDone, fnFail, fnProgress ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ], - progress: [ fnProgress, "notify" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - obj = promise; - } else { - for ( var key in promise ) { - obj[ key ] = promise[ key ]; - } - } - return obj; - } - }, - deferred = promise.promise({}), - key; - - for ( key in lists ) { - deferred[ key ] = lists[ key ].fire; - deferred[ key + "With" ] = lists[ key ].fireWith; - } - - // Handle state - deferred.done( function() { - state = "resolved"; - }, failList.disable, progressList.lock ).fail( function() { - state = "rejected"; - }, doneList.disable, progressList.lock ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( firstParam ) { - var args = sliceDeferred.call( arguments, 0 ), - i = 0, - length = args.length, - pValues = new Array( length ), - count = length, - pCount = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(), - promise = deferred.promise(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - deferred.resolveWith( deferred, args ); - } - }; - } - function progressFunc( i ) { - return function( value ) { - pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - deferred.notifyWith( promise, pValues ); - }; - } - if ( length > 1 ) { - for ( ; i < length; i++ ) { - if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); - } else { - --count; - } - } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); - } - return promise; - } -}); - - - - -jQuery.support = (function() { - - var support, - all, - a, - select, - opt, - input, - marginDiv, - fragment, - tds, - events, - eventName, - i, - isSupported, - div = document.createElement( "div" ), - documentElement = document.documentElement; - - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = "
a"; - - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; - } - - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; - - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute("href") === "/a" ), - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // Tests for enctype support on a form(#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", - - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - }); - div.cloneNode( true ).fireEvent( "onclick" ); - } - - // Check if a radio maintains its value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; - - input.setAttribute("checked", "checked"); - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.lastChild ); - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - fragment.removeChild( input ); - fragment.appendChild( div ); - - div.innerHTML = ""; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( window.getComputedStyle ) { - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.style.width = "2px"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } - - // Technique from Juriy Zaytsev - // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for( i in { - submit: 1, - change: 1, - focusin: 1 - }) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); - } - support[ i + "Bubbles" ] = isSupported; - } - } - - fragment.removeChild( div ); - - // Null elements to avoid leaks in IE - fragment = select = opt = marginDiv = div = input = null; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, outer, inner, table, td, offsetSupport, - conMarginTop, ptlm, vb, style, html, - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - conMarginTop = 1; - ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; - vb = "visibility:hidden;border:0;"; - style = "style='" + ptlm + "border:5px solid #000;padding:0;'"; - html = "
" + - "" + - "
"; - - container = document.createElement("div"); - container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; - body.insertBefore( container, body.firstChild ); - - // Construct the test element - div = document.createElement("div"); - container.appendChild( div ); - - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - div.innerHTML = "
t
"; - tds = div.getElementsByTagName( "td" ); - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Check if empty table cells still have offsetWidth/Height - // (IE <= 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Figure out if the W3C box model works as expected - div.innerHTML = ""; - div.style.width = div.style.paddingLeft = "1px"; - jQuery.boxModel = support.boxModel = div.offsetWidth === 2; - - if ( typeof div.style.zoom !== "undefined" ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); - - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "
"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); - } - - div.style.cssText = ptlm + vb; - div.innerHTML = html; - - outer = div.firstChild; - inner = outer.firstChild; - td = outer.nextSibling.firstChild.firstChild; - - offsetSupport = { - doesNotAddBorder: ( inner.offsetTop !== 5 ), - doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) - }; - - inner.style.position = "fixed"; - inner.style.top = "20px"; - - // safari subtracts parent border width here which is 5px - offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); - inner.style.position = inner.style.top = ""; - - outer.style.overflow = "hidden"; - outer.style.position = "relative"; - - offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); - offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); - - body.removeChild( container ); - div = container = null; - - jQuery.extend( support, offsetSupport ); - }); - - return support; -})(); - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([A-Z])/g; - -jQuery.extend({ - cache: {}, - - // Please use with caution - uuid: 0, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var privateCache, thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, - isEvents = name === "events"; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = ++jQuery.uuid; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - privateCache = thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Users should not attempt to inspect the internal events object using jQuery.data, - // it is undocumented and subject to change. But does anyone listen? No. - if ( isEvents && !thisCache[ name ] ) { - return privateCache.events; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; - }, - - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, l, - - // Reference to internal data cache key - internalKey = jQuery.expando, - - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ internalKey ] : internalKey; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split( " " ); - } - } - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; - } - } - - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - // Ensure that `cache` is not a window object #10080 - if ( jQuery.support.deleteExpando || !cache.setInterval ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } - - // We destroyed the cache and need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ internalKey ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( internalKey ); - } else { - elem[ internalKey ] = null; - } - } - }, - - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } - - return true; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var parts, attr, name, - data = null; - - if ( typeof key === "undefined" ) { - if ( this.length ) { - data = jQuery.data( this[0] ); - - if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) { - attr = this[0].attributes; - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); - - dataAttr( this[0], name, data[ name ] ); - } - } - jQuery._data( this[0], "parsedAttrs", true ); - } - } - - return data; - - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - // Try to fetch any internally stored data first - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - data = dataAttr( this[0], key, data ); - } - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - - } else { - return this.each(function() { - var self = jQuery( this ), - args = [ parts[0], value ]; - - self.triggerHandler( "setData" + parts[1] + "!", args ); - jQuery.data( this, key, value ); - self.triggerHandler( "changeData" + parts[1] + "!", args ); - }); - } - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - jQuery.isNumeric( data ) ? parseFloat( data ) : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery._data( elem, deferDataKey ); - if ( defer && - ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && - ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery._data( elem, queueDataKey ) && - !jQuery._data( elem, markDataKey ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.fire(); - } - }, 0 ); - } -} - -jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = ( type || "fx" ) + "mark"; - jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); - if ( count ) { - jQuery._data( elem, key, count ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - - queue: function( elem, type, data ) { - var q; - if ( elem ) { - type = ( type || "fx" ) + "queue"; - q = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - q.push( data ); - } - } - return q || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - hooks = {}; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - jQuery._data( elem, type + ".run", hooks ); - fn.call( elem, function() { - jQuery.dequeue( elem, type ); - }, hooks ); - } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue " + type + ".run", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) { - return jQuery.queue( this[0], type ); - } - return this.each(function() { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; - } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { - count++; - tmp.add( resolve ); - } - } - resolve(); - return defer.promise(); - } -}); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - nodeHook, boolHook, fixSpecified; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.attr ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.prop ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classNames, i, l, elem, - setClass, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call(this, j, this.className) ); - }); - } - - if ( value && typeof value === "string" ) { - classNames = value.split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className && classNames.length === 1 ) { - elem.className = value; - - } else { - setClass = " " + elem.className + " "; - - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { - setClass += classNames[ c ] + " "; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classNames, i, l, elem, className, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call(this, j, this.className) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - classNames = ( value || "" ).split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - className = (" " + elem.className + " ").replace( rclass, " " ); - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[ c ] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var hooks, ret, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var self = jQuery(this), val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, i, max, option, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - i = one ? index : 0; - max = one ? index + 1 : options.length; - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attr: function( elem, name, value, pass ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, "" + value ); - return value; - } - - } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - ret = elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var propName, attrNames, name, l, - i = 0; - - if ( value && elem.nodeType === 1 ) { - attrNames = value.toLowerCase().split( rspace ); - l = attrNames.length; - - for ( ; i < l; i++ ) { - name = attrNames[ i ]; - - if ( name ) { - propName = jQuery.propFix[ name ] || name; - - // See #9699 for explanation of this approach (setting first, then removal) - jQuery.attr( elem, name, "" ); - elem.removeAttribute( getSetAttribute ? name : propName ); - - // Set corresponding property to false for boolean attributes - if ( rboolean.test( name ) && propName in elem ) { - elem[ propName ] = false; - } - } - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - }, - // Use the value property for back compat - // Use the nodeHook for button elements in IE6/7 (#1954) - value: { - get: function( elem, name ) { - if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { - return nodeHook.get( elem, name ); - } - return name in elem ? - elem.value : - null; - }, - set: function( elem, value, name ) { - if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { - return nodeHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } -}); - -// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) -jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - // Fall back to attribute presence where some booleans are not supported - var attrNode, - property = jQuery.prop( elem, name ); - return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = true; - } - - elem.setAttribute( name, name.toLowerCase() ); - } - return name; - } -}; - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - fixSpecified = { - name: true, - id: true - }; - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - ret = document.createAttribute( name ); - elem.setAttributeNode( ret ); - } - return ( ret.nodeValue = value + "" ); - } - }; - - // Apply the nodeHook to tabindex - jQuery.attrHooks.tabindex.set = nodeHook.set; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - if ( value === "" ) { - value = "false"; - } - nodeHook.set( elem, value, name ); - } - }; -} - - -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; - } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = "" + value ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); -} - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); -}); - - - - -var rformElems = /^(?:textarea|input|select)$/i, - rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, - rhoverHack = /\bhover(\.\S+)?\b/, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, - quickParse = function( selector ) { - var quick = rquickIs.exec( selector ); - if ( quick ) { - // 0 1 2 3 - // [ _, tag, id, class ] - quick[1] = ( quick[1] || "" ).toLowerCase(); - quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); - } - return quick; - }, - quickIs = function( elem, m ) { - var attrs = elem.attributes || {}; - return ( - (!m[1] || elem.nodeName.toLowerCase() === m[1]) && - (!m[2] || (attrs.id || {}).value === m[2]) && - (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) - ); - }, - hoverHack = function( events ) { - return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); - }; - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - add: function( elem, types, handler, data, selector ) { - - var elemData, eventHandle, events, - t, tns, type, namespaces, handleObj, - handleObjIn, quick, handlers, special; - - // Don't attach events to noData or text/comment nodes (allow plain objects tho) - if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - events = elemData.events; - if ( !events ) { - elemData.events = events = {}; - } - eventHandle = elemData.handle; - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = jQuery.trim( hoverHack(types) ).split( " " ); - for ( t = 0; t < types.length; t++ ) { - - tns = rtypenamespace.exec( types[t] ) || []; - type = tns[1]; - namespaces = ( tns[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: tns[1], - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - quick: quickParse( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - handlers = events[ type ]; - if ( !handlers ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - t, tns, type, origType, namespaces, origCount, - j, events, special, handle, eventType, handleObj; - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = jQuery.trim( hoverHack( types || "" ) ).split(" "); - for ( t = 0; t < types.length; t++ ) { - tns = rtypenamespace.exec( types[t] ) || []; - type = origType = tns[1]; - namespaces = tns[2]; - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector? special.delegateType : special.bindType ) || type; - eventType = events[ type ] || []; - origCount = eventType.length; - namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; - - // Remove matching events - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !namespaces || namespaces.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - eventType.splice( j--, 1 ); - - if ( handleObj.selector ) { - eventType.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( eventType.length === 0 && origCount !== eventType.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery.removeData( elem, [ "events", "handle" ], true ); - } - }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, - - trigger: function( event, data, elem, onlyHandlers ) { - // Don't do events on text and comment nodes - if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { - return; - } - - // Event object or event type - var type = event.type || event, - namespaces = [], - cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "!" ) >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; - } - - if ( type.indexOf( "." ) >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } - - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.isTrigger = true; - event.exclusive = exclusive; - event.namespace = namespaces.join( "." ); - event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; - ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; - - // Handle a global trigger - if ( !elem ) { - - // TODO: Stop taunting the data cache; remove global events and always attach to document - cache = jQuery.cache; - for ( i in cache ) { - if ( cache[ i ].events && cache[ i ].events[ type ] ) { - jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); - } - } - return; - } - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data != null ? jQuery.makeArray( data ) : []; - data.unshift( event ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - eventPath = [[ elem, special.bindType || type ]]; - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; - old = null; - for ( ; cur; cur = cur.parentNode ) { - eventPath.push([ cur, bubbleType ]); - old = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( old && old === elem.ownerDocument ) { - eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); - } - } - - // Fire handlers on the event path - for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { - - cur = eventPath[i][0]; - event.type = eventPath[i][1]; - - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - // Note that this is a bare JS function and not a jQuery handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - // IE<9 dies on focus/blur to hidden element (#1486) - if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; - - if ( old ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( old ) { - elem[ ontype ] = old; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event || window.event ); - - var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), - delegateCount = handlers.delegateCount, - args = [].slice.call( arguments, 0 ), - run_all = !event.exclusive && !event.namespace, - handlerQueue = [], - i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Determine handlers that should run if there are delegated events - // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861) - if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) { - - // Pregenerate a single jQuery object for reuse with .is() - jqcur = jQuery(this); - jqcur.context = this.ownerDocument || this; - - for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { - selMatch = {}; - matches = []; - jqcur[0] = cur; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - sel = handleObj.selector; - - if ( selMatch[ sel ] === undefined ) { - selMatch[ sel ] = ( - handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) - ); - } - if ( selMatch[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, matches: matches }); - } - } - } - - // Add the remaining (directly-bound) handlers - if ( handlers.length > delegateCount ) { - handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); - } - - // Run delegates first; they may want to stop propagation beneath us - for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { - matched = handlerQueue[ i ]; - event.currentTarget = matched.elem; - - for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { - handleObj = matched.matches[ j ]; - - // Triggered event must either 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { - - event.data = handleObj.data; - event.handleObj = handleObj; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - return event.result; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** - props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, - originalEvent = event, - fixHook = jQuery.event.fixHooks[ event.type ] || {}, - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = jQuery.Event( originalEvent ); - - for ( i = copy.length; i; ) { - prop = copy[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Target should not be a text node (#504, Safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) - if ( event.metaKey === undefined ) { - event.metaKey = event.ctrlKey; - } - - return fixHook.filter? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady - }, - - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - - focus: { - delegateType: "focusin" - }, - blur: { - delegateType: "focusout" - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, - - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -// Some plugins are using, but it's undocumented/deprecated and will be removed. -// The 1.7 special event interface should provide all the hooks needed now. -jQuery.event.handle = jQuery.event.dispatch; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // otherwise set the returnValue property of the original event to false (IE) - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var target = this, - related = event.relatedTarget, - handleObj = event.handleObj, - selector = handleObj.selector, - ret; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !form._submit_attached ) { - jQuery.event.add( form, "submit._submit", function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - }); - form._submit_attached = true; - } - }); - // return undefined since we don't need an event listener - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - jQuery.event.simulate( "change", this, event, true ); - } - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - elem._change_attached = true; - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on.call( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - var handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( var type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - live: function( types, data, fn ) { - jQuery( this.context ).on( types, this.selector, data, fn ); - return this; - }, - die: function( types, fn ) { - jQuery( this.context ).off( types, this.selector || "**", fn ); - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; - } - - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } - - if ( rkeyEvent.test( name ) ) { - jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; - } - - if ( rmouseEvent.test( name ) ) { - jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; - } -}); - - - -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - expando = "sizcache" + (Math.random() + '').replace('.', ''), - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rReturn = /\r\n/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - } while ( m ); - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context, seed ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set, seed ); - } - } - - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } - - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray( set ); - - } else { - prune = false; - } - - while ( parts.length ) { - cur = parts.pop(); - pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } - - return results; -}; - -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; - -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set, i, len, match, type, left; - - if ( !expr ) { - return []; - } - - for ( i = 0, len = Expr.order.length; i < len; i++ ) { - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } - - return { set: set, expr: expr }; -}; - -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - type, found, item, filter, left, - i, pass, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); - - while ( expr && set.length ) { - for ( type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - filter = Expr.filter[ type ]; - left = match[1]; - - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - pass = not ^ found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Utility function for retreiving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -var getText = Sizzle.getText = function( elem ) { - var i, node, - nodeType = elem.nodeType, - ret = ""; - - if ( nodeType ) { - if ( nodeType === 1 || nodeType === 9 ) { - // Use textContent || innerText for elements - if ( typeof elem.textContent === 'string' ) { - return elem.textContent; - } else if ( typeof elem.innerText === 'string' ) { - // Replace IE's carriage returns - return elem.innerText.replace( rReturn, '' ); - } else { - // Traverse it's children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - } else { - - // If no nodeType, this is expected to be an array - for ( i = 0; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - if ( node.nodeType !== 8 ) { - ret += getText( node ); - } - } - } - return ret; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } - }, - - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, - - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, - - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } - } - }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, - - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, - - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } - - match[2] = match[2].replace(/^\+|\s*/g, ''); - - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - - if ( !inplace ) { - result.push.apply( result, ret ); - } - - return false; - } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - - POS: function( match ) { - match.unshift( true ); - - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, - - disabled: function( elem ) { - return elem.disabled === true; - }, - - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - parent: function( elem ) { - return !!elem.firstChild; - }, - - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, - - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, - - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, - - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, - - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, - - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, - - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, - - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, - - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, - - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; - - } else if ( name === "not" ) { - var not = match[3]; - - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); - } - }, - - CHILD: function( elem, match ) { - var first, last, - doneName, parent, cache, - count, diff, - type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - first = match[2]; - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - doneName = match[0]; - parent = elem.parentNode; - - if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { - count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent[ expando ] = doneName; - } - - diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Sizzle.attr ? - Sizzle.attr( elem, name ) : - Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - !type && Sizzle.attr ? - result != null : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder, siblingCheck; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } - - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; - - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; - } - - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - - cur = bup; - - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } - - al = ap.length; - bl = bp.length; - - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } - - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; - - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } - - var cur = a.nextSibling; - - while ( cur ) { - if ( cur === b ) { - return -1; - } - - cur = cur.nextSibling; - } - - return 1; - }; -} - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; - - form.innerHTML = ""; - - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; - } - }; - - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - - // release memory in IE - root = form = null; -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = ""; - - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } - - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "

"; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } - - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - // release memory in IE - div = null; - })(); -} - -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; - - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } - - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); - - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } - - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem[ expando ] = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem[ expando ] = doneName; - elem.sizset = i; - } - - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} - -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function( selector, context, seed ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet, seed ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -// Override sizzle attribute retrieval -Sizzle.attr = jQuery.attr; -Sizzle.selectors.attrMap = {}; -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})(); - - -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.POS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; - - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } - - var ret = this.pushStack( "", "find", selector ), - length, n, r; - - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - POS.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array (deprecated as of jQuery 1.7) - if ( jQuery.isArray( selectors ) ) { - var level = 1; - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( i = 0; i < selectors.length; i++ ) { - - if ( jQuery( cur ).is( selectors[ i ] ) ) { - ret.push({ selector: selectors[ i ], elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; - - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } - } - } - } - - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; - - return this.pushStack( ret, "closest", selectors ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, slice.call( arguments ).join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); -} - - - - -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /", "" ], - legend: [ 1, "
", "
" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - col: [ 2, "", "
" ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }, - safeFragment = createSafeFragment( document ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and