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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3df8a4fc63f24872cf8a11ddd183e6eceaf30b63
4
- data.tar.gz: 8901145d1b0e6e1806d2b6663d120f8965787a9e
3
+ metadata.gz: 10f03ac54430fc242572fef1b1a6db880c85711c
4
+ data.tar.gz: dacc13bbf1a77c06ec9f1e331b47a95e749b4d7f
5
5
  SHA512:
6
- metadata.gz: 682c72374bd4567110c2b9fa323da0c97f8f977217a877a652f6fe5ccdc2a5f7c8acf4cf1af5b9ff3e18d83101616bb6c33e915e592c7c988499d953e281cfda
7
- data.tar.gz: 83e92e28bd457cefbaf161051f333ceab2321833833ebcfcfd1305cb0f967e2591af1846952fc95d1ff1ac75057bf53c0fe8e712d61ec8675d12bb298e474220
6
+ metadata.gz: 3ae492b3f37384af0f80b5713cf21ef5b8569fd5cf5824e9114fa70767006d428d94c242a16069f34b67a278c95932e332799b08a9f340a92e6b1c5bb2d2cfae
7
+ data.tar.gz: 425796cc5308de3e70e64a80e52afca5e4810da7e80c71fd6b51682bfe7cb3b758a7b40e1ad73275e32f480d6d94e54a767f5e89b54066c0f4aa00283a95d9b1
data/.gitignore CHANGED
@@ -17,4 +17,5 @@ test/version_tmp
17
17
  tmp
18
18
  *.swp
19
19
  *.un~
20
- .DS_STORE
20
+ .DS_STORE
21
+ .env
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Wodify
2
2
 
3
- TODO: Write a gem description
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
- TODO: Write usage instructions here
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
 
@@ -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(api_key, env="production", format='json', encoding='utf-8')
12
- @api_key = api_key
12
+ def setup(apikey, env="production", type='json', encoding='utf-8')
13
+ @apikey = apikey
13
14
  @env = env
14
- @format = format
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
- authorize! opts
22
- set_request_opts! opts
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
@@ -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('customer/gettransactions')
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
@@ -13,4 +13,4 @@ module Wodify
13
13
  end
14
14
  end
15
15
  end
16
- end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module Wodify
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,2 +1,5 @@
1
1
  require 'wodify'
2
- require 'pry'
2
+ require 'pry'
3
+ require 'dotenv'
4
+
5
+ Dotenv.load
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Wodify::Wods do
4
4
 
5
5
  before(:all) do
6
- Wodify::Requester.setup('1e6sobzytnzk0bz88bjlczyea')
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
- asset = Wodify::Wods.all location: ENV["WODIFY_LOCATION"],
14
+ wods = Wodify::Wods.all location: ENV["WODIFY_LOCATION"],
15
15
  date: ENV["WODIFY_DATE"], program: ENV["WODIFY_PROGRAM"]
16
- binding.pry
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
@@ -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.1
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-10-27 00:00:00.000000000 Z
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: {}