upjs-rails 0.11.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -1
  3. data/dist/up.js +138 -81
  4. data/dist/up.min.js +2 -2
  5. data/lib/assets/javascripts/up/boot.js.coffee +3 -0
  6. data/lib/assets/javascripts/up/browser.js.coffee +42 -26
  7. data/lib/assets/javascripts/up/flow.js.coffee +6 -4
  8. data/lib/assets/javascripts/up/history.js.coffee +1 -1
  9. data/lib/assets/javascripts/up/modal.js.coffee +4 -4
  10. data/lib/assets/javascripts/up/motion.js.coffee +6 -4
  11. data/lib/assets/javascripts/up/proxy.js.coffee +2 -1
  12. data/lib/assets/javascripts/up/util.js.coffee +61 -32
  13. data/lib/assets/javascripts/up.js.coffee +1 -10
  14. data/lib/upjs/rails/version.rb +1 -1
  15. data/spec_app/config/environments/development.rb +1 -1
  16. data/spec_app/spec/javascripts/helpers/reset_path.js.coffee +3 -2
  17. data/spec_app/spec/javascripts/up/flow_spec.js.coffee +1 -1
  18. data/spec_app/spec/javascripts/up/history_spec.js.coffee +53 -47
  19. data/spec_app/spec/javascripts/up/link_spec.js.coffee +1 -1
  20. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +4 -4
  21. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +18 -9
  22. data/spec_app/vendor/assets/bower_components/jasmine/.bower.json +43 -7
  23. data/spec_app/vendor/assets/bower_components/jasmine/CONTRIBUTING.md +26 -17
  24. data/spec_app/vendor/assets/bower_components/jasmine/README.md +27 -18
  25. data/spec_app/vendor/assets/bower_components/jasmine/RELEASE.md +15 -5
  26. data/spec_app/vendor/assets/bower_components/jasmine/bower.json +41 -0
  27. data/spec_app/vendor/assets/bower_components/jasmine/lib/console/console.js +27 -3
  28. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot.js +10 -9
  29. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/{src → lib/jasmine_examples}/Player.js +0 -0
  30. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/{src → lib/jasmine_examples}/Song.js +0 -0
  31. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine-html.js +76 -20
  32. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.css +15 -18
  33. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.js +1399 -694
  34. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/json2.js +73 -62
  35. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/node_boot.js +1 -1
  36. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.js +29 -31
  37. data/spec_app/vendor/assets/bower_components/jasmine/package.json +18 -7
  38. data/spec_app/vendor/assets/bower_components/jasmine-ajax/.bower.json +11 -13
  39. data/spec_app/vendor/assets/bower_components/jasmine-ajax/MIT.LICENSE +1 -1
  40. data/spec_app/vendor/assets/bower_components/jasmine-ajax/README.markdown +198 -125
  41. data/spec_app/vendor/assets/bower_components/jasmine-ajax/bower.json +9 -10
  42. data/spec_app/vendor/assets/bower_components/jasmine-ajax/lib/mock-ajax.js +250 -59
  43. data/spec_app/vendor/assets/bower_components/jasmine-ajax/package.json +9 -4
  44. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.0.2.md +50 -0
  45. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.99.md +14 -0
  46. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.0.md +28 -0
  47. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.0.md +24 -0
  48. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.1.md +23 -0
  49. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.2.0.md +20 -0
  50. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.bower.json +4 -4
  51. data/spec_app/vendor/assets/bower_components/jasmine-fixture/bower.json +1 -1
  52. data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.js +4 -4
  53. data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.min.js +2 -2
  54. data/spec_app/vendor/assets/bower_components/jasmine-jquery/.bower.json +4 -4
  55. data/spec_app/vendor/assets/bower_components/jasmine-jquery/Gruntfile.js +17 -1
  56. data/spec_app/vendor/assets/bower_components/jasmine-jquery/{MIT.LICENSE → LICENSE} +0 -0
  57. data/spec_app/vendor/assets/bower_components/jasmine-jquery/README.md +14 -9
  58. data/spec_app/vendor/assets/bower_components/jasmine-jquery/bower.json +0 -1
  59. data/spec_app/vendor/assets/bower_components/jasmine-jquery/lib/jasmine-jquery.js +35 -10
  60. data/spec_app/vendor/assets/bower_components/jasmine-jquery/package.json +33 -24
  61. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_checkbox_with_checked.html +6 -0
  62. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +61 -1
  63. data/spec_app/vendor/assets/bower_components/jquery/.bower.json +5 -4
  64. data/spec_app/vendor/assets/bower_components/jquery/bower.json +2 -1
  65. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.js +9 -4
  66. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -4
  67. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -1
  68. data/spec_app/vendor/assets/bower_components/jquery/src/core.js +6 -1
  69. metadata +14 -175
  70. data/spec_app/vendor/assets/bower_components/jasmine/.gitignore +0 -24
  71. data/spec_app/vendor/assets/bower_components/jasmine/.gitmodules +0 -3
  72. data/spec_app/vendor/assets/bower_components/jasmine/.jshintrc +0 -9
  73. data/spec_app/vendor/assets/bower_components/jasmine/.npmignore +0 -21
  74. data/spec_app/vendor/assets/bower_components/jasmine/.rspec +0 -1
  75. data/spec_app/vendor/assets/bower_components/jasmine/.travis.yml +0 -51
  76. data/spec_app/vendor/assets/bower_components/jasmine/Gemfile +0 -12
  77. data/spec_app/vendor/assets/bower_components/jasmine/Gruntfile.js +0 -53
  78. data/spec_app/vendor/assets/bower_components/jasmine/Rakefile +0 -18
  79. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.0.0.zip +0 -0
  80. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.1.0.zip +0 -0
  81. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.2.0.zip +0 -0
  82. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.3.0.zip +0 -0
  83. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.3.1.zip +0 -0
  84. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.0.zip +0 -0
  85. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.1.zip +0 -0
  86. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.2.zip +0 -0
  87. data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.3.zip +0 -0
  88. data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/compass.js +0 -10
  89. data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/compress.js +0 -66
  90. data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/concat.js +0 -61
  91. data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/jshint.js +0 -11
  92. data/spec_app/vendor/assets/bower_components/jasmine/grunt/tasks/build_standalone.js +0 -31
  93. data/spec_app/vendor/assets/bower_components/jasmine/grunt/tasks/version.js +0 -14
  94. data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/SpecRunner.html.jst +0 -26
  95. data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/licenseBanner.js.jst +0 -22
  96. data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/version.rb.jst +0 -9
  97. data/spec_app/vendor/assets/bower_components/jasmine/images/__init__.py +0 -0
  98. data/spec_app/vendor/assets/bower_components/jasmine/jasmine-core.gemspec +0 -23
  99. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/__init__.py +0 -1
  100. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot/boot.js +0 -120
  101. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot/node_boot.js +0 -19
  102. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/core.py +0 -60
  103. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/spec/PlayerSpec.js +0 -60
  104. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/spec/SpecHelper.js +0 -15
  105. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/spec/PlayerSpec.js +0 -58
  106. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/spec/SpecHelper.js +0 -15
  107. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/src/Player.js +0 -22
  108. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/src/Song.js +0 -7
  109. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/version.rb +0 -9
  110. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.rb +0 -53
  111. data/spec_app/vendor/assets/bower_components/jasmine/release_notes/2.0.1.md +0 -70
  112. data/spec_app/vendor/assets/bower_components/jasmine/release_notes/2.0.2.md +0 -25
  113. data/spec_app/vendor/assets/bower_components/jasmine/release_notes/20.md +0 -179
  114. data/spec_app/vendor/assets/bower_components/jasmine/setup.py +0 -47
  115. data/spec_app/vendor/assets/bower_components/jasmine/spec/console/ConsoleReporterSpec.js +0 -239
  116. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/AnySpec.js +0 -46
  117. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/CallTrackerSpec.js +0 -105
  118. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ClockSpec.js +0 -445
  119. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/DelayedFunctionSchedulerSpec.js +0 -246
  120. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/EnvSpec.js +0 -85
  121. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExceptionFormatterSpec.js +0 -63
  122. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExceptionsSpec.js +0 -68
  123. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExpectationResultSpec.js +0 -61
  124. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExpectationSpec.js +0 -427
  125. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/JsApiReporterSpec.js +0 -214
  126. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/MockDateSpec.js +0 -199
  127. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ObjectContainingSpec.js +0 -70
  128. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/PrettyPrintSpec.js +0 -156
  129. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/QueueRunnerSpec.js +0 -271
  130. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ReportDispatcherSpec.js +0 -40
  131. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpecSpec.js +0 -260
  132. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpySpec.js +0 -67
  133. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpyStrategySpec.js +0 -111
  134. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SuiteSpec.js +0 -216
  135. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/TimerSpec.js +0 -31
  136. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/UtilSpec.js +0 -28
  137. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/CustomMatchersSpec.js +0 -149
  138. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/EnvSpec.js +0 -506
  139. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/SpecRunningSpec.js +0 -306
  140. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/matchersUtilSpec.js +0 -239
  141. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeCloseToSpec.js +0 -51
  142. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeDefinedSpec.js +0 -18
  143. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeFalsySpec.js +0 -38
  144. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeGreaterThanSpec.js +0 -20
  145. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeLessThanSpec.js +0 -20
  146. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeNaNSpec.js +0 -37
  147. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeNullSpec.js +0 -17
  148. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeSpec.js +0 -17
  149. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeTruthySpec.js +0 -38
  150. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeUndefinedSpec.js +0 -18
  151. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toContainSpec.js +0 -26
  152. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toEqualSpec.js +0 -28
  153. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toHaveBeenCalledSpec.js +0 -47
  154. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toHaveBeenCalledWithSpec.js +0 -66
  155. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toMatchSpec.js +0 -34
  156. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toThrowErrorSpec.js +0 -280
  157. data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toThrowSpec.js +0 -99
  158. data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/BrowserFlags.js +0 -23
  159. data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/defineJasmineUnderTest.js +0 -7
  160. data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/nodeDefineJasmineUnderTest.js +0 -33
  161. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/HtmlReporterSpec.js +0 -616
  162. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/HtmlSpecFilterSpec.js +0 -18
  163. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/MatchersHtmlSpec.js +0 -37
  164. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/PrettyPrintHtmlSpec.js +0 -15
  165. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/QueryStringSpec.js +0 -43
  166. data/spec_app/vendor/assets/bower_components/jasmine/spec/html/ResultsNodeSpec.js +0 -62
  167. data/spec_app/vendor/assets/bower_components/jasmine/spec/javascripts/support/jasmine_selenium_runner.yml +0 -16
  168. data/spec_app/vendor/assets/bower_components/jasmine/spec/performance/large_object_test.js +0 -36
  169. data/spec_app/vendor/assets/bower_components/jasmine/spec/performance/performance_test.js +0 -10
  170. data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine-performance.json +0 -9
  171. data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine-performance.yml +0 -9
  172. data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine.json +0 -10
  173. data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine.yml +0 -25
  174. data/spec_app/vendor/assets/bower_components/jasmine/src/console/ConsoleReporter.js +0 -131
  175. data/spec_app/vendor/assets/bower_components/jasmine/src/console/requireConsole.js +0 -12
  176. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Any.js +0 -36
  177. data/spec_app/vendor/assets/bower_components/jasmine/src/core/CallTracker.js +0 -50
  178. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Clock.js +0 -113
  179. data/spec_app/vendor/assets/bower_components/jasmine/src/core/DelayedFunctionScheduler.js +0 -145
  180. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Env.js +0 -341
  181. data/spec_app/vendor/assets/bower_components/jasmine/src/core/ExceptionFormatter.js +0 -29
  182. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Expectation.js +0 -107
  183. data/spec_app/vendor/assets/bower_components/jasmine/src/core/ExpectationResult.js +0 -45
  184. data/spec_app/vendor/assets/bower_components/jasmine/src/core/JsApiReporter.js +0 -73
  185. data/spec_app/vendor/assets/bower_components/jasmine/src/core/MockDate.js +0 -81
  186. data/spec_app/vendor/assets/bower_components/jasmine/src/core/ObjectContaining.js +0 -34
  187. data/spec_app/vendor/assets/bower_components/jasmine/src/core/PrettyPrinter.js +0 -137
  188. data/spec_app/vendor/assets/bower_components/jasmine/src/core/QueueRunner.js +0 -92
  189. data/spec_app/vendor/assets/bower_components/jasmine/src/core/ReportDispatcher.js +0 -35
  190. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Spec.js +0 -126
  191. data/spec_app/vendor/assets/bower_components/jasmine/src/core/SpyStrategy.js +0 -51
  192. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Suite.js +0 -92
  193. data/spec_app/vendor/assets/bower_components/jasmine/src/core/Timer.js +0 -22
  194. data/spec_app/vendor/assets/bower_components/jasmine/src/core/base.js +0 -102
  195. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/matchersUtil.js +0 -181
  196. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/requireMatchers.js +0 -29
  197. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBe.js +0 -13
  198. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeCloseTo.js +0 -18
  199. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeDefined.js +0 -13
  200. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeFalsy.js +0 -13
  201. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeGreaterThan.js +0 -15
  202. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeLessThan.js +0 -14
  203. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeNaN.js +0 -22
  204. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeNull.js +0 -14
  205. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeTruthy.js +0 -14
  206. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeUndefined.js +0 -14
  207. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toContain.js +0 -16
  208. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toEqual.js +0 -20
  209. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toHaveBeenCalled.js +0 -28
  210. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toHaveBeenCalledWith.js +0 -33
  211. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toMatch.js +0 -16
  212. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toThrow.js +0 -46
  213. data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toThrowError.js +0 -156
  214. data/spec_app/vendor/assets/bower_components/jasmine/src/core/requireCore.js +0 -39
  215. data/spec_app/vendor/assets/bower_components/jasmine/src/core/requireInterface.js +0 -59
  216. data/spec_app/vendor/assets/bower_components/jasmine/src/core/util.js +0 -44
  217. data/spec_app/vendor/assets/bower_components/jasmine/src/html/HtmlReporter.js +0 -280
  218. data/spec_app/vendor/assets/bower_components/jasmine/src/html/HtmlSpecFilter.js +0 -12
  219. data/spec_app/vendor/assets/bower_components/jasmine/src/html/QueryString.js +0 -47
  220. data/spec_app/vendor/assets/bower_components/jasmine/src/html/ResultsNode.js +0 -19
  221. data/spec_app/vendor/assets/bower_components/jasmine/src/html/_HTMLReporter.scss +0 -355
  222. data/spec_app/vendor/assets/bower_components/jasmine/src/html/jasmine.scss +0 -1
  223. data/spec_app/vendor/assets/bower_components/jasmine/src/html/requireHtml.js +0 -6
  224. data/spec_app/vendor/assets/bower_components/jasmine/src/templates/example_project_jasmine_tags.html.erb +0 -3
  225. data/spec_app/vendor/assets/bower_components/jasmine/src/templates/version.js.erb +0 -7
  226. data/spec_app/vendor/assets/bower_components/jasmine/src/templates/version.rb.erb +0 -6
  227. data/spec_app/vendor/assets/bower_components/jasmine/src/version.js +0 -3
  228. data/spec_app/vendor/assets/bower_components/jasmine/travis-core-script.sh +0 -14
  229. data/spec_app/vendor/assets/bower_components/jasmine/travis-docs-script.sh +0 -5
  230. data/spec_app/vendor/assets/bower_components/jasmine/travis-node-script.sh +0 -6
  231. data/spec_app/vendor/assets/bower_components/jasmine-ajax/Gruntfile.js +0 -63
  232. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/boot.js +0 -11
  233. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/fakeRequest.js +0 -262
  234. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/mockAjax.js +0 -45
  235. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/paramParser.js +0 -56
  236. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requestStub.js +0 -42
  237. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requestTracker.js +0 -51
  238. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requireAjax.js +0 -44
  239. data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/stubTracker.js +0 -24
