coinmarketcal 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzdjNjAxMjc4MjUxYjA2YTBiZDdiODM2ZDA3OTBiMjA4ZjRjMDM2Nw==
4
+ NDA2ODY1N2JhOTNlMjUyNzJlYjk4NDBhMmMwYThlZTM3ZWE4MjRlYg==
5
5
  data.tar.gz: !binary |-
6
- ZTlmZTNjYjkxYzkyYWIxNDQ0NzQxNjhjM2UzZTBkZWY3OTE2MDRiNA==
6
+ NjUzMDU1MGI2OWIzZjQ0OGYwMGZjOTcyMDdjNmIyMjdkYmY1MDcxNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjUyMTk1OGIyNmMzOTA4MmM0MTdiYWYwYWU4OWYzNjMyZGE5ZGRmNTFkM2Uw
10
- NDMwM2QxNjY3NWZmMmMzZmE4YTNiOTE5Y2RjYThhYmFjNDk3MmE2MTNmMmM2
11
- Y2MyNzY3OGE0YzdiZjVhNWQ4NjYxODNlNDdlODIxNmExN2I0MTU=
9
+ ZDljZDE0YjY2OTgxMjk4NDA5ZmFhM2I0NWNjOGYzZDk3YTYwYjBkZjVkZTUz
10
+ ZjFkMWEyY2M0YmJjNjA2Mzc5OWU3ZWY1MTE3NGQwYWZkYzQ5Yzk4MGNmZDE3
11
+ NmMwY2ZmZGMwYjk2MWRlM2U5ZThiYjliYTBmNjczNTdkZWY3MDY=
12
12
  data.tar.gz: !binary |-
13
- ZmRkNGZmNDY5MWU2YjFlYmI2MTI0ZjdjNWE2ZGE5ZjdhNGE5NDRjZWVkNjRl
14
- MzQ4OThiODg0NGZhMWI0OTc1YzUyZjA5ZjEzYjI2MDBlZWY1ZTExNjVmMjQx
15
- ZGVlNDBiZWUyMjNmMTlkYTRhMThiYjAzN2IxNTYzZjg3MGUyYTA=
13
+ MDA1NDFjMjY4YzlmYmQzMGY0NDU4N2ZhNjY3MjM0MjM2Nzg0Nzg0NTRlN2Fj
14
+ Mzg3ZDI4OWFiZTcwMmI5OGMyNGYxMjBjZDdjYzc0ZGY5YjQzYzNhMThmMWY4
15
+ YzJiYzYxNzY5MTI1MDhmMmFiMmExZjhjMGZkMTc3NmY4NmMzYzU=
data/README.md CHANGED
@@ -40,7 +40,12 @@ Coinmarketcal::Coin.all
40
40
 
41
41
  To retrieve list of events:
42
42
  ```ruby
43
- Coinmarketcal::Event.all
43
+ Coinmarketcal::Event.all coins: "bitcoin,ethereum",
44
+ max: 10,
45
+ sort_by: "created_desc",
46
+ date_range_start: "30/07/2018",
47
+ date_range_end: "30/08/2018"
48
+
44
49
  ```
45
50
 
46
51
  To retrieve list of categories:
@@ -48,6 +53,8 @@ To retrieve list of categories:
48
53
  Coinmarketcal::Category.all
49
54
  ```
50
55
 
56
+ For more information about API, visit https://api.coinmarketcal.com/
57
+
51
58
 
52
59
  ## Contributing
53
60
 
@@ -1,4 +1,5 @@
1
1
  require "coinmarketcal/version"
2
+ require "coinmarketcal/exceptions"
2
3
 
3
4
  module Coinmarketcal
4
5
  autoload :Client, 'coinmarketcal/client'
@@ -5,7 +5,7 @@ require 'json'
5
5
 
6
6
  module Coinmarketcal
7
7
  class Client
8
- HOST = 'https://api.coinmarketcal.com'
8
+ HOST = 'https://api.coinmarketcal.com'.freeze
9
9
 
10
10
  attr_reader :client_id, :client_secret, :access_token
11
11
 
@@ -39,9 +39,12 @@ module Coinmarketcal
39
39
  def return_response(response)
40
40
  if response.status.to_i == 200
41
41
  response.body
42
- else
43
- puts response.status
44
- #TODO: error handling
42
+ elsif response.status.to_i == 400
43
+ error_message = response.body["error_description"] || response.body["message"]
44
+ raise Coinmarketcal::FilterError, error_message
45
+ elsif response.status.to_i == 401
46
+ error_message = response.body["error_description"] || response.body["message"]
47
+ raise Coinmarketcal::TokenExpiredError, error_message
45
48
  end
46
49
  end
47
50
 
@@ -1,3 +1,4 @@
1
+ require 'time'
1
2
  module Coinmarketcal
2
3
  class Event
3
4
  attr_reader :id, :title, :coins, :date_event, :created_date,
@@ -6,8 +7,11 @@ module Coinmarketcal
6
7
 
7
8
  def initialize(attrs = {})
8
9
  attrs.each do |k, v|
10
+ next if ['created_date', 'date_event'].include?(k.to_s)
9
11
  self.instance_variable_set("@#{k}", v)
10
12
  end
13
+ @created_date = Time.iso8601(attrs['created_date'])
14
+ @date_event = Time.iso8601(attrs['date_event'])
11
15
  end
12
16
 
13
17
  def self.all(attrs = {})
@@ -0,0 +1,7 @@
1
+ module Coinmarketcal
2
+ class FilterError < StandardError
3
+ end
4
+
5
+ class TokenExpiredError < StandardError
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Coinmarketcal
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coinmarketcal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tore Serter
@@ -89,6 +89,7 @@ files:
89
89
  - lib/coinmarketcal/coin.rb
90
90
  - lib/coinmarketcal/configuration.rb
91
91
  - lib/coinmarketcal/event.rb
92
+ - lib/coinmarketcal/exceptions.rb
92
93
  - lib/coinmarketcal/version.rb
93
94
  homepage: https://github.com/toreserter/coinmarketcal
94
95
  licenses:
@@ -110,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
111
  version: '0'
111
112
  requirements: []
112
113
  rubyforge_project:
113
- rubygems_version: 2.6.14
114
+ rubygems_version: 2.6.8
114
115
  signing_key:
115
116
  specification_version: 4
116
117
  summary: Unofficial API Client for the CoinMarketCal API