scoreoid 1.0.0 → 1.1.0
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.
- data/CHANGES.md +5 -0
- data/README.md +6 -2
- data/Rakefile +5 -0
- data/lib/scoreoid/api.rb +19 -8
- data/lib/scoreoid/version.rb +1 -1
- data/scoreoid.gemspec +1 -0
- data/spec/api_spec.rb +2 -2
- metadata +18 -2
data/CHANGES.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
Scoreoid Ruby Change Log
|
2
2
|
========================
|
3
3
|
|
4
|
+
2012-11-25 *v1.1.0*
|
5
|
+
-------------------
|
6
|
+
|
7
|
+
- Allow passing date parameters (`:start_date` or `:end_date`) in natural language, such as "1 year ago". You can still pass a Date or Time object instead.
|
8
|
+
|
4
9
|
2012-11-25 *v1.0.0*
|
5
10
|
-------------------
|
6
11
|
|
data/README.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
Scoreoid Ruby
|
2
2
|
=============
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
Summary
|
5
|
+
-------
|
6
|
+
|
7
|
+
Scoreoid Ruby is a wrapper for the [Scoreoid](https://www.scoreoid.com/) API.
|
6
8
|
|
7
9
|
Installation
|
8
10
|
------------
|
@@ -22,6 +24,8 @@ Or install it yourself as:
|
|
22
24
|
Usage
|
23
25
|
-----
|
24
26
|
|
27
|
+
Full documentation is [available online](http://rubydoc.info/gems/scoreoid/frames).
|
28
|
+
|
25
29
|
To get started, configure Scoreoid Ruby with your API key and game ID:
|
26
30
|
|
27
31
|
require 'scoreoid'
|
data/Rakefile
CHANGED
data/lib/scoreoid/api.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
|
1
|
+
require 'chronic'
|
3
2
|
require 'multi_json'
|
4
3
|
require 'rest_client'
|
5
4
|
|
@@ -12,6 +11,10 @@ module Scoreoid
|
|
12
11
|
class << self
|
13
12
|
# Query a given Scoreoid API method and return the repsonse as a string.
|
14
13
|
#
|
14
|
+
# Supplied parameters will be prepared with {.prepare_params} before sending.
|
15
|
+
# This is so that you can, for example, supply a Date object for :start_date
|
16
|
+
# even though the Scoreoid API expects it to be a string formatted as "YYYY-MM-DD".
|
17
|
+
#
|
15
18
|
# @param [String] api_method The Scoreoid API method to query
|
16
19
|
# @param [Hash] params Parameters to include in the API request
|
17
20
|
#
|
@@ -36,7 +39,6 @@ module Scoreoid
|
|
36
39
|
# @return [Hash] The Scoreoid API response parsed into a Hash.
|
37
40
|
#
|
38
41
|
# @see .query
|
39
|
-
# @see .prepare_params
|
40
42
|
def query_and_parse(api_method, params={})
|
41
43
|
params = params.merge(response: 'json')
|
42
44
|
|
@@ -50,16 +52,25 @@ module Scoreoid
|
|
50
52
|
|
51
53
|
# Attempt to coerce parameters into formats that the Scoreoid API expects.
|
52
54
|
#
|
55
|
+
# Date parameters will be parsed with Chronic, so you can supply dates in
|
56
|
+
# natural language such as "may 5th 2012" or "1 year ago".
|
57
|
+
#
|
53
58
|
# @param [Hash] params A hash of any parameters you wish to format.
|
54
59
|
#
|
55
|
-
# @option params [
|
56
|
-
# @option params [
|
60
|
+
# @option params [#to_s, #strftime] :start_date
|
61
|
+
# @option params [#to_s, #strftime] :end_date
|
57
62
|
#
|
58
63
|
# @return [Hash] The formatted parameters, ready to use in an API query.
|
59
64
|
def prepare_params(params)
|
60
|
-
params.each do |key,
|
61
|
-
if [:start_date, :end_date].include?(key)
|
62
|
-
params[key]
|
65
|
+
params.each do |key, _|
|
66
|
+
if [:start_date, :end_date].include?(key)
|
67
|
+
if params[key].respond_to? :to_s
|
68
|
+
params[key] = Chronic.parse(params[key].to_s, context: :past)
|
69
|
+
end
|
70
|
+
|
71
|
+
if params[key].respond_to? :strftime
|
72
|
+
params[key] = params[key].strftime '%Y-%m-%d'
|
73
|
+
end
|
63
74
|
end
|
64
75
|
end
|
65
76
|
params
|
data/lib/scoreoid/version.rb
CHANGED
data/scoreoid.gemspec
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -34,8 +34,8 @@ describe Scoreoid::API do
|
|
34
34
|
|
35
35
|
it 'should format the parameters before sending' do
|
36
36
|
example_response = %q({"players": 7})
|
37
|
-
given_params = {start_date: Date.new(2010, 1, 1), end_date:
|
38
|
-
formatted_params = {start_date: '2010-01-01', end_date: '
|
37
|
+
given_params = {start_date: Date.new(2010, 1, 1), end_date: 'december 3rd 2011'}
|
38
|
+
formatted_params = {start_date: '2010-01-01', end_date: '2011-12-03'}
|
39
39
|
|
40
40
|
RestClient.stub(:post).and_return(example_response)
|
41
41
|
RestClient.should_receive(:post).with('https://www.scoreoid.com/api/playerCount', formatted_params)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scoreoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: chronic
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.8.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.8.0
|
14
30
|
- !ruby/object:Gem::Dependency
|
15
31
|
name: multi_json
|
16
32
|
requirement: !ruby/object:Gem::Requirement
|