eveapi 0.0.3.pre → 0.0.4.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +8 -8
  2. data/.gitmodules +3 -0
  3. data/Gemfile +7 -0
  4. data/README.md +38 -5
  5. data/Rakefile +43 -0
  6. data/gemspec.yml +5 -1
  7. data/lib/eveapi.rb +3 -0
  8. data/lib/eveapi/client.rb +36 -1
  9. data/lib/eveapi/console.rb +5 -0
  10. data/lib/eveapi/request.rb +22 -12
  11. data/lib/eveapi/util.rb +35 -0
  12. data/lib/eveapi/version.rb +1 -1
  13. data/spec/cassettes/EVEApi/calling_a_method_not_present_in_the_EVEApi_should_fail.yml +106 -0
  14. data/spec/cassettes/EVEApi/calling_a_method_present_in_the_EVEApi_should_success.yml +31 -0
  15. data/spec/cassettes/EVEApi/calling_api_method_account_account_status.yml +33 -0
  16. data/spec/cassettes/EVEApi/calling_api_method_account_api_key_info.yml +35 -0
  17. data/spec/cassettes/EVEApi/calling_api_method_account_characters.yml +34 -0
  18. data/spec/cassettes/EVEApi/calling_api_method_char_account_balance.yml +32 -0
  19. data/spec/cassettes/EVEApi/calling_api_method_char_asset_list.yml +79 -0
  20. data/spec/cassettes/EVEApi/calling_api_method_char_character_sheet.yml +79 -0
  21. data/spec/cassettes/EVEApi/calling_api_method_char_contact_list.yml +47 -0
  22. data/spec/cassettes/EVEApi/calling_api_method_char_contact_notifications.yml +31 -0
  23. data/spec/cassettes/EVEApi/calling_api_method_char_contracts.yml +31 -0
  24. data/spec/cassettes/EVEApi/calling_api_method_char_industry_jobs.yml +31 -0
  25. data/spec/cassettes/EVEApi/calling_api_method_char_mail_messages.yml +31 -0
  26. data/spec/cassettes/EVEApi/calling_api_method_char_mailing_lists.yml +31 -0
  27. data/spec/cassettes/EVEApi/calling_api_method_char_market_orders.yml +31 -0
  28. data/spec/cassettes/EVEApi/calling_api_method_char_medals.yml +32 -0
  29. data/spec/cassettes/EVEApi/calling_api_method_char_notifications.yml +31 -0
  30. data/spec/cassettes/EVEApi/calling_api_method_char_research.yml +31 -0
  31. data/spec/cassettes/EVEApi/calling_api_method_char_skill_in_training.yml +31 -0
  32. data/spec/cassettes/EVEApi/calling_api_method_char_skill_queue.yml +31 -0
  33. data/spec/cassettes/EVEApi/calling_api_method_char_standings.yml +45 -0
  34. data/spec/cassettes/EVEApi/calling_api_method_char_upcoming_calendar_events.yml +31 -0
  35. data/spec/cassettes/EVEApi/calling_api_method_char_wallet_journal.yml +31 -0
  36. data/spec/cassettes/EVEApi/calling_api_method_char_wallet_transactions.yml +31 -0
  37. data/spec/cassettes/EVEApi/calling_api_method_server_server_status.yml +31 -0
  38. data/spec/cassettes/EVEApi/calling_api_methods_should_return_an_Array_of_method_symobls.yml +160 -0
  39. data/spec/eveapi_spec.rb +41 -29
  40. data/spec/spec_helper.rb +8 -0
  41. metadata +88 -3
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yzc3MDRlZTIwNjE5MWQ0YzcxN2YyMTE2MTA3NTcyNTY0NGJlNWFlNg==
4
+ MDA5NDcwZDRmMGI0MTMzZDJlMDQ0N2QyZDZhMDg4NDQ2YTM0NjcxMg==
5
5
  data.tar.gz: !binary |-
