puffing-billy 2.4.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/billy/browsers/capybara.rb +13 -9
  5. data/lib/billy/browsers/watir.rb +4 -2
  6. data/lib/billy/version.rb +1 -1
  7. metadata +29 -80
  8. data/.gitignore +0 -6
  9. data/.rspec +0 -2
  10. data/.travis.yml +0 -36
  11. data/Dockerfile +0 -14
  12. data/Gemfile +0 -4
  13. data/Guardfile +0 -23
  14. data/Rakefile +0 -11
  15. data/bin/proxy.rb +0 -3
  16. data/examples/README.md +0 -1
  17. data/examples/facebook_api.html +0 -59
  18. data/examples/intercept_request.html +0 -10
  19. data/examples/post_api.html +0 -16
  20. data/examples/preflight_request.html +0 -22
  21. data/examples/tumblr_api.html +0 -22
  22. data/examples/tumblr_api_https.html +0 -22
  23. data/lib/tasks/billy.rake +0 -87
  24. data/log/.gitkeep +0 -0
  25. data/puffing-billy.gemspec +0 -39
  26. data/spec/features/examples/facebook_api_spec.rb +0 -23
  27. data/spec/features/examples/intercept_request_spec.rb +0 -31
  28. data/spec/features/examples/post_api_spec.rb +0 -15
  29. data/spec/features/examples/preflight_request_spec.rb +0 -29
  30. data/spec/features/examples/tumblr_api_spec.rb +0 -59
  31. data/spec/lib/billy/browsers/capybara_spec.rb +0 -28
  32. data/spec/lib/billy/cache_spec.rb +0 -158
  33. data/spec/lib/billy/handlers/cache_handler_spec.rb +0 -191
  34. data/spec/lib/billy/handlers/handler_spec.rb +0 -16
  35. data/spec/lib/billy/handlers/proxy_handler_spec.rb +0 -254
  36. data/spec/lib/billy/handlers/request_handler_spec.rb +0 -200
  37. data/spec/lib/billy/handlers/request_log_spec.rb +0 -74
  38. data/spec/lib/billy/handlers/stub_handler_spec.rb +0 -117
  39. data/spec/lib/billy/proxy_connection_spec.rb +0 -20
  40. data/spec/lib/billy/proxy_request_stub_spec.rb +0 -252
  41. data/spec/lib/billy/resource_utils_spec.rb +0 -55
  42. data/spec/lib/billy/ssl/authority_spec.rb +0 -84
  43. data/spec/lib/billy/ssl/certificate_chain_spec.rb +0 -39
  44. data/spec/lib/billy/ssl/certificate_spec.rb +0 -89
  45. data/spec/lib/billy/watir/watir_spec.rb +0 -18
  46. data/spec/lib/proxy_spec.rb +0 -431
  47. data/spec/spec_helper.rb +0 -52
  48. data/spec/support/test_server.rb +0 -79
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 714d9af5c05c61dbdc36579e513987c4e66c3a3ae753cd8c4959e12fe091b042
4
- data.tar.gz: b294a868e906fe711ad856f0d86ca22388be111fc6b2634af1cb26ee7174ebf8
3
+ metadata.gz: ec02ea3b7f01e33d68df684db911886bacb0b9c92f1fbe3d9931df42218dd78f
4
+ data.tar.gz: 9ea280821375f4ba83429c33aa2d17035a3269e580fbb52c6a26e5db968eed25
5
5
  SHA512:
