doge_papi 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: ae56e771f8060634b5f6a994006ef8b6c84b2c71
4
+ data.tar.gz: 6d124d02e6921b232a7897aedb482ea86ad777a4
5
+ !binary "U0hBNTEy":
6
+ metadata.gz: 1844d6eda5b3d2d1eec102bb4dd363d6378ef7349191cf8c5df62375cd7a19c7e328b20471e687dd524a06dfed629c5a36bf2f8caf52cbd5636b9e6e69143351
7
+ data.tar.gz: 67980ecc8535e6ae1eda436f32f263432af3737009f9dc9c25d55878eee5d96e4471427782f885296e83688569c51099d775eb4fcdc7b5f76797823e4e65770b
data/lib/doge/api.rb ADDED
@@ -0,0 +1,46 @@
1
+ module DogePapi
2
+ class DogeApi
3
+ attr_accessor :api_key
4
+
5
+ BASE_URI = URI.parse 'https://www.dogeapi.com/wow'
6
+
7
+ CALLS_RETURNING_INTEGER = [:get_current_block]
8
+ CALLS_RETURNING_FLOAT = [
9
+ :get_balance ,
10
+ :get_address_received ,
11
+ :get_difficulty ,
12
+ :get_current_price
13
+ ]
14
+ CALLS_RETURNING_JSON = [:get_my_addresses]
15
+
16
+ def initialize api_key
17
+ @api_key = api_key
18
+ end
19
+
20
+ def build_uri m, args
21
+ uri = @base_uri
22
+ params = args.merge a: m, api_key: @api_key
23
+ uri.query = URI.encode_www_form params
24
+ uri
25
+ end
26
+
27
+ def fetch_uri uri
28
+ uri.open.read
29
+ end
30
+
31
+ def method_missing m, args = {}, &block
32
+ output = fetch_uri build_uri(m, args)
33
+ if CALLS_RETURNING_JSON.include? m
34
+ output = JSON.parse output
35
+ else
36
+ # Doge API wraps everything in double quotes,
37
+ # so we need to get rid of them first.
38
+ #
39
+ output.tr! '"', ''
40
+ output = output.to_i if CALLS_RETURNING_INTEGER.include? m
41
+ output = output.to_f if CALLS_RETURNING_FLOAT.include? m
42
+ end
43
+ output
44
+ end
45
+ end
46
+ end
data/lib/doge/chain.rb ADDED
@@ -0,0 +1,33 @@
1
+ module DogePapi
2
+ class DogeChain
3
+
4
+ BASE_URI = 'http://dogechain.info/chain/Dogecoin/q'
5
+
6
+ CALLS_RETURNING_INTEGER = [:getblockcount]
7
+ CALLS_RETURNING_FLOAT = [
8
+ :addressbalance ,
9
+ :getdifficulty ,
10
+ :getreceivedbyaddress ,
11
+ :getsentbyaddress ,
12
+ :totalbc
13
+ ]
14
+ CALLS_RETURNING_JSON = [:transactions]
15
+
16
+ def build_uri m, params
17
+ list = params.join '/'
18
+ URI.parse "#{BASE_URI}/#{m}/#{list}"
19
+ end
20
+
21
+ def fetch_uri uri
22
+ uri.open.read
23
+ end
24
+
25
+ def method_missing m, *args, &block
26
+ output = fetch_uri build_uri(m, args)
27
+ output = output.to_i if CALLS_RETURNING_INTEGER.include? m
28
+ output = output.to_f if CALLS_RETURNING_FLOAT.include? m
29
+ output = JSON.parse(output) if CALLS_RETURNING_JSON.include? m
30
+ output
31
+ end
32
+ end
33
+ end
data/lib/doge_papi.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'uri'
2
+ require 'open-uri'
3
+ require 'json'
4
+
5
+ require_relative 'doge/api'
6
+ require_relative 'doge/chain'
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: doge_papi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Maxwell Bernstein
8
+ - Mariusz Pruszynski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-02-02 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description:
15
+ email: mpruszynski@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/doge_papi.rb
21
+ - lib/doge/api.rb
22
+ - lib/doge/chain.rb
23
+ homepage: http://github.com/snicky/doge_papi
24
+ licenses:
25
+ - MIT
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.0.3
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Ruby wrapper for DogeAPI.com and DogeChain.info
47
+ test_files: []