6
- NmIyZjYwMjhiYjBkNzBlNGU4NjI2Njg2M2QwMWY0YmQ2Y2ZmODIyMA==
6
+ YWQxZDRjZTNmOGNlODM4YThiMGIxYjY3ZTc5MmRhYTBkZGE2MWIzNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Nzk1YmMyMjBhZmY2NGNiM2I5ZjRmM2RkMGQ4MjEwYTdiOWFlZjg5NjVmMzRj
10
- MTI3NDkwY2VkMGJmYjlhNGJlN2U1N2QyMzRlY2E0YzY4NjE3MjNiZmE2NGMw
11
- MDBkOGUyYTBiOWQ4MTAzMDk1OTkxZTM3YzgyYTdjNWFmYjUzZTA=
9
+ MjAyOTRkMzExY2VmNDNhNjdiYjYyZjBkYmFmYWVjNDFlMjc0NWZkMDY5ZjI3
10
+ NDA5ZjMyNTdlZmE5YmE4ODBlMzU1NmVkNjNlOWFhOTY3ZGQ1M2FhOGU1ZDJh
11
+ OGZhOGU2OWUzZDgyNTU4MjljN2ZjNjQyZjI2MjdlODViMTViZTM=
12
12
  data.tar.gz: !binary |-
13
- MGY3YWI0MDQ1N2MyMDZiYTE0Y2I3NWFhMmM5NDIwMGU3ZjcyMmUzYjYzYzE1
14
- MzI5OThmYmI4NWVjMzNmZGVmODg0MDA1ZDk0NWEzZDU4MjkzMzM1OWJiZWZl
15
- YzA4Yzg3Mjg0ZWJjZGFiODQ5MzE3YjkwODM3YjRmMmRiNTlhM2I=
13
+ OTA4ZTJmYzNiYWE2ZDVjZDU1MzdhZWY2ZDBjNmM0ZjA3ZGY0NmJmN2NmOThk
14
+ NjJmMzFlNmQzOTAxZWQxZjY3OWE1ZjA3MDAwMTA1MjRiOTg4MjMwMzYyZWRh
15
+ NWQwM2U3NTg2YzI4Y2YxOTIzMDJkMTE1NTQwZTljY2FhODFiMWE=
@@ -0,0 +1,3 @@
1
+ [submodule "eveapi.wiki"]
2
+ path = eveapi.wiki
3
+ url = https://github.com/aladac/eveapi.wiki.git
data/Gemfile CHANGED
@@ -1,3 +1,10 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+ group :development do
5
+ if RUBY_VERSION =~ /1.9/
6
+ gem 'pry-debugger', '~> 0.2'
7
+ else
8
+ gem 'pry-byebug', '~> 3.2'
9
+ end
10
+ end
data/README.md CHANGED
@@ -11,7 +11,7 @@ This work in progress in a very early stage. Not documented. Only a couple of me
11
11
 
12
12
  Most methods names can be listed by calling `EVEApi::Client#api_methods`
13
13
  ```ruby
14
- pry(main)> EVEApi::Client.new.api_methods[0..5]
14
+ EVEApi::Client.new.api_methods[0..5]
15
15
  => [
16
16
  [0] :char_chat_channels,
17
17
  [1] :char_bookmarks,
@@ -25,7 +25,31 @@ Most methods requiring arguments other than `character_id`, `key_id`, `vcode` an
25
25
 
26
26
  Because of the way the paths are being built from the method names - some methods may look funky eq. `server_server_status`.
27
27
 
28
- `account_characters`, `char_character_sheet`, `char_wallet_journal`, `server_server_status`, `account_api_key_info`, `api_call_list` should work.
28
+ ## Methods
29
+
30
+ | Method Name | Requires | Output Class |
31
+ | ------------- | ------------- | ------------- |
32
+ | [account_api_key_info](account_api_key_info) | - | `Hash` |
33
+ | [account_account_status](account_account_status) | `key_id`, `vcode` | `Hash` |
34
+ | [account_characters](account_characters) | `key_id`, `vcode` | `Array` |
35
+ | [server_server_status](server_server_status) | - | `Hash` |
36
+ | [char_wallet_transactions](char_wallet_transactions) | `key_id`, `vcode`, `character_id` | `Array` |
37
+ | [char_wallet_journal](char_wallet_journal) | `key_id`, `vcode`, `character_id` | `Array` |
38
+ | [char_standings](char_standings) | `key_id`, `vcode`, `character_id` | `Array` |
39
+ | [char_skill_queue](char_skill_queue) | | |
40
+ | [char_skill_in_training](char_skill_in_training) | | |
41
+ | [char_research](char_research) | | |
42
+ | [char_notifications](char_notifications) | | |
43
+ | [char_medals](char_medals) | | |
44
+ | [char_market_orders](char_market_orders) | | |
45
+ | [char_mail_messages](char_mail_messages) | | |
46
+ | [char_mailing_lists](char_mailing_lists) | | |
47
+ | [char_industry_jobs](char_industry_jobs) | | |
48
+ | [char_contact_notifications](char_contact_notifications) | | |
49
+ | [char_contact_list](char_contact_list) | | |
50
+ | [char_character_sheet](char_character_sheet) | | |
51
+ | [char_asset_list](char_asset_list) | | |
52
+ | [char_account_balance](char_account_balance) | | |
29
53
 
30
54
  ## Description
31
55
 
@@ -43,10 +67,19 @@ Uses [excon](https://github.com/excon/excon), [crack](https://github.com/jnunem
43
67
  ```ruby