6
- metadata.gz: 3bcebbc4882d9f0b29cb68de495338457d0806275b024803698a7a4ae5392655da3ed63d8293b1fce78795ed1dd7da52216b403b0537f8089dcb526f8c3fd0ba
7
- data.tar.gz: a2ad11d11b81d522255a88bd2534082c59d056458786f28a4e9e496129d0eb4715d5045555ba59ac1838f5be19f2e9f461e47b873c803aee52af50c29d2ecb58
6
+ metadata.gz: 9b1680023f9b58ee65995bc91471d11f4d1a9fd96dbee00a9635edb23775bbe2824b3234414c5d87aa33709a10b8c71729079bb0bd885db7023958aa4da77859
7
+ data.tar.gz: f42c4227325d9dcab48a50eed2f5470db36c90e5fc8aff2618cfd37531fe15e23345b7bff92080053a130b0e9755a8f43c46cdf958d45ece795e8cd4ac7e7c51
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ v3.0.1, 2022-02-15
2
+ -------------------
3
+ * Adapt to newer versions selenium webdriver [#314](https://github.com/oesmith/puffing-billy/pull/314)
4
+
5
+ v3.0.0, 2022-02-15
6
+ -------------------
7
+ * Add support for Ruby 2.7+, remove support for Ruby 2.4 and 2.5
8
+
1
9
  v2.4.1, 2021-01-05
2
10
  -------------------
3
11
  * Rescue Errno::ECONNRESET in shutdown phase [#307](https://github.com/oesmith/puffing-billy/pull/307)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Puffing Billy [![Gem Version](https://badge.fury.io/rb/puffing-billy.svg)](https://badge.fury.io/rb/puffing-billy) [![Build Status](https://travis-ci.org/oesmith/puffing-billy.svg?branch=master)](https://travis-ci.org/oesmith/puffing-billy)
1
+ # Puffing Billy [![Gem Version](https://badge.fury.io/rb/puffing-billy.svg)](https://badge.fury.io/rb/puffing-billy) ![Build Status](https://github.com/oesmith/puffing-billy/actions/workflows/ci.yml/badge.svg)
2
2
 
3
3
  A rewriting web proxy for testing interactions between your browser and
4
4
  external sites. Works with ruby + rspec.
@@ -47,19 +47,24 @@ module Billy
47
47
 
48
48
  def self.register_selenium_driver
49
49
  ::Capybara.register_driver :selenium_billy do |app|
50
- options = build_selenium_options_for_firefox
51
- capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
50
+ capabilities = [
51
+ build_selenium_options_for_firefox,
52
+ Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
53
+ ]
52
54
 
53
- ::Capybara::Selenium::Driver.new(app, options: options, desired_capabilities: capabilities)
55
+ ::Capybara::Selenium::Driver.new(app, capabilities: capabilities)
54
56
  end
55
57
 
56
58
  ::Capybara.register_driver :selenium_headless_billy do |app|
57
59
  options = build_selenium_options_for_firefox.tap do |opts|
58
60
  opts.add_argument '-headless'
59
61
  end
60
- capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
61
-
62
- ::Capybara::Selenium::Driver.new(app, options: options, desired_capabilities: capabilities)
62
+ capabilities = [
63
+ options,
64
+ Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
65
+ ]
66
+
67
+ ::Capybara::Selenium::Driver.new(app, capabilities: capabilities)
63
68
  end
64
69
 
65
70
  ::Capybara.register_driver :selenium_chrome_billy do |app|
@@ -70,7 +75,7 @@ module Billy
70
75
  ::Capybara::Selenium::Driver.new(
71
76
  app,
72
77
  browser: :chrome,
73
- options: options,
78
+ capabilities: options,
74
79
  clear_local_storage: true,
75
80
  clear_session_storage: true
76
81
  )
@@ -88,7 +93,7 @@ module Billy
88
93
  ::Capybara::Selenium::Driver.new(
89
94
  app,
90
95
  browser: :chrome,
91
- options: options,
96
+ capabilities: options,
92
97
  clear_local_storage: true,
93
98
  clear_session_storage: true
94
99
  )
@@ -105,7 +110,6 @@ module Billy
105
110
 
106
111
  def self.build_selenium_options_for_firefox
107
112
  profile = Selenium::WebDriver::Firefox::Profile.new.tap do |prof|
108
- prof.assume_untrusted_certificate_issuer = false
109
113
  prof.proxy = Selenium::WebDriver::Proxy.new(
110
114
  http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
111
115
  ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}")
@@ -20,8 +20,10 @@ module Billy
20
20
 
21
21
  def configure_chrome(args)
22
22
  args[:headless] = true
23
- args[:switches] ||= []
24
- args[:switches] += %W[--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}]
23
+ args[:proxy] = {
24
+ http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
25
+ ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}"
26
+ }
25
27
  args
26
28
  end
27
29
 