@@ -22,12 +22,14 @@ up.util = (->
22
22
  cached = true
23
23
  cache = func(args...)
24
24
 
25
- ajax = (options) ->
26
- if options.selector
27
- options.headers = {
28
- "X-Up-Selector": options.selector
25
+ ajax = (request) ->
26
+ request = copy(request)
27
+ if request.selector
28
+ request.headers = {
29
+ "X-Up-Selector": request.selector
29
30
  }
30
- $.ajax options
31
+ # Delegate to jQuery
32
+ $.ajax(request)
31
33
 
32
34
  ###*
33
35
  @method up.util.isStandardPort
@@ -36,7 +38,6 @@ up.util = (->
36
38
  isStandardPort = (protocol, port) ->
37
39
  ((port == "" || port == "80") && protocol == 'http:') || (port == "443" && protocol == 'https:')
38
40
 
39
-
40
41
  ###*
41
42
  Normalizes URLs, relative paths and absolute paths to a full URL
42
43
  that can be checked for equality with other normalized URL.
@@ -112,32 +113,52 @@ up.util = (->
112
113
  element = document.createElement(tagName)
113
114
  element.innerHTML = html if isPresent(html)
114
115
  element
115
-
116
+
117
+ ###*
118
+ @method up.debug
119
+ @protected
120
+ ###
116
121
  debug = (message, args...) ->
117
122
  message = "[UP] #{message}"
118
- console.debug(message, args...)
123
+ up.browser.puts('debug', message, args...)
119
124
 
125
+ ###*
126
+ @method up.warn
127
+ @protected
128
+ ###
120
129
  warn = (message, args...) ->
121
130
  message = "[UP] #{message}"
122
- console.warn(message, args...)
131
+ up.browser.puts('warn', message, args...)
132
+
133
+ ###*
134
+ Throws a fatal error with the given message.
135
+
136
+ - The error will be printed to the [error console](https://developer.mozilla.org/en-US/docs/Web/API/Console/error)
137
+ - An [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) (exception) will be thrown, unwinding the current call stack
138
+ - The error message will be printed in a corner of the screen
139
+
140
+ \#\#\#\# Examples
123
141
 
142
+ up.error('Division by zero')
143
+ up.error('Unexpected result %o', result)
144
+
145
+ @method up.error
146
+ ###
124
147
  error = (args...) ->
125
148
  args[0] = "[UP] #{args[0]}"
126
- console.error(args...)
127
- asString = stringifyConsoleArgs(args)
149
+ up.browser.puts('error', args...)
150
+ asString = evalConsoleTemplate(args...)
128
151
  $error = presence($('.up-error')) || $('<div class="up-error"></div>').prependTo('body')
129
- # $error = $('body')
130
152
  $error.addClass('up-error')
131
153
  $error.text(asString)
132
- # alert "#{asString}\n\nOpen the developer console for details."
133
154
  throw new Error(asString)
134
155
 
135
156
  CONSOLE_PLACEHOLDERS = /\%[odisf]/g
136
157
 
137
- stringifyConsoleArgs = (args) ->
158
+ evalConsoleTemplate = (args...) ->
138
159
  message = args[0]
139
160
  i = 0
140
- maxLength = 50
161
+ maxLength = 80
141
162
  message.replace CONSOLE_PLACEHOLDERS, ->
142
163
  i += 1
143
164
  arg = args[i]
@@ -146,11 +167,19 @@ up.util = (->
146
167
  arg = arg.replace(/\s+/g, ' ')
147
168
  arg = "#{arg.substr(0, maxLength)}…" if arg.length > maxLength
148
169
  arg = "\"#{arg}\""
149
- else if argType == 'number'
170
+ else if argType == 'undefined'
171
+ # JSON.stringify(undefined) is actually undefined
172
+ arg = 'undefined'
173
+ else if argType == 'number' || argType == 'function'
150
174
  arg = arg.toString()
151
175
  else
152
176
  arg = JSON.stringify(arg)
153
- arg = "#{arg.substr(0, maxLength)}…" if arg.length > maxLength
177
+ if arg.length > maxLength
178
+ arg = "#{arg.substr(0, maxLength)} …"
179
+ # For truncated objects or functions, add a trailing brace so
180
+ # long log lines are easier to parse visually
181
+ if argType == 'object' || argType == 'function'
182
+ arg += " }"
154
183
  arg
155
184
 
156
185
  createSelectorFromElement = ($element) ->
@@ -212,13 +241,6 @@ up.util = (->
212
241
 
213
242
  trim = $.trim
214
243
 
215
- keys = Object.keys || (object) ->
216
- result = []
217
- for key in object
218
- if object.hasOwnProperty(key)
219
- result.push(key)
220
- result
221
-
222
244
  each = (collection, block) ->
223
245
  block(item, index) for item, index in collection
224
246
 
@@ -246,7 +268,7 @@ up.util = (->
246
268
 
247
269
  isBlank = (object) ->
248
270
  isMissing(object) || # null or undefined
249
- (isObject(object) && keys(object).length == 0) ||
271
+ (isObject(object) && Object.keys(object).length == 0) ||
250
272
  (object.length == 0) # String, Array, jQuery
251
273
 
252
274
  presence = (object, checker = isPresent) ->
@@ -429,7 +451,7 @@ up.util = (->
429
451
  # @private
430
452
  ###
431
453
  temporaryCss = ($element, css, block) ->
432
- oldCss = $element.css(keys(css))
454
+ oldCss = $element.css(Object.keys(css))
433
455
  $element.css(css)
434
456
  memo = -> $element.css(oldCss)
435
457
  if block
@@ -488,7 +510,7 @@ up.util = (->
488
510
  # the public API `up.motion.animate` already does this.
489
511
  deferred = $.Deferred()
490
512
  transition =
491
- 'transition-property': keys(lastFrame).join(', ')
513
+ 'transition-property': Object.keys(lastFrame).join(', ')
492
514
  'transition-duration': "#{opts.duration}ms"
493
515
  'transition-delay': "#{opts.delay}ms"
494
516
  'transition-timing-function': opts.easing
@@ -507,7 +529,7 @@ up.util = (->
507
529
  deferred
508
530
  else
509
531
  $element.css(lastFrame)
510
- resolvedPromise()
532
+ resolvedDeferred()
511
533
 
512
534
  ANIMATION_PROMISE_KEY = 'up-animation-promise'
513
535
 
@@ -720,7 +742,7 @@ up.util = (->
720
742
  @param {String} [config.log]
721
743
  A prefix for log entries printed by this cache object.
722
744
  ###
723
- cache = (config) ->
745
+ cache = (config = {}) ->
724
746
 
725
747
  store = undefined
726
748
 
@@ -734,6 +756,9 @@ up.util = (->
734
756
  args[0] = "[#{config.log}] #{args[0]}"
735
757
  debug(args...)
736
758
 
759
+ keys = ->
760
+ Object.keys(store)
761
+
737
762
  maxSize = ->
738
763
  if isMissing(config.size)
739
764
  undefined
@@ -761,7 +786,7 @@ up.util = (->
761
786
  key.toString()
762
787
 
763
788
  trim = ->
764
- storeKeys = copy(keys(store))
789
+ storeKeys = copy(keys())
765
790
  size = maxSize()
766
791
  if size && storeKeys.length > size
767
792
  oldestKey = null
@@ -819,6 +844,7 @@ up.util = (->
819
844
  set: set
820
845
  remove: remove
821
846
  clear: clear
847
+ keys: keys
822
848
 
823
849
  config = (factoryOptions = {}) ->
824
850
  hash =
@@ -856,7 +882,6 @@ up.util = (->
856
882
  $match = undefined
857
883
  while ($element = $element.parent()) && $element.length
858
884
  position = $element.css('position')
859
- console.log("Iteration element is %o with position %o", $element, position)
860
885
  if position == 'absolute' || position == 'relative' || $element.is('body')
861
886
  $match = $element
862
887
  break
@@ -948,7 +973,6 @@ up.util = (->
948
973
  clientSize: clientSize
949
974
  only: only
950
975
  trim: trim
951
- keys: keys
952
976
  resolvedPromise: resolvedPromise
953
977
  resolvedDeferred: resolvedDeferred
954
978
  resolvableWhen: resolvableWhen
@@ -961,5 +985,10 @@ up.util = (->
961
985
  unwrapElement: unwrapElement
962
986
  multiSelector: multiSelector
963
987
  emptyJQuery: emptyJQuery
988
+ evalConsoleTemplate: evalConsoleTemplate
964
989
 
965
990
  )()
991
+
992
+ up.error = up.util.error
993
+ up.warn = up.util.warn
994
+ up.debug = up.util.debug
@@ -15,13 +15,4 @@
15
15
  #= require up/tooltip
16
16
  #= require up/navigation
17
17
  #= require up/slot
18
- #= require_self
19
-
20
- up.browser.ensureRecentJquery()
21
-
22
- if up.browser.isSupported()
23
-
24
- up.browser.ensureConsoleExists()
25
-
26
- up.bus.emit('framework:ready')
27
- $(document).on 'ready', -> up.bus.emit('app:ready')
18
+ #= require up/boot
@@ -1,5 +1,5 @@
1
1
  module Upjs
2
2
  module Rails
3
- VERSION = '0.11.0'
3
+ VERSION = '0.11.1'
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ Rails.application.configure do
25
25
  # Debug mode disables concatenation and preprocessing of assets.
26
26
  # This option may cause significant delays in view rendering with a large
27
27
  # number of complex assets.
28
- config.assets.debug = true
28
+ config.assets.debug = false
29
29
 
30
30
  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
31
31
  # yet still be able to expire them through the digest params.
@@ -3,5 +3,6 @@ beforeEach ->
3
3
  @previousTitle = document.title
4
4
 
5
5
  afterEach ->
6
- history.replaceState?({}, @previousTitle, @previousHref)
7
-
6
+ if up.browser.canPushState()
7
+ history.replaceState?({}, @previousTitle, @previousHref)
8
+
@@ -122,7 +122,7 @@ describe 'up.flow', ->
122
122
  @revealedHTML = ''
123
123
  spyOn(up, 'reveal').and.callFake ($revealedElement) =>
124
124
  @revealedHTML = $revealedElement.get(0).outerHTML
125
- u.resolvedPromise()
125
+ u.resolvedDeferred()
126
126
 
127
127
  it 'reveals a new element before it is being replaced', (done) ->
128
128
  @request = up.replace('.middle', '/path', reveal: true)
@@ -14,14 +14,16 @@ describe 'up.history', ->
14
14
 
15
15
  describe '[up-back]', ->
16
16
 
17
- it 'sets an [up-href] attribute to the previous URL and sets the up-restore-scroll attribute to "true"', ->
18
- up.history.push('/one')
19
- up.history.push('/two')
20
- $element = up.ready(affix('a[href="/three"][up-back]').text('text'))
21
- expect($element.attr('href')).toEndWith('/three')
22
- expect($element.attr('up-href')).toEndWith('/one')
23
- expect($element.attr('up-restore-scroll')).toBe('')
24
- expect($element.attr('up-follow')).toBe('')
17
+ if up.browser.canPushState()
18
+
19
+ it 'sets an [up-href] attribute to the previous URL and sets the up-restore-scroll attribute to "true"', ->
20
+ up.history.push('/one')
21
+ up.history.push('/two')
22
+ $element = up.ready(affix('a[href="/three"][up-back]').text('text'))
23
+ expect($element.attr('href')).toEndWith('/three')
24
+ expect($element.attr('up-href')).toEndWith('/one')
25
+ expect($element.attr('up-restore-scroll')).toBe('')
26
+ expect($element.attr('up-follow')).toBe('')
25
27
 
26
28
  it 'does not overwrite an existing up-href or up-restore-scroll attribute'
27
29
 
@@ -29,60 +31,64 @@ describe 'up.history', ->
29
31
 
30
32
  describe 'scroll restauration', ->
31
33
 
32
- afterEach ->
33
- $('.viewport').remove()
34
+ if up.browser.canPushState()
35
+
36
+ afterEach ->
37
+ $('.viewport').remove()
38
+
39
+ it 'restores the scroll position of viewports when the user hits the back button', (done) ->
34
40
 
35
- it 'restores the scroll position of viewports when the user hits the back button', (done) ->
41
+ longContentHtml = """
42
+ <div class="viewport" style="width: 100px; height: 100px; overflow-y: scroll">
43
+ <div class="content" style="height: 1000px"></div>
44
+ </div>
45
+ """
36
46
 
37
- longContentHtml = """
38
- <div class="viewport" style="width: 100px; height: 100px; overflow-y: scroll">
39
- <div class="content" style="height: 1000px"></div>
40
- </div>
41
- """
47
+ respond = (html) =>
48
+ @lastRequest().respondWith
49
+ status: 200
50
+ contentType: 'text/html'
51
+ responseText: longContentHtml
42
52
 
43
- respond = (html) =>
44
- @lastRequest().respondWith
45
- status: 200
46
- contentType: 'text/html'
47
- responseText: longContentHtml
53
+ $viewport = $(longContentHtml).appendTo(document.body)
48
54
 
49
- $viewport = $(longContentHtml).appendTo(document.body)
55
+ up.layout.defaults(viewports: ['.viewport'])
56
+ up.history.defaults(popTargets: ['.viewport'])
50
57
 
51
- up.layout.defaults(viewports: ['.viewport'])
52
- up.history.defaults(popTargets: ['.viewport'])
58
+ $viewport.append(longContentHtml)
53
59
 
54
- $viewport.append(longContentHtml)
60
+ up.replace('.content', '/one')
61
+ respond()
55
62
 
56
- up.replace('.content', '/one')
57
- respond()
58
- $viewport.scrollTop(50)
63
+ $viewport.scrollTop(50)
59
64
 
60
- up.replace('.content', '/two')
61
- respond()
62
- $('.viewport').scrollTop(150)
65
+ up.replace('.content', '/two')
66
+ respond()
63
67
 
64
- up.replace('.content', '/three')
65
- respond()
66
- $('.viewport').scrollTop(250)
68
+ $('.viewport').scrollTop(150)
67
69
 
68
- history.back()
69
- @setTimer 50, =>
70
- respond() # we need to respond since we've never requested /two with the popTarget
71
- expect($('.viewport').scrollTop()).toBe(150)
70
+ up.replace('.content', '/three')
71
+ respond()
72
+ $('.viewport').scrollTop(250)
72
73
 
73
74
  history.back()
74
75
  @setTimer 50, =>
75
- respond() # we need to respond since we've never requested /one with the popTarget
76
- expect($('.viewport').scrollTop()).toBe(50)
76
+ respond() # we need to respond since we've never requested /two with the popTarget
77
+ expect($('.viewport').scrollTop()).toBe(150)
77
78
 
78
- history.forward()
79
+ history.back()
79
80
  @setTimer 50, =>
80
- # No need to respond since we requested /two with the popTarget
81
- # when we went backwards
82
- expect($('.viewport').scrollTop()).toBe(150)
81
+ respond() # we need to respond since we've never requested /one with the popTarget
82
+ expect($('.viewport').scrollTop()).toBe(50)
83
83
 
84
84
  history.forward()
85
85
  @setTimer 50, =>
86
- respond() # we need to respond since we've never requested /three with the popTarget
87
- expect($('.viewport').scrollTop()).toBe(250)
88
- done()
86
+ # No need to respond since we requested /two with the popTarget
87
+ # when we went backwards
88
+ expect($('.viewport').scrollTop()).toBe(150)
89
+
90
+ history.forward()
91
+ @setTimer 50, =>
92
+ respond() # we need to respond since we've never requested /three with the popTarget
93
+ expect($('.viewport').scrollTop()).toBe(250)
94
+ done()
@@ -7,7 +7,7 @@ describe 'up.link', ->
7
7
  describe 'up.follow', ->
8
8
 
9
9
  if up.browser.canPushState()
10
-
10
+
11
11
  it 'loads the given link via AJAX and replaces the response in the given target', (done) ->
12
12
  affix('.before').text('old-before')
13
13
  affix('.middle').text('old-middle')
@@ -9,13 +9,13 @@ describe 'up.motion', ->
9
9
  it 'animates the given element', (done) ->
10
10
  $element = affix('.element').text('content')
11
11
  opacity = -> Number($element.css('opacity'))
12
- up.animate($element, 'fade-in', duration: 100, easing: 'linear')
12
+ up.animate($element, 'fade-in', duration: 200, easing: 'linear')
13
13
 
14
14
  @setTimer 0, ->
15
15
  expect(opacity()).toBeAround(0.0, 0.25)
16
- @setTimer 50, ->
17
- expect(opacity()).toBeAround(0.5, 0.25)
18
16
  @setTimer 100, ->
17
+ expect(opacity()).toBeAround(0.5, 0.25)
18
+ @setTimer 200, ->
19
19
  expect(opacity()).toBeAround(1.0, 0.25)
20
20
  done()
21
21
 
@@ -180,7 +180,7 @@ describe 'up.motion', ->
180
180
 
181
181
  else
182
182
 
183
- it "doesn't animate and hides the first element instead", ->
183
+ it "doesn't animate and hides the old element instead", ->
184
184
  $old = affix('.old').text('old content')
185
185
  $new = affix('.new').text('new content')
186
186
  up.morph($old, $new, 'cross-fade', duration: 1000)
@@ -77,7 +77,7 @@ describe 'up.proxy', ->
77
77
  u.times 2, -> up.proxy.ajax(url: '/foo', method: method, cache: false)
78
78
  expect(jasmine.Ajax.requests.count()).toEqual(2)
79
79
 
80
- u.each ['POST', 'PUT', 'DELETE', 'DESTROY'], (method) ->
80
+ u.each ['POST', 'PUT', 'DELETE'], (method) ->
81
81
 
82
82
  it "does not cache #{method} requests", ->
83
83
  u.times 2, -> up.proxy.ajax(url: '/foo', method: method)
@@ -264,15 +264,24 @@ describe 'up.proxy', ->
264
264
 
265
265
  describe 'up.proxy.preload', ->
266
266
 
267
- it "loads and caches the given link's destination", ->
268
- $link = affix('a[href="/path"]')
269
- up.proxy.preload($link)
270
- expect(u.isPromise(up.proxy.get(url: '/path'))).toBe(true)
267
+ if up.browser.canPushState()
271
268
 
272
- it "does not load a link whose method has side-effects", ->
273
- $link = affix('a[href="/path"][data-method="post"]')
274
- up.proxy.preload($link)
275
- expect(up.proxy.get(url: '/path')).toBeUndefined()
269
+ it "loads and caches the given link's destination", ->
270
+ $link = affix('a[href="/path"]')
271
+ up.proxy.preload($link)
272
+ expect(u.isPromise(up.proxy.get(url: '/path'))).toBe(true)
273
+
274
+ it "does not load a link whose method has side-effects", ->
275
+ $link = affix('a[href="/path"][data-method="post"]')
276
+ up.proxy.preload($link)
277
+ expect(up.proxy.get(url: '/path')).toBeUndefined()
278
+
279
+ else
280
+
281
+ it "does nothing", ->
282
+ $link = affix('a[href="/path"]')
283
+ up.proxy.preload($link)
284
+ expect(jasmine.Ajax.requests.count()).toBe(0)
276
285
 
277
286
  describe 'up.proxy.get', ->
278
287
 
@@ -1,14 +1,50 @@
1
1
  {
2
- "name": "jasmine",
3
- "homepage": "https://github.com/pivotal/jasmine",
4
- "version": "2.0.4",
5
- "_release": "2.0.4",
2
+ "name": "jasmine-core",
3
+ "version": "2.3.4",
4
+ "homepage": "http://jasmine.github.io",
5
+ "authors": [
6
+ "slackersoft <gregg@slackersoft.net>"
7
+ ],
8
+ "description": "Official packaging of Jasmine's core files",
9
+ "keywords": [
10
+ "test",
11
+ "jasmine",
12
+ "tdd",
13
+ "bdd"
14
+ ],
15
+ "license": "MIT",
16
+ "moduleType": "globals",
17
+ "main": "lib/jasmine-core/jasmine.js",
18
+ "ignore": [
19
+ "**/.*",
20
+ "dist",
21
+ "grunt",
22
+ "node_modules",
23
+ "pkg",
24
+ "release_notes",
25
+ "spec",
26
+ "src",
27
+ "Gemfile",
28
+ "Gemfile.lock",
29
+ "Rakefile",
30
+ "jasmine-core.gemspec",
31
+ "*.sh",
32
+ "*.py",
33
+ "Gruntfile.js",
34
+ "lib/jasmine-core.rb",
35
+ "lib/jasmine-core/boot/",
36
+ "lib/jasmine-core/spec",
37
+ "lib/jasmine-core/version.rb",
38
+ "lib/jasmine-core/*.py",
39
+ "sauce_connect.log"
40
+ ],
41
+ "_release": "2.3.4",
6
42
  "_resolution": {
7
43
  "type": "version",
8
- "tag": "v2.0.4",
9
- "commit": "d1b4a64a573d69f6cfd07c862a34402efdd0ea06"
44
+ "tag": "v2.3.4",
45
+ "commit": "651426b6583020e2f3fdae56d2873514963ba65e"
10
46
  },
11
47
  "_source": "git://github.com/pivotal/jasmine.git",
12
- "_target": "~2.0",
48
+ "_target": "~2",
13
49
  "_originalSource": "jasmine"
14
50
  }
@@ -1,23 +1,28 @@
1
1
  # Developing for Jasmine Core
2
2
 
3
- We welcome your contributions - Thanks for helping make Jasmine a better project for everyone. Please review the backlog and discussion lists (the main group - [http://groups.google.com/group/jasmine-js](http://groups.google.com/group/jasmine-js) and the developer's list - [http://groups.google.com/group/jasmine-js-dev](http://groups.google.com/group/jasmine-js-dev)) before starting work - what you're looking for may already have been done. If it hasn't, the community can help make your contribution better.
3
+ We welcome your contributions! Thanks for helping make Jasmine a better project for everyone. Please review the backlog and discussion lists before starting work. What you're looking for may already have been done. If it hasn't, the community can help make your contribution better.
4
+
5
+ ## Links
6
+
7
+ - [Jasmine Google Group](http://groups.google.com/group/jasmine-js)
8
+ - [Jasmine-dev Google Group](http://groups.google.com/group/jasmine-js-dev)
9
+ - [Jasmine on PivotalTracker](https://www.pivotaltracker.com/n/projects/10606)
4
10
 
5
11
  ## General Workflow
6
12
 
7
13
  Please submit pull requests via feature branches using the semi-standard workflow of:
8
14
 
9
- 1. Fork it
10
- 1. Clone your fork: (`git clone git@github.com:yourUserName/jasmine.git`)
11
- 1. Change directory: (`cd jasmine`)
12
- 1. Asign original repository to a remote named 'upstream': (`git remote add
13
- upstream https://github.com/pivotal/jasmine.git`)
14
- 1. Pull in changes not present in your local repository: (`git fetch upstream`)
15
- 1. Create your feature branch (`git checkout -b my-new-feature`)
16
- 1. Commit your changes (`git commit -am 'Add some feature'`)
17
- 1. Push to the branch (`git push origin my-new-feature`)
18
- 1. Create new Pull Request
15
+ ```bash
16
+ git clone git@github.com:yourUserName/jasmine.git # Clone your fork
17
+ cd jasmine # Change directory
18
+ git remote add upstream https://github.com/jasmine/jasmine.git # Assign original repository to a remote named 'upstream'
19
+ git fetch upstream # Pull in changes not present in your local repository
20
+ git checkout -b my-new-feature # Create your feature branch
21
+ git commit -am 'Add some feature' # Commit your changes
22
+ git push origin my-new-feature # Push to the branch
23
+ ```
19
24
 
20
- We favor pull requests with very small, single commits with a single purpose.
25
+ Once you've pushed a feature branch to your forked repo, you're ready to open a pull request. We favor pull requests with very small, single commits with a single purpose.
21
26
 
22
27
  ## Background
23
28
 
@@ -67,7 +72,11 @@ To install the Ruby dependencies, you will need Ruby, Rubygems, and Bundler avai
67
72
 
68
73
  $ bundle
69
74
 
70
- ...will install all of the Ruby dependencies.
75
+ ...will install all of the Ruby dependencies. If the ffi gem fails to build its native extensions, you may need to manually install some system dependencies. On Ubuntu:
76
+
77
+ $ apt-get install gcc ruby ruby-dev libxml2 libxml2-dev libxslt1-dev
78
+
79
+ ...should get you to the point that `bundle` can install everything.
71
80
 
72
81
  To install the Node dependencies, you will need Node.js, Npm, and [Grunt](http://gruntjs.com/), the [grunt-cli](https://github.com/gruntjs/grunt-cli) and ensure that `grunt` is on your path.
73
82
 
@@ -94,13 +103,13 @@ Follow these tips and your pull request, patch, or suggestion is much more likel
94
103
 
95
104
  ### Running Specs
96
105
 
97
- Jasmine uses the [Jasmine Ruby gem](http://github.com/pivotal/jasmine-gem) to test itself in browser.
106
+ Jasmine uses the [Jasmine Ruby gem](http://github.com/jasmine/jasmine-gem) to test itself in browser.
98
107
 
99
108
  $ rake jasmine
100
109
 
101
110
  ...and then visit `http://localhost:8888` to run specs.
102
111
 
103
- Jasmine uses Node.js with a custom runner to test outside of a browser.
112
+ Jasmine uses the [Jasmine NPM package](http://github.com/jasmine/jasmine-npm) to test itself in a Node.js/npm environment.
104
113
 
105
114
  $ grunt execSpecsInNode
106
115
 
@@ -114,8 +123,8 @@ Jasmine uses Node.js with a custom runner to test outside of a browser.
114
123
 
115
124
  ## Submitting a Pull Request
116
125
  1. Revert your changes to `jasmine.js` and `jasmine-html.js`
117
- * We do this because `jasmine.js` and `jasmine-html.js` are auto-generated (as you've seen in the previous steps) and accepting multiple pull requests when this auto-generated file changes causes lots of headaches.
118
- 1. When we accept your pull request, we will generate these files as a separate commit and merge the entire branch into master.
126
+ * We do this because `jasmine.js` and `jasmine-html.js` are auto-generated (as you've seen in the previous steps) and accepting multiple pull requests when this auto-generated file changes causes lots of headaches
127
+ 1. When we accept your pull request, we will generate these files as a separate commit and merge the entire branch into master
119
128
 
120
129
  Note that we use Travis for Continuous Integration. We only accept green pull requests.
121
130