44
68
  require 'eveapi'
45
69
  client = EVEApi::Client.new
46
- client.key_id = YOUR_API_KEY_ID
47
- client.vcode = YOUR_API_VCODE
70
+ client.key_id = 4278167
71
+ client.vcode = "7QJg6p5BZNpDBp2FIz39dGwa7jnNaXAuYyLUVitlTQ3rY60VPBcaTpJVfYIkiW5l"
48
72
  client.account_characters
49
- # [{"name"=>"CHARACTER_NAME1", "characterID"=>"CHARACTER_ID1", "corporationName"=>"CORPORATION_NAME1", "corporationID"=>"CORPORATION_ID1", "allianceID"=>"0", "allianceName"=>"", "factionID"=>"0", "factionName"=>""}, {"name"=>"CHARACTER_NAME2", "characterID"=>"CHARACTER_ID2", "corporationName"=>"CORPORATION_NAME2", "corporationID"=>"CORPORATION_ID2", "allianceID"=>"0", "allianceName"=>"", "factionID"=>"0", "factionName"=>""}]
73
+ => {
74
+ :name => "Quint Slade",
75
+ :character_id => "95512059",
76
+ :corporation_name => "Imperial Academy",
77
+ :corporation_id => "1000166",
78
+ :alliance_id => "0",
79
+ :alliance_name => "",
80
+ :faction_id => "0",
81
+ :faction_name => ""
82
+ }
50
83
  ```
51
84
 
52
85
  ## Requirements
data/Rakefile CHANGED
@@ -19,5 +19,48 @@ task :doc => :rdoc
19
19
  require 'rspec/core/rake_task'
20
20
  RSpec::Core::RakeTask.new
21
21
 
22
+ require 'pry'
23
+
24
+ desc 'Run pry console'
25
+ task :console do
26
+ require './lib/eveapi'
27
+ require './lib/eveapi/console'
28
+ Pry.start
29
+ end
30
+
31
+ desc 'Generate method docs'
32
+ task :methods do
33
+ Bundler.require
34
+ require 'awesome_print'
35
+ EVEApi::Client.new.working_methods.each do |m|
36
+ p m
37
+ @client = EVEApi::Client.new
38
+ @client.key_id = 4278167
39
+ @client.vcode = "supersecretstuff"
40
+ @client.character_id = '95512059'
41
+ out = ""
42
+ begin
43
+ out << @client.api_methods_hash.select { |me| me[:name] == m }.first[:desc]
44
+ rescue
45
+ out << "TODO Description (#{m})"
46
+ end
47
+ out << "\n\n"
48
+ out << "```ruby\n@client = EVEApi::Client.new\n"
49
+ out << "@client.key_id = 4278167\n"
50
+ out << "@client.vcode = 'supersecretstuff'\n\n"
51
+ out << "@client.#{m}\n\n"
52
+ begin
53
+ out << @client.send(m).pretty_inspect
54
+ out << '```'
55
+ f = File.new("eveapi.wiki/#{m.to_s}.md","w")
56
+ f.puts out
57
+ f.close
58
+ rescue
59
+ end
60
+ end
61
+ end
62
+
63
+
64
+ task :c => :console
22
65
  task :test => :spec
23
66
  task :default => :spec
@@ -4,7 +4,7 @@ description: "ruby API Client for the space based MMO EVEOnline"
4
4
  license: MIT
5
5
  authors: Adam Ladachowski
