mini_strava 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c58a54a619f569d1e533819d5302ec0d51ec3ee5
4
- data.tar.gz: be9a775892380738db710c16240bbd1fa4c6a238
3
+ metadata.gz: 283fa929dfe45b64acbfb614afd4a2d0774a2274
4
+ data.tar.gz: 61b1b866af9bf08a97e885b374df0ec2a3936a70
5
5
  SHA512:
6
- metadata.gz: 7c5b4d9acaec79c52161ab3704382d5de1631baa4d01ff923c42413b3b8da69ca52fe459e58e4fba7e6787e35a1b7746b1bac063509f88916064849505b6caae
7
- data.tar.gz: 8e564ed16e44006145fb1c1b3503fc56f62349823970197f78990de3999ddde17b71ca8b5ce01f18c72ba677b389929ae2a337992792efc7423cb2252786f889
6
+ metadata.gz: 1f7ee21748f15d648d5a94f39f1fb4a77377b38759e760ab8b4cab3dbcf7200e5265e121302c8ea9238700e83a8f5e88383862924b5855c498bf3693643fdf4a
7
+ data.tar.gz: b09c5fc779f2a9d14761f8f3901152513cd9966ecbd2d9e5db84babc9089a13a4f8c3ddae0581fc5809263735d0141e1a413e52fbba951fedb54e8280048cd20
@@ -31,6 +31,11 @@ module MiniStrava
31
31
  parse_response response, Models::Activity
32
32
  end
33
33
 
34
+ def segment id
35
+ response = get "/segments/#{id}"
36
+ parse_response response, Models::Segment
37
+ end
38
+
34
39
  private
35
40
 
36
41
  def get path, params={}
@@ -0,0 +1,12 @@
1
+ module MiniStrava
2
+ module Models
3
+ class Map
4
+ include Model
5
+
6
+ model_attr :id
7
+ model_attr :polyline
8
+ model_attr :resource_state
9
+ end
10
+ end
11
+ end
12
+
@@ -15,6 +15,7 @@ module MiniStrava
15
15
  model_attr :city
16
16
  model_attr :state
17
17
  model_attr :country
18
+ model_attr :map, type: :Map
18
19
  end
19
20
  end
20
21
  end
@@ -1,3 +1,3 @@
1
1
  module MiniStrava
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/mini_strava.rb CHANGED
@@ -4,6 +4,7 @@ require 'mini_strava/model'
4
4
  require 'mini_strava/models/activity'
5
5
  require 'mini_strava/models/athlete'
6
6
  require 'mini_strava/models/gear'
7
+ require 'mini_strava/models/map'
7
8
  require 'mini_strava/models/segment'
8
9
  require 'mini_strava/models/segment_effort'
9
10
 
data/spec/client_spec.rb CHANGED
@@ -61,6 +61,18 @@ module MiniStrava
61
61
  end
62
62
  end
63
63
 
64
+ describe '#segment' do
65
+ it 'should retrieve segment' do
66
+ body = fixture 'segment'
67
+ response = double('response', body: body)
68
+ expect(subject).to receive(:get).with('/segments/10').and_return(response)
69
+
70
+ segment = subject.segment 10
71
+ expect(segment.class).to eq(Models::Segment)
72
+ expect(segment.name).to eq('Up Lower Caledonian Rd')
73
+ end
74
+ end
75
+
64
76
  context '#activities' do
65
77
  it 'should retrieve activities' do
66
78
  body = fixture 'activities'
@@ -83,7 +95,7 @@ module MiniStrava
83
95
 
84
96
  context '401 Not Authorized' do
85
97
  it 'should raise a AuthorizationError exception' do
86
- response = double('response', code: 401)
98
+ response = double('response', code: '401')
87
99
  expect(Net::HTTP).to receive(:start).and_return(response)
88
100
  expect do
89
101
  subject.athlete
@@ -0,0 +1,6 @@
1
+ {
2
+ "id": "s123456",
3
+ "polyline": "foobarbaz",
4
+ "resource_state": 3
5
+ }
6
+
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ module MiniStrava
4
+ module Models
5
+ describe Map do
6
+ describe 'model attributes' do
7
+ it 'should set model attributes' do
8
+ expected = [
9
+ :id, :polyline, :resource_state,
10
+ ].collect do |attr|
11
+ {
12
+ name: attr.to_s,
13
+ type: Model::DefaultAttrType,
14
+ default: nil
15
+ }
16
+ end
17
+
18
+ expect(Map.model_attributes).to match_array(expected)
19
+ end
20
+ end
21
+
22
+ describe 'build from attributes' do
23
+ subject { Map.build parse_fixture('map') }
24
+
25
+ it 'should set attributes values' do
26
+ expect(subject.id).to eq("s123456")
27
+ expect(subject.polyline).to eq('foobarbaz')
28
+ expect(subject.resource_state).to eq(3)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+
@@ -18,6 +18,12 @@ module MiniStrava
18
18
  }
19
19
  end
20
20
 
21
+ expected << {
22
+ name: 'map',
23
+ type: :Map,
24
+ default: nil
25
+ }
26
+
21
27
  expect(Segment.model_attributes).to match_array(expected)
22
28
  end
23
29
  end
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,7 @@ require_relative '../lib/mini_strava/models/athlete'
4
4
  require_relative '../lib/mini_strava/models/activity'
5
5
  require_relative '../lib/mini_strava/models/segment'
6
6
  require_relative '../lib/mini_strava/models/segment_effort'
7
+ require_relative '../lib/mini_strava/models/map'
7
8
  require_relative '../lib/mini_strava/client'
8
9
 
9
10
  require 'json'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_strava
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Franz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-31 00:00:00.000000000 Z
11
+ date: 2016-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ripl
@@ -86,6 +86,7 @@ files:
86
86
  - lib/mini_strava/models/activity.rb
87
87
  - lib/mini_strava/models/athlete.rb
88
88
  - lib/mini_strava/models/gear.rb
89
+ - lib/mini_strava/models/map.rb
89
90
  - lib/mini_strava/models/segment.rb
90
91
  - lib/mini_strava/models/segment_effort.rb
91
92
  - lib/mini_strava/version.rb
@@ -95,12 +96,14 @@ files:
95
96
  - spec/fixtures/activity.json
96
97
  - spec/fixtures/athlete.json
97
98
  - spec/fixtures/gear.json
99
+ - spec/fixtures/map.json
98
100
  - spec/fixtures/segment.json
99
101
  - spec/fixtures/segment_effort.json
100
102
  - spec/model_spec.rb
101
103
  - spec/models/activity_spec.rb
102
104
  - spec/models/athlete_spec.rb
103
105
  - spec/models/gear_spec.rb
106
+ - spec/models/map_spec.rb
104
107
  - spec/models/segment_effort_spec.rb
105
108
  - spec/models/segment_spec.rb
106
109
  - spec/spec_helper.rb
@@ -134,12 +137,14 @@ test_files:
134
137
  - spec/fixtures/activity.json
135
138
  - spec/fixtures/athlete.json
136
139
  - spec/fixtures/gear.json
140
+ - spec/fixtures/map.json
137
141
  - spec/fixtures/segment.json
138
142
  - spec/fixtures/segment_effort.json
139
143
  - spec/model_spec.rb
140
144
  - spec/models/activity_spec.rb
141
145
  - spec/models/athlete_spec.rb
142
146
  - spec/models/gear_spec.rb
147
+ - spec/models/map_spec.rb
143
148
  - spec/models/segment_effort_spec.rb
144
149
  - spec/models/segment_spec.rb
145
150
  - spec/spec_helper.rb