data/lib/billy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Billy
2
- VERSION = '2.4.1'
2
+ VERSION = '3.0.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffing-billy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olly Smith
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-05 00:00:00.000000000 Z
11
+ date: 2022-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 4.0.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 4.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rack
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -184,16 +184,30 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 6.10.0
187
+ version: 7.1.0
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 6.10.0
194
+ version: 7.1.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: webdrivers
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 5.0.0
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: 5.0.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: webrick
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
@@ -314,29 +328,13 @@ description: A stubbing proxy server for ruby. Connect it to your browser in int
314
328
  tests to fake interactions with remote HTTP(S) servers.
315
329
  email:
316
330
  - olly.smith@gmail.com
317
- executables:
318
- - proxy.rb
331
+ executables: []
319
332
  extensions: []
320
333
  extra_rdoc_files: []
321
334
  files:
322
- - ".gitignore"
323
- - ".rspec"
324
- - ".travis.yml"
325
335
  - CHANGELOG.md
326
- - Dockerfile
327
- - Gemfile
328
- - Guardfile
329
336
  - LICENSE
330
337
  - README.md
331
- - Rakefile
332
- - bin/proxy.rb
333
- - examples/README.md
334
- - examples/facebook_api.html
335
- - examples/intercept_request.html
336
- - examples/post_api.html
337
- - examples/preflight_request.html
338
- - examples/tumblr_api.html
339
- - examples/tumblr_api_https.html
340
338
  - lib/billy.rb
341
339
  - lib/billy/browsers/capybara.rb
342
340
  - lib/billy/browsers/watir.rb
@@ -368,36 +366,11 @@ files:
368
366
  - lib/billy/watir/rspec.rb
369
367
  - lib/puffing-billy.rb
370
368
  - lib/puffing-billy/rspec.rb
371
- - lib/tasks/billy.rake
372
- - log/.gitkeep
373
- - puffing-billy.gemspec
374
- - spec/features/examples/facebook_api_spec.rb
375
- - spec/features/examples/intercept_request_spec.rb
376
- - spec/features/examples/post_api_spec.rb
377
- - spec/features/examples/preflight_request_spec.rb
378
- - spec/features/examples/tumblr_api_spec.rb
379
- - spec/lib/billy/browsers/capybara_spec.rb
380
- - spec/lib/billy/cache_spec.rb
381
- - spec/lib/billy/handlers/cache_handler_spec.rb
382
- - spec/lib/billy/handlers/handler_spec.rb
383
- - spec/lib/billy/handlers/proxy_handler_spec.rb
384
- - spec/lib/billy/handlers/request_handler_spec.rb
385
- - spec/lib/billy/handlers/request_log_spec.rb
386
- - spec/lib/billy/handlers/stub_handler_spec.rb
387
- - spec/lib/billy/proxy_connection_spec.rb
388
- - spec/lib/billy/proxy_request_stub_spec.rb
389
- - spec/lib/billy/resource_utils_spec.rb
390
- - spec/lib/billy/ssl/authority_spec.rb
391
- - spec/lib/billy/ssl/certificate_chain_spec.rb
392
- - spec/lib/billy/ssl/certificate_spec.rb
393
- - spec/lib/billy/watir/watir_spec.rb
394
- - spec/lib/proxy_spec.rb
395
- - spec/spec_helper.rb
396
- - spec/support/test_server.rb
397
369
  homepage: https://github.com/oesmith/puffing-billy
398
- licenses: []
370
+ licenses:
371
+ - MIT
399
372
  metadata: {}
400
- post_install_message:
373
+ post_install_message:
401
374
  rdoc_options: []
402
375
  require_paths:
403
376
  - lib
@@ -405,39 +378,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
405
378
  requirements:
406
379
  - - ">="
407
380
  - !ruby/object:Gem::Version
408
- version: '0'
381
+ version: 2.6.0
409
382
  required_rubygems_version: !ruby/object:Gem::Requirement
410
383
  requirements:
411
384
  - - ">="
412
385
  - !ruby/object:Gem::Version
413
386
  version: '0'
414
387
  requirements: []
415
- rubyforge_project:
416
- rubygems_version: 2.7.3
417
- signing_key:
388
+ rubygems_version: 3.2.22
389
+ signing_key:
418
390
  specification_version: 4
419
391
  summary: Easy request stubs for browser tests.