6
6
  email: adam@saiden.pl
7
- homepage: https://rubygems.org/gems/eveapi
7
+ homepage: https://github.com/aladac/eveapi
8
8
 
9
9
  required_ruby_version: '>= 1.9'
10
10
 
@@ -18,3 +18,7 @@ development_dependencies:
18
18
  rake: ~> 10.0
19
19
  rdoc: ~> 4.0
20
20
  rspec: ~> 3.0
21
+ vcr: ~> 2.9
22
+ webmock: ~> 1
23
+ pry: ~> 0.10
24
+ awesome_print: ~> 1.6
@@ -4,9 +4,12 @@ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
4
4
  require 'eveapi/version'
5
5
  require 'eveapi/client'
6
6
  require 'eveapi/request'
7
+ require 'eveapi/util'
7
8
  require 'excon'
8
9
  require 'crack'
9
10
 
11
+ include EVEApi::Util
12
+
10
13
  class String
11
14
  def camelize
12
15
  self.split("_").each {|s| s.capitalize! }.join("")
@@ -24,7 +24,15 @@ module EVEApi
24
24
  end
25
25
 
26
26
  def api_methods
27
- api_call_list[:calls].map { |m| ( m['type'][0..3].downcase + '_' + m['name'].underscore ).to_sym }
27
+ api_methods_hash.map { |m| m[:name] }
28
+ end
29
+
30
+ def ruby_method_name(m)
31
+ ( m[:type][0..3].downcase + '_' + m[:name].underscore ).to_sym
32
+ end
33
+
34
+ def api_methods_hash
35
+ api_call_list[:calls].map { |m| { name: ruby_method_name(m), desc: m[:description] } }
28
36
  end
29
37
 
30
38
  def method_missing(name, *args, &block)
@@ -33,5 +41,32 @@ module EVEApi
33
41
  request = EVEApi::Request.new @connection.get(path: check_path(name), query: params)
34
42
  request.result
35
43
  end
44
+ def working_methods
45
+ [
46
+ :account_api_key_info,
47
+ :account_account_status,
48
+ :account_characters,
49
+ :server_server_status,
50
+ :char_contracts,
51
+ :char_wallet_transactions,
52
+ :char_wallet_journal,
53
+ :char_upcoming_calendar_events,
54
+ :char_standings,
55
+ :char_skill_queue,
56
+ :char_skill_in_training,
57
+ :char_research,
58
+ :char_notifications,
59
+ :char_medals,
60
+ :char_market_orders,
61
+ :char_mail_messages,
62
+ :char_mailing_lists,
63
+ :char_industry_jobs,
64
+ :char_contact_notifications,
65
+ :char_contact_list,
66
+ :char_character_sheet,
67
+ :char_asset_list,
68
+ :char_account_balance,
69
+ ]
70
+ end
36
71
  end
37
72
  end
@@ -0,0 +1,5 @@
1
+ include EVEApi
2
+ @client = Client.new
3
+ @client.key_id = "4278167"
4
+ @client.vcode = "supersecretstuff"
5
+ @client.character_id = '95512059'
@@ -6,9 +6,9 @@ module EVEApi
6
6
 
7
7
  def initialize(response=nil)
8
8
  @response = response
9
- raise 'No such method' if response.status == 404
9
+ raise "HTTP: #{response.status}" unless response.status == 200
10
10
  @data = parse_xml
11
- @result = self.parse_result
11
+ @result = convert_hash_keys(self.parse_result)
12
12
  raise error if error
13
13
  end
14
14
 
@@ -20,18 +20,28 @@ module EVEApi
20
20
  Crack::XML.parse(response.body)
21
21
  end
22
22
 
23
+ def process_hash(data)
24
+ data.each_value do |v|
25
+ v.process_rows if v.is_a?(Hash)
26
+ end.process_rows
27
+ end
28
+
29
+ def process_array(data)
30
+ data.each do |v|
31
+ v.process_rows if v.is_a?(Hash)
32
+ end
33
+ end
34
+
23
35
  def parse_result
