wodify 0.0.1 → 0.0.3
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 +4 -4
- data/.gitignore +2 -1
- data/README.md +31 -2
- data/lib/wodify/requester.rb +11 -23
- data/lib/wodify/resource.rb +2 -3
- data/lib/wodify/uri_builder.rb +1 -1
- data/lib/wodify/version.rb +1 -1
- data/spec/spec_helper.rb +4 -1
- data/spec/wodify/wods_spec.rb +4 -5
- data/wodify.gemspec +2 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10f03ac54430fc242572fef1b1a6db880c85711c
|
4
|
+
data.tar.gz: dacc13bbf1a77c06ec9f1e331b47a95e749b4d7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ae492b3f37384af0f80b5713cf21ef5b8569fd5cf5824e9114fa70767006d428d94c242a16069f34b67a278c95932e332799b08a9f340a92e6b1c5bb2d2cfae
|
7
|
+
data.tar.gz: 425796cc5308de3e70e64a80e52afca5e4810da7e80c71fd6b51682bfe7cb3b758a7b40e1ad73275e32f480d6d94e54a767f5e89b54066c0f4aa00283a95d9b1
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Wodify
|
2
2
|
|
3
|
-
|
3
|
+
Lightweight gem for consuming the Wodify API.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -20,7 +20,36 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
Provide the API Key
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
Wodify::Requester.setup('api_key')
|
27
|
+
```
|
28
|
+
|
29
|
+
Retrieve WODs
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
wods = Wodify::Wods.all location: 'location',
|
33
|
+
date: '2014-10-30', program: 'CrossFit'
|
34
|
+
```
|
35
|
+
|
36
|
+
Other endpoints may be in available in the future. I'm hoping that Wodify comes completely obliterates their current API and comes up with something a little more restful.
|
37
|
+
|
38
|
+
## Testing
|
39
|
+
|
40
|
+
Create a .env file in the project root with the following:
|
41
|
+
```
|
42
|
+
WODIFY_API_KEY=
|
43
|
+
WODIFY_LOCATION=
|
44
|
+
WODIFY_PROGRAM=
|
45
|
+
WODIFY_DATE=
|
46
|
+
```
|
47
|
+
|
48
|
+
run ```rake```
|
49
|
+
|
50
|
+
## Disclaimer
|
51
|
+
|
52
|
+
The Wodify API is anything but restful... and the returned JSON is less than parsable. This is quick and dirty attempt at a gem.
|
24
53
|
|
25
54
|
## Contributing
|
26
55
|
|
data/lib/wodify/requester.rb
CHANGED
@@ -7,40 +7,28 @@ module Wodify
|
|
7
7
|
include HTTParty
|
8
8
|
|
9
9
|
class << self
|
10
|
+
attr_reader :request_data, :response_data, :apikey, :type, :encoding
|
10
11
|
|
11
|
-
def setup(
|
12
|
-
@
|
12
|
+
def setup(apikey, env="production", type='json', encoding='utf-8')
|
13
|
+
@apikey = apikey
|
13
14
|
@env = env
|
14
|
-
@
|
15
|
+
@type = type
|
15
16
|
@encoding = encoding
|
16
17
|
end
|
17
18
|
|
18
19
|
def request(verb, resource, opts={})
|
19
|
-
opts[:query] ||= {}
|
20
20
|
uri = URIBuilder.build_uri verb, resource, @env, opts
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
opts[:query] ||= {}
|
23
|
+
[:apikey, :type, :encoding].each do |param|
|
24
|
+
opts[:query][param] = self.send param
|
25
|
+
end
|
26
|
+
|
23
27
|
@request_data = { verb: verb, resource: resource, uri: uri, opts: opts }
|
24
28
|
@response_data = self.send verb, uri, opts
|
25
29
|
symbolize_keys(JSON.parse(@response_data.body))[:recordlist]
|
26
30
|
end
|
27
31
|
|
28
|
-
def authorize!(opts={})
|
29
|
-
opts[:query].reverse_merge!({ apikey: @api_key })
|
30
|
-
end
|
31
|
-
|
32
|
-
def set_request_opts!(opts={})
|
33
|
-
opts[:query].reverse_merge!({ type: @format, encoding: @encoding })
|
34
|
-
end
|
35
|
-
|
36
|
-
def request_data
|
37
|
-
@request_data
|
38
|
-
end
|
39
|
-
|
40
|
-
def response_data
|
41
|
-
@response_data
|
42
|
-
end
|
43
|
-
|
44
32
|
# recursively symbolize hash keys
|
45
33
|
def symbolize_keys(hash)
|
46
34
|
hash.inject({}){|result, (key, value)|
|
@@ -58,4 +46,4 @@ module Wodify
|
|
58
46
|
end
|
59
47
|
end
|
60
48
|
end
|
61
|
-
end
|
49
|
+
end
|
data/lib/wodify/resource.rb
CHANGED
@@ -18,7 +18,6 @@ module Wodify
|
|
18
18
|
super()
|
19
19
|
@attributes = attributes
|
20
20
|
@resource = self.class.resource
|
21
|
-
@requester = ArthrexPaymentGateway::Requester
|
22
21
|
@created = h[:id].present?
|
23
22
|
|
24
23
|
assign_attributes h if h
|
@@ -73,7 +72,7 @@ module Wodify
|
|
73
72
|
#
|
74
73
|
# if the resource can't be created by convention, it can be passed
|
75
74
|
#
|
76
|
-
# resource('
|
75
|
+
# resource('thisisnot/restful')
|
77
76
|
def resource(custom_resource=nil)
|
78
77
|
@resource ||= custom_resource || name.demodulize.downcase.to_sym
|
79
78
|
end
|
@@ -83,7 +82,7 @@ module Wodify
|
|
83
82
|
# RemoteObject.all
|
84
83
|
def all(query={})
|
85
84
|
opts = { query: query }
|
86
|
-
response = Requester.request :get, resource, opts
|
85
|
+
response = Wodify::Requester.request :get, resource, opts
|
87
86
|
end
|
88
87
|
end
|
89
88
|
end
|
data/lib/wodify/uri_builder.rb
CHANGED
data/lib/wodify/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/wodify/wods_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Wodify::Wods do
|
4
4
|
|
5
5
|
before(:all) do
|
6
|
-
Wodify::Requester.setup(
|
6
|
+
Wodify::Requester.setup(ENV["WODIFY_API_KEY"])
|
7
7
|
end
|
8
8
|
|
9
9
|
describe '#all' do
|
@@ -11,11 +11,10 @@ describe Wodify::Wods do
|
|
11
11
|
context 'with valid arguments' do
|
12
12
|
|
13
13
|
it 'retrieves wods' do
|
14
|
-
|
14
|
+
wods = Wodify::Wods.all location: ENV["WODIFY_LOCATION"],
|
15
15
|
date: ENV["WODIFY_DATE"], program: ENV["WODIFY_PROGRAM"]
|
16
|
-
|
17
|
-
expect(asset).to include(:apiwod)
|
16
|
+
expect(wods).to include(:apiwod)
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
21
|
-
end
|
20
|
+
end
|
data/wodify.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["aervans@arthrex.com"]
|
11
11
|
spec.summary = %q{Lightweight gem for consuming the Wodify API.}
|
12
12
|
spec.description = %q{Check the GitHub page for a detailed description.}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/aervans/Wodify"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec"
|
24
24
|
spec.add_development_dependency "pry"
|
25
|
+
spec.add_development_dependency "dotenv"
|
25
26
|
|
26
27
|
spec.add_dependency "httparty"
|
27
28
|
spec.add_dependency "activemodel"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wodify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Ervans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: dotenv
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: httparty
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +144,7 @@ files:
|
|
130
144
|
- spec/wodify/wods_spec.rb
|
131
145
|
- spec/wodify_spec.rb
|
132
146
|
- wodify.gemspec
|
133
|
-
homepage:
|
147
|
+
homepage: https://github.com/aervans/Wodify
|
134
148
|
licenses:
|
135
149
|
- MIT
|
136
150
|
metadata: {}
|