420
- test_files:
421
- - spec/features/examples/facebook_api_spec.rb
422
- - spec/features/examples/intercept_request_spec.rb
423
- - spec/features/examples/post_api_spec.rb
424
- - spec/features/examples/preflight_request_spec.rb
425
- - spec/features/examples/tumblr_api_spec.rb
426
- - spec/lib/billy/browsers/capybara_spec.rb
427
- - spec/lib/billy/cache_spec.rb
428
- - spec/lib/billy/handlers/cache_handler_spec.rb
429
- - spec/lib/billy/handlers/handler_spec.rb
430
- - spec/lib/billy/handlers/proxy_handler_spec.rb
431
- - spec/lib/billy/handlers/request_handler_spec.rb
432
- - spec/lib/billy/handlers/request_log_spec.rb
433
- - spec/lib/billy/handlers/stub_handler_spec.rb
434
- - spec/lib/billy/proxy_connection_spec.rb
435
- - spec/lib/billy/proxy_request_stub_spec.rb
436
- - spec/lib/billy/resource_utils_spec.rb
437
- - spec/lib/billy/ssl/authority_spec.rb
438
- - spec/lib/billy/ssl/certificate_chain_spec.rb
439
- - spec/lib/billy/ssl/certificate_spec.rb
440
- - spec/lib/billy/watir/watir_spec.rb
441
- - spec/lib/proxy_spec.rb
442
- - spec/spec_helper.rb
443
- - spec/support/test_server.rb
392
+ test_files: []
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- node_modules/
2
- /Gemfile.lock
3
- log/test.log
4
- .idea/
5
- .ruby-version
6
- *.swp
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format progress
data/.travis.yml DELETED
@@ -1,36 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.3
5
- - 2.4
6
- - 2.5
7
- - 2.6
8
-
9
- cache:
10
- bundler: true
11
- directories:
12
- - $HOME/.webdrivers
13
-
14
- addons:
15
- chrome: stable
16
- apt:
17
- update: true
18
-
19
- sudo: false
20
- dist: xenial
21
-
22
- rvm:
23
- - 2.3
24
- - 2.4
25
- - 2.5
26
- - 2.6
27
-
28
- matrix:
29
- fast_finish: true
30
-
31
- bundler_args: --jobs 3 --retry 3
32
-
33
- before_install:
34
- - gem update --system
35
- - gem install bundler
36
-
data/Dockerfile DELETED
@@ -1,14 +0,0 @@
1
- FROM ruby:1.9.3
2
-
3
- RUN apt-get update -y
4
- RUN apt-get install -y qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
5
- RUN gem install bundler
6
- RUN \
7
- export PHANTOMJS_VERSION='2.1.1' && \
8
- export PHANTOMJS_URL='https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2' && \
9
- wget -q ${PHANTOMJS_URL} && \
10
- tar xfv phantomjs-${PHANTOMJS_VERSION}-linux-x86_64.tar.bz2 \
11
- -C /usr/bin --wildcards */bin/phantomjs --strip-components=2
12
- RUN mkdir -p /app
13
- COPY . /app
14
- RUN cd /app && bundle install
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in puffing-billy.gemspec
4
- gemspec
data/Guardfile DELETED
@@ -1,23 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', version: 2 do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
- watch('spec/spec_helper.rb') { 'spec' }
8
-
9
- # Rails example
10
- watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
- watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
- watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
- watch(%r{^spec/support/(.+)\.rb$}) { 'spec' }
14
- watch('config/routes.rb') { 'spec/routing' }
15
- watch('app/controllers/application_controller.rb') { 'spec/controllers' }
16
-
17
- # Capybara request specs
18
- watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
19
-
20
- # Turnip features and steps
21
- watch(%r{^spec/acceptance/(.+)\.feature$})
22
- watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
- end
data/Rakefile DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env rake
2
- require 'bundler/gem_tasks'
3
-
4
- begin
5
- require 'rspec/core/rake_task'
6
- RSpec::Core::RakeTask.new(:spec)
7
- rescue LoadError
8
- end
9
-
10
- desc 'Run all tests'
11
- task default: [:spec]
data/bin/proxy.rb DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'billy'
3
- Billy::Proxy.new.start(false)
data/examples/README.md DELETED
@@ -1 +0,0 @@
1
- See example specs in `spec/requests/examples`.
@@ -1,59 +0,0 @@
1
- <div id="fb-root"></div>
2
- <script>
3
- // Load the SDK Asynchronously
4
- (function(d){
5
- var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
6
- if (d.getElementById(id)) {return;}
7
- js = d.createElement('script'); js.id = id; js.async = true;
8
- js.src = "//connect.facebook.net/en_US/all.js";
9
- ref.parentNode.insertBefore(js, ref);
10
- }(document));
11
-
12
- // Init the SDK upon load
13
- window.fbAsyncInit = function() {
14
- FB.init({
15
- appId : '408416075843608', // App ID
16
- //channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File
17
- status : true, // check login status
18
- cookie : true, // enable cookies to allow the server to access the session
19
- xfbml : true // parse XFBML
20
- });
21
-
22
- // listen for and handle auth.statusChange events
23
- FB.Event.subscribe('auth.statusChange', function(response) {
24
- if (response.authResponse) {
25
- // user has auth'd your app and is logged into Facebook
26
- FB.api('/me', function(me){
27
- if (me.name) {
28
- document.getElementById('auth-displayname').innerHTML = me.name;
29
- }
30
- })
31
- document.getElementById('auth-loggedout').style.display = 'none';
32
- document.getElementById('auth-loggedin').style.display = 'block';
33
- } else {
34
- // user has not auth'd your app, or is not logged into Facebook
35
- document.getElementById('auth-loggedout').style.display = 'block';
36
- document.getElementById('auth-loggedin').style.display = 'none';
37
- }
38
- });
39
-
40
- // respond to clicks on the login and logout links
41
- document.getElementById('auth-loginlink').addEventListener('click', function(){
42
- FB.login();
43
- });
44
- document.getElementById('auth-logoutlink').addEventListener('click', function(){
45
- FB.logout();
46
- });
47
- }
48
- </script>
49
-
50
- <h1>Facebook Client-side Authentication Example</h1>
51
- <div id="auth-status">
52
- <div id="auth-loggedout">
53
- <a href="#" id="auth-loginlink">Login</a>
54
- </div>
55
- <div id="auth-loggedin" style="display:none">
56
- Hi, <span id="auth-displayname"></span>
57
- (<a href="#" id="auth-logoutlink">logout</a>)
58
- </div>
59
- </div>
@@ -1,10 +0,0 @@
1
- <!DOCTYPE html>
2
- <body>
3
- <h1>Intercept request example</h1>
4
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
5
- <script type='text/javascript'>
6
- $(function () {
7
- $.post('http://example.com/', { foo: 'bar' });
8
- })
9
- </script>
10
- </body>
@@ -1,16 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>POST to API</h1>
4
- <div id="result"></div>
5
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
6
- <script type='text/javascript'>
7
- $(function () {
8
- $.post('http://example.com/api', { foo: 'bar' }).done(function(data) {
9
- $('#result').append('Success!');
10
- })
11
- .fail(function(data) {
12
- $('#result').append('Fail!');
13
- });
14
- })
15
- </script>
16
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Cross Domain Request</h1>
4
- <div id="result"></div>
5
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
6
- <script type='text/javascript'>
7
- $(function () {
8
- $.ajax(
9
- {
10
- url: 'http://example.com/api',
11
- method: 'GET',
12
- contentType: 'json' // setting this forces an OPTIONS request
13
- }
14
- ).done(function(data) {
15
- $('#result').append('Success!');
16
- })
17
- .fail(function(data) {
18
- $('#result').append('Fail!');
19
- });
20
- })
21
- </script>
22
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Latest news</h1>
4
- <div id="news"></div>
5
-
6
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
7
- <script type='text/javascript'>
8
- $(function () {
9
- var url = 'http://blog.howmanyleft.co.uk/api/read/json?callback=?&type=text&num=3&filter=text';
10
- $.getJSON(url, function (data) {
11
- $.each(data.posts, function (idx, post) {
12
- var title = post['regular-title'];
13
- var href = post['url-with-slug'];
14
- var body = post['regular-body'];
15
- $('#news').append(
16
- '<h3><a href="' + href + '">' + title + '</a></h3>' +
17
- '<p>' + body + '</p>');
18
- });
19
- });
20
- })
21
- </script>
22
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Latest news</h1>
4
- <div id="news"></div>
5
-
6
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
7
- <script type='text/javascript'>
8
- $(function () {
9
- var url = 'https://blog.howmanyleft.co.uk/api/read/json?callback=?&type=text&num=3&filter=text';
10
- $.getJSON(url, function (data) {
11
- $.each(data.posts, function (idx, post) {
12
- var title = post['regular-title'];
13
- var href = post['url-with-slug'];
14
- var body = post['regular-body'];
15
- $('#news').append(
16
- '<h3><a href="' + href + '">' + title + '</a></h3>' +
17
- '<p>' + body + '</p>');
18
- });
19
- });
20
- })
21
- </script>
22
- </body>
data/lib/tasks/billy.rake DELETED
@@ -1,87 +0,0 @@
1
- require 'addressable/uri'
2
-
3
- namespace :cache do
4
- desc 'Print out all cache file information'
5
- task :print_all do
6
- cache_array = load_cache
7
-
8
- sort_cache(cache_array).each do |cache|
9
- print_cache_details(cache)
10
- end
11
- end
12
-
13
- desc 'Print out specific cache file information'
14
- task :print_details, :sha do |_t, args|
15
- fail "Missing sha; usage: rake cache:print_details['<sha>']" unless args[:sha]
16
- cache_array = load_cache(Billy.config.cache_path, '*' + args[:sha] + '*.yml')
17
-
18
- sort_cache(cache_array).each do |cache|
19
- print_cache_details(cache)
20
- end
21
- end
22
-
23
- desc 'Find specific cache files by URL'
24
- task :find_by_url, :api_path do |_t, args|
25
- fail "Missing api path; usage: rake cache:find_by_url['<api_path>']" unless args[:api_path]
26
- cache_array = load_cache
27
- filtered_cache_array = cache_array.select { |f| f[:url_path].include?(args[:api_path]) }
28
-
29
- sort_cache(filtered_cache_array).each do |cache|
30
- print_cache_details(cache)
31
- end
32
- end
33
-
34
- desc 'Find specific cache files by scope'
35
- task :find_by_scope, :scope do |_t, args|
36
- fail "Missing scope; usage: rake cache:find_by_scope['<scope>']" unless args[:scope]
37
- cache_array = load_cache
38
- filtered_cache_array = cache_array.select { |f| f[:scope] && f[:scope].include?(args[:scope]) }
39
-
40
- sort_cache(filtered_cache_array).each do |cache|
41
- print_cache_details(cache)
42
- end
43
- end
44
-
45
- desc 'Find cache files with non-successful status codes'
46
- task :find_non_successful do
47
- cache_array = load_cache
48
- filtered_cache_array = cache_array.select { |f| !(200..299).include?(f[:status]) }
49
-
50
- sort_cache(filtered_cache_array).each do |cache|
51
- print_cache_details(cache)
52
- end
53
- end
54
-
55
- def load_cache(cache_directory = Billy.config.cache_path, file_pattern = '*.yml')
56
- cache_path = Rails.root.join(cache_directory)
57
- cache_array = []
58
-
59
- Dir.glob(cache_path + file_pattern) do |filename|
60
- data = load_cache_file(filename)
61
- url = Addressable::URI.parse(data[:url])
62
- data[:url_path] = "#{url.path}#{url.query ? '?' + url.query : ''}#{url.fragment ? '#' + url.fragment : ''}"
63
- data[:filename] = filename.gsub(Rails.root.to_s + '/', '')
64
- cache_array << data
65
- end
66
- cache_array
67
- end
68
-
69
- def load_cache_file(filename)
70
- YAML.load_file(filename)
71
- rescue ArgumentError => e
72
- puts "Could not parse YAML: #{e.message}"
73
- end
74
-
75
- def print_cache_details(cache)
76
- puts " Scope: #{cache[:scope]}" if cache[:scope]
77
- puts " URL: #{cache[:url]}"
78
- puts " Body: #{cache[:body]}" if Billy.config.cache_request_body_methods.include?(cache[:method])
79
- puts " Details: Request method '#{cache[:method]}' returned response status code: '#{cache[:status]}'"
80
- puts "Filename: #{cache[:filename]}"
81
- puts "\n\n"
82
- end
83
-
84
- def sort_cache(cache, key = :url_path)
85
- cache.sort_by { |hsh| hsh[key] }
86
- end
87
- end
data/log/.gitkeep DELETED
File without changes