omniauth-mapmyfitness 0.0.1 → 0.1.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.
- data/.gitignore +1 -0
- data/Gemfile +2 -0
- data/README.md +26 -7
- data/lib/omniauth/strategies/mapmyfitness.rb +19 -0
- data/lib/omniauth-mapmyfitness/version.rb +1 -1
- data/omniauth-mapmyfitness.gemspec +2 -3
- data/spec/omniauth/strategies/mapmyfitness_spec.rb +21 -1
- metadata +5 -21
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,24 +1,43 @@
|
|
|
1
1
|
# Omniauth::Mapmyfitness
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
OmniAuth Strategy for [Map My Fitness API](http://api.mapmyfitness.com/3.1/)
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
Add this line to your application's Gemfile:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'omniauth-mapmyfitness'
|
|
11
|
+
```
|
|
11
12
|
And then execute:
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
```ruby
|
|
15
|
+
$ bundle
|
|
16
|
+
```
|
|
15
17
|
Or install it yourself as:
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
```ruby
|
|
20
|
+
$ gem install omniauth-mapmyfitness
|
|
21
|
+
```
|
|
18
22
|
|
|
19
23
|
## Usage
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
To integrate the strategy into your middleware:
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
use OmniAuth::Builder do
|
|
29
|
+
provider :mapmyfitness, ENV['consumer_key'], ENV['secret_key']
|
|
30
|
+
end
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
In Rails, you'll want to add a middleware stack or define it inside an initializer file `config/initializers/omniauth.rb`
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
Rails.application.config.middleware.use OmniAuth::Builder do
|
|
37
|
+
provider :mapmyfitness, ENV['consumer_key'], ENV['secret_key']
|
|
38
|
+
end
|
|
39
|
+
```
|
|
40
|
+
|
|
22
41
|
|
|
23
42
|
## Contributing
|
|
24
43
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "omniauth-oauth"
|
|
2
|
+
require "multi_xml"
|
|
2
3
|
|
|
3
4
|
module OmniAuth
|
|
4
5
|
module Strategies
|
|
@@ -10,6 +11,24 @@ module OmniAuth
|
|
|
10
11
|
:site => "http://api.mapmyfitness.com/3.1"
|
|
11
12
|
}
|
|
12
13
|
|
|
14
|
+
uid { raw_info['result']['output']['user']['user_id'] }
|
|
15
|
+
|
|
16
|
+
info do
|
|
17
|
+
{
|
|
18
|
+
:email => raw_info['result']['output']['user']['email'],
|
|
19
|
+
:first_name => raw_info['result']['output']['user']['first_name'],
|
|
20
|
+
:last_name => raw_info['result']['output']['user']['last_name']
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
extra do
|
|
25
|
+
{ 'raw_info' => raw_info }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def raw_info
|
|
29
|
+
@raw_info ||= MultiXml.parse(access_token.get("/users/get_user?o=xml").body)
|
|
30
|
+
end
|
|
31
|
+
|
|
13
32
|
end
|
|
14
33
|
|
|
15
34
|
end
|
|
@@ -10,16 +10,15 @@ Gem::Specification.new do |gem|
|
|
|
10
10
|
gem.email = ["baldrailers@gmail.com"]
|
|
11
11
|
gem.description = %q{OmniOauth strategy for mapmyfitness}
|
|
12
12
|
gem.summary = gem.description
|
|
13
|
-
gem.homepage = "https://github.com/baldrailers"
|
|
13
|
+
gem.homepage = "https://github.com/baldrailers/omniauth-mapmyfitness"
|
|
14
14
|
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
18
18
|
gem.require_paths = ["lib"]
|
|
19
19
|
|
|
20
|
-
gem.add_runtime_dependency 'omniauth', '~> 1.0'
|
|
21
20
|
gem.add_runtime_dependency 'omniauth-oauth'
|
|
22
|
-
gem.add_runtime_dependency '
|
|
21
|
+
gem.add_runtime_dependency 'multi_xml'
|
|
23
22
|
|
|
24
23
|
gem.add_development_dependency 'rspec'
|
|
25
24
|
gem.add_development_dependency 'webmock'
|
|
@@ -2,6 +2,26 @@ require 'spec_helper'
|
|
|
2
2
|
|
|
3
3
|
describe "OmniAuth::Strategies::Mapmyfitness" do
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
subject do
|
|
6
|
+
OmniAuth::Strategies::Mapmyfitness.new(nil, @options || {})
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
context 'client options' do
|
|
10
|
+
it 'has correct Mapmyfitness site' do
|
|
11
|
+
subject.options.client_options.site.should eq('http://api.mapmyfitness.com/3.1')
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# uid { raw_info['result']['output']['user']['user_id'] }
|
|
16
|
+
context '#uid' do
|
|
17
|
+
before :each do
|
|
18
|
+
subject.stub(:raw_info) { { 'user_id' => '123'} }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'returns the user_id from raw_info' do
|
|
22
|
+
subject.uid.should eq('123')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
6
26
|
|
|
7
27
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: omniauth-mapmyfitness
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -11,22 +11,6 @@ bindir: bin
|
|
|
11
11
|
cert_chain: []
|
|
12
12
|
date: 2012-10-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
|
-
- !ruby/object:Gem::Dependency
|
|
15
|
-
name: omniauth
|
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
|
-
requirements:
|
|
19
|
-
- - ~>
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: '1.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: '1.0'
|
|
30
14
|
- !ruby/object:Gem::Dependency
|
|
31
15
|
name: omniauth-oauth
|
|
32
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,7 +28,7 @@ dependencies:
|
|
|
44
28
|
- !ruby/object:Gem::Version
|
|
45
29
|
version: '0'
|
|
46
30
|
- !ruby/object:Gem::Dependency
|
|
47
|
-
name:
|
|
31
|
+
name: multi_xml
|
|
48
32
|
requirement: !ruby/object:Gem::Requirement
|
|
49
33
|
none: false
|
|
50
34
|
requirements:
|
|
@@ -159,7 +143,7 @@ files:
|
|
|
159
143
|
- omniauth-mapmyfitness.gemspec
|
|
160
144
|
- spec/omniauth/strategies/mapmyfitness_spec.rb
|
|
161
145
|
- spec/spec_helper.rb
|
|
162
|
-
homepage: https://github.com/baldrailers
|
|
146
|
+
homepage: https://github.com/baldrailers/omniauth-mapmyfitness
|
|
163
147
|
licenses: []
|
|
164
148
|
post_install_message:
|
|
165
149
|
rdoc_options: []
|
|
@@ -173,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
173
157
|
version: '0'
|
|
174
158
|
segments:
|
|
175
159
|
- 0
|
|
176
|
-
hash:
|
|
160
|
+
hash: -577243975416488922
|
|
177
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
162
|
none: false
|
|
179
163
|
requirements:
|
|
@@ -182,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
182
166
|
version: '0'
|
|
183
167
|
segments:
|
|
184
168
|
- 0
|
|
185
|
-
hash:
|
|
169
|
+
hash: -577243975416488922
|
|
186
170
|
requirements: []
|
|
187
171
|
rubyforge_project:
|
|
188
172
|
rubygems_version: 1.8.24
|