24
- begin
25
- data['eveapi']['result']['rowset']['row']
26
- rescue NoMethodError
27
- data['eveapi']['result']
28
- rescue TypeError
29
- output = {}
30
- data['eveapi']['result']['rowset'].each do |r|
31
- output.merge!({ r['name'].underscore.to_sym => r['row'] })
32
- end
33
- output
36
+ api_result = data['eveapi']['result']
37
+ case api_result['rowset']['row']
38
+ when Array
39
+ return process_array api_result['rowset']['row']
40
+ else
41
+ return api_result['rowset']['row']
34
42
  end
43
+ rescue TypeError, NoMethodError
44
+ return process_hash(api_result)
35
45
  end
36
46
  end
37
47
  end
@@ -0,0 +1,35 @@
1
+ class Hash
2
+ def process_rows
3
+ case self['rowset']
4
+ when Hash
5
+ self.merge!(self['rowset']['name'] => self['rowset']['row'])
6
+ self.delete('rowset')
7
+ when Array
8
+ self['rowset'].each do |rowset|
9
+ self[rowset['name']] = rowset['row']
10
+ end
11
+ self.delete('rowset')
12
+ end
13
+ self.merge!(self.delete(self.keys.first)) if self.length == 1
14
+ return self
15
+ end
16
+ end
17
+
18
+ module EVEApi
19
+ module Util
20
+ def underscore_key(k)
21
+ k.to_s.underscore.to_sym
22
+ end
23
+
24
+ def convert_hash_keys(value)
25
+ case value
26
+ when Array
27
+ value.map { |v| convert_hash_keys(v) }
28
+ when Hash
29
+ Hash[value.map { |k, v| [underscore_key(k), convert_hash_keys(v)] }]
30
+ else
31
+ value
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,4 +1,4 @@
1
1
  module EVEApi
2
2
  # eveapi version
3
- VERSION = "0.0.3.pre"
3
+ VERSION = "0.0.4.pre"
4
4
  end
@@ -0,0 +1,106 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.eveonline.com/some/BsMethod.xml.aspx?characterID=95512059&keyID=4278167&vCode=supersecretstuff
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.45.4
12
+ response:
13
+ status:
14
+ code: 404
15
+ message: ''
16
+ headers:
17
+ Content-Type:
18
+ - text/html; charset=utf-8
19
+ Server:
20
+ - Microsoft-IIS/7.5
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Date:
24
+ - Wed, 09 Sep 2015 12:35:44 GMT
25
+ Content-Length:
26
+ - '7383'
27
+ body:
28
+ encoding: UTF-8
29
+ string: "<!DOCTYPE html>\r\n<html>\r\n <head><script type=\"text/javascript\">window.NREUM||(NREUM={});NREUM.info
30
+ = {\"beacon\":\"bam.nr-data.net\",\"errorBeacon\":\"bam.nr-data.net\",\"licenseKey\":\"4519cc3c6b\",\"applicationID\":\"2400733\",\"transactionName\":\"b1xaYEADDEoHBxVRX1YWa0BTFhdKJQsFXR8MCQw=\",\"queueTime\":1,\"applicationTime\":3,\"ttGuid\":\"4AEF5D03368A424F\",\"agent\":\"js-agent.newrelic.com/nr-686.min.js\"}</script><script
31
+ type=\"text/javascript\">window.NREUM||(NREUM={}),__nr_require=function(e,n,t){function
32
+ r(t){if(!n[t]){var o=n[t]={exports:{}};e[t][0].call(o.exports,function(n){var
33
+ o=e[t][1][n];return r(o?o:n)},o,o.exports)}return n[t].exports}if(\"function\"==typeof
34
+ __nr_require)return __nr_require;for(var o=0;o<t.length;o++)r(t[o]);return
35
+ r}({QJf3ax:[function(e,n){function t(e){function n(n,t,a){e&&e(n,t,a),a||(a={});for(var
36
+ u=c(n),f=u.length,s=i(a,o,r),p=0;f>p;p++)u[p].apply(s,t);return s}function
37
+ a(e,n){f[e]=c(e).concat(n)}function c(e){return f[e]||[]}function u(){return
38
+ t(n)}var f={};return{on:a,emit:n,create:u,listeners:c,_events:f}}function
39
+ r(){return{}}var o=\"nr@context\",i=e(\"gos\");n.exports=t()},{gos:\"7eSDFh\"}],ee:[function(e,n){n.exports=e(\"QJf3ax\")},{}],3:[function(e,n){function
40
+ t(e){return function(){r(e,[(new Date).getTime()].concat(i(arguments)))}}var
41
+ r=e(\"handle\"),o=e(1),i=e(2);\"undefined\"==typeof window.newrelic&&(newrelic=window.NREUM);var
42
+ a=[\"setPageViewName\",\"addPageAction\",\"setCustomAttribute\",\"finished\",\"addToTrace\",\"inlineHit\",\"noticeError\"];o(a,function(e,n){window.NREUM[n]=t(\"api-\"+n)}),n.exports=window.NREUM},{1:12,2:13,handle:\"D5DuLP\"}],gos:[function(e,n){n.exports=e(\"7eSDFh\")},{}],\"7eSDFh\":[function(e,n){function
43
+ t(e,n,t){if(r.call(e,n))return e[n];var o=t();if(Object.defineProperty&&Object.keys)try{return
44
+ Object.defineProperty(e,n,{value:o,writable:!0,enumerable:!1}),o}catch(i){}return
45
+ e[n]=o,o}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],D5DuLP:[function(e,n){function
46
+ t(e,n,t){return r.listeners(e).length?r.emit(e,n,t):void(r.q&&(r.q[e]||(r.q[e]=[]),r.q[e].push(n)))}var
47
+ r=e(\"ee\").create();n.exports=t,t.ee=r,r.q={}},{ee:\"QJf3ax\"}],handle:[function(e,n){n.exports=e(\"D5DuLP\")},{}],XL7HBI:[function(e,n){function
48
+ t(e){var n=typeof e;return!e||\"object\"!==n&&\"function\"!==n?-1:e===window?0:i(e,o,function(){return
49
+ r++})}var r=1,o=\"nr@id\",i=e(\"gos\");n.exports=t},{gos:\"7eSDFh\"}],id:[function(e,n){n.exports=e(\"XL7HBI\")},{}],G9z0Bl:[function(e,n){function
50
+ t(){var e=d.info=NREUM.info,n=f.getElementsByTagName(\"script\")[0];if(e&&e.licenseKey&&e.applicationID&&n){c(p,function(n,t){n
51
+ in e||(e[n]=t)});var t=\"https\"===s.split(\":\")[0]||e.sslForHttp;d.proto=t?\"https://\":\"http://\",a(\"mark\",[\"onload\",i()]);var
52
+ r=f.createElement(\"script\");r.src=d.proto+e.agent,n.parentNode.insertBefore(r,n)}}function
53
+ r(){\"complete\"===f.readyState&&o()}function o(){a(\"mark\",[\"domContent\",i()])}function
54
+ i(){return(new Date).getTime()}var a=e(\"handle\"),c=e(1),u=window,f=u.document;e(2);var
55
+ s=(\"\"+location).split(\"?\")[0],p={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\",agent:\"js-agent.newrelic.com/nr-686.min.js\"},d=n.exports={offset:i(),origin:s,features:{}};f.addEventListener?(f.addEventListener(\"DOMContentLoaded\",o,!1),u.addEventListener(\"load\",t,!1)):(f.attachEvent(\"onreadystatechange\",r),u.attachEvent(\"onload\",t)),a(\"mark\",[\"firstbyte\",i()])},{1:12,2:3,handle:\"D5DuLP\"}],loader:[function(e,n){n.exports=e(\"G9z0Bl\")},{}],12:[function(e,n){function
56
+ t(e,n){var t=[],o=\"\",i=0;for(o in e)r.call(e,o)&&(t[i]=n(o,e[o]),i+=1);return
57
+ t}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],13:[function(e,n){function
58
+ t(e,n,t){n||(n=0),\"undefined\"==typeof t&&(t=e?e.length:0);for(var r=-1,o=t-n||0,i=Array(0>o?0:o);++r<o;)i[r]=e[n+r];return
59
+ i}n.exports=t},{}]},{},[\"G9z0Bl\"]);</script>\r\n <title>The resource
60
+ cannot be found.</title>\r\n <meta name=\"viewport\" content=\"width=device-width\"
61
+ />\r\n <style>\r\n body {font-family:\"Verdana\";font-weight:normal;font-size:
62
+ .7em;color:black;} \r\n p {font-family:\"Verdana\";font-weight:normal;color:black;margin-top:
63
+ -5px}\r\n b {font-family:\"Verdana\";font-weight:bold;color:black;margin-top:
64
+ -5px}\r\n H1 { font-family:\"Verdana\";font-weight:normal;font-size:18pt;color:red
65
+ }\r\n H2 { font-family:\"Verdana\";font-weight:normal;font-size:14pt;color:maroon
66
+ }\r\n pre {font-family:\"Consolas\",\"Lucida Console\",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}\r\n
67
+ \ .marker {font-weight: bold; color: black;text-decoration: none;}\r\n
68
+ \ .version {color: gray;}\r\n .error {margin-bottom: 10px;}\r\n
69
+ \ .expandable { text-decoration:underline; font-weight:bold; color:navy;
70
+ cursor:hand; }\r\n @media screen and (max-width: 639px) {\r\n pre
71
+ { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word;
72
+ }\r\n }\r\n @media screen and (max-width: 479px) {\r\n pre
73
+ { width: 280px; }\r\n }\r\n </style>\r\n </head>\r\n\r\n
74
+ \ <body bgcolor=\"white\">\r\n\r\n <span><H1>Server Error in
75
+ '/' Application.<hr width=100% size=1 color=silver></H1>\r\n\r\n <h2>
76
+ <i>The resource cannot be found.</i> </h2></span>\r\n\r\n <font
77
+ face=\"Arial, Helvetica, Geneva, SunSans-Regular, sans-serif \">\r\n\r\n <b>
78
+ Description: </b>HTTP 404. The resource you are looking for (or one of its
79
+ dependencies) could have been removed, had its name changed, or is temporarily
80
+ unavailable. &nbsp;Please review the following URL and make sure that it is
81
+ spelled correctly.\r\n <br><br>\r\n\r\n <b> Requested
82
+ URL: </b>/some/BsMethod.xml.aspx<br><br>\r\n\r\n <hr width=100%
83
+ size=1 color=silver>\r\n\r\n <b>Version Information:</b>&nbsp;Microsoft
84
+ .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34249\r\n\r\n
85
+ \ </font>\r\n\r\n </body>\r\n</html>\r\n<!-- \r\n[HttpException]:
86
+ The file &#39;/some/BsMethod.xml.aspx&#39; does not exist.\r\n at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath
87
+ virtualPath)\r\n at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath
88
+ virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile,
89
+ Boolean throwIfNotFound, Boolean ensureIsUpToDate)\r\n at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext
90
+ context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp,
91
+ Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)\r\n
92
+ \ at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath
93
+ virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)\r\n
94
+ \ at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath
95
+ virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)\r\n
96
+ \ at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context,
97
+ String requestType, VirtualPath virtualPath, String physicalPath)\r\n at
98
+ System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n
99
+ \ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
100
+ completedSynchronously)\r\n--><!-- \r\nThis error page might contain sensitive
101
+ information because ASP.NET is configured to show verbose error messages using
102
+ &lt;customErrors mode=\"Off\"/&gt;. Consider using &lt;customErrors mode=\"On\"/&gt;
103
+ or &lt;customErrors mode=\"RemoteOnly\"/&gt; in production environments.-->"
104
+ http_version:
105
+ recorded_at: Wed, 09 Sep 2015 12:35:44 GMT
106
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,31 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.eveonline.com/server/ServerStatus.xml.aspx?characterID=95512059&keyID=4278167&vCode=supersecretstuff
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.45.4
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: ''
16
+ headers:
17
+ Content-Type:
18
+ - application/xml; charset=utf-8
19
+ Access-Control-Allow-Origin:
20
+ - "*"
21
+ Date:
22
+ - Wed, 09 Sep 2015 12:35:44 GMT
23
+ body:
24
+ encoding: UTF-8
25
+ string: "<?xml version='1.0' encoding='UTF-8'?>\r\n<eveapi version=\"2\">\r\n
26
+ \ <currentTime>2015-09-09 12:35:44</currentTime>\r\n <result>\r\n <serverOpen>True</serverOpen>\r\n
27
+ \ <onlinePlayers>13626</onlinePlayers>\r\n </result>\r\n <cachedUntil>2015-09-09
28
+ 12:37:49</cachedUntil>\r\n</eveapi>"
29
+ http_version:
30
+ recorded_at: Wed, 09 Sep 2015 12:35:44 GMT
31
+ recorded_with: VCR 2.9.3