lelylan-rb 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,27 +1,29 @@
1
- *.gem
2
- *.rbc
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore temporary files
3
8
  *.swp
4
9
  *.swo
5
- *.tmproj
6
10
  *.DS_Store
7
- *~
8
- .\#*
9
- .bundle
10
- .config
11
- .yardoc
12
- .yardopts
13
- .rvmrc
14
- Gemfile.lock
15
- InstalledFiles
16
- \#*
17
- _yardoc
18
- coverage
19
- doc/
20
- lib/bundler/man
21
- pkg
22
- rdoc
23
- spec/reports
24
- test/tmp
25
- test/version_tmp
26
- tmp
27
- tmtags
11
+
12
+ # Ignore bundler config.
13
+ /.bundle
14
+
15
+ # Ignore all logfiles and tempfiles.
16
+ /log/*.log
17
+ /tmp
18
+
19
+ # Ignore .rvmrc file.
20
+ /.rvmrc
21
+
22
+ # Procfile env
23
+ *.env
24
+
25
+ # Documentation
26
+ docs/
27
+
28
+ # Local tests
29
+ .test.rb
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.0.5 (May 16, 2013)
4
+
5
+ * Added [categories](http://dev.lelylan.com/api/types#categories) service
6
+ * Updated physical service to send the secret header
7
+
3
8
  ## v0.0.4 (January 26, 2013)
4
9
 
5
10
  * Full support to error handling
@@ -0,0 +1,87 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ lelylan-rb (0.0.5)
5
+ addressable (~> 2.2)
6
+ faraday (~> 0.8)
7
+ faraday_middleware (~> 0.8)
8
+ hashie (~> 1.2)
9
+ multi_json (~> 1.3)
10
+ oauth2 (~> 0.8)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ addressable (2.3.2)
16
+ coderay (1.0.8)
17
+ crack (0.3.2)
18
+ diff-lcs (1.1.3)
19
+ faraday (0.8.4)
20
+ multipart-post (~> 1.1)
21
+ faraday_middleware (0.9.0)
22
+ faraday (>= 0.7.4, < 0.9)
23
+ fuubar (1.1.0)
24
+ rspec (~> 2.0)
25
+ rspec-instafail (~> 0.2.0)
26
+ ruby-progressbar (~> 1.0.0)
27
+ growl (1.0.3)
28
+ guard (1.6.1)
29
+ listen (>= 0.6.0)
30
+ lumberjack (>= 1.0.2)
31
+ pry (>= 0.9.10)
32
+ thor (>= 0.14.6)
33
+ guard-rspec (2.4.0)
34
+ guard (>= 1.1)
35
+ rspec (~> 2.11)
36
+ hashie (1.2.0)
37
+ httpauth (0.2.0)
38
+ json (1.7.6)
39
+ jwt (0.1.5)
40
+ multi_json (>= 1.0)
41
+ listen (0.7.2)
42
+ lumberjack (1.0.2)
43
+ method_source (0.8.1)
44
+ multi_json (1.5.0)
45
+ multipart-post (1.1.5)
46
+ oauth2 (0.8.0)
47
+ faraday (~> 0.8)
48
+ httpauth (~> 0.1)
49
+ jwt (~> 0.1.4)
50
+ multi_json (~> 1.0)
51
+ rack (~> 1.2)
52
+ pry (0.9.11.4)
53
+ coderay (~> 1.0.5)
54
+ method_source (~> 0.8)
55
+ slop (~> 3.4)
56
+ rack (1.5.0)
57
+ rake (10.0.3)
58
+ rb-fsevent (0.9.3)
59
+ rspec (2.12.0)
60
+ rspec-core (~> 2.12.0)
61
+ rspec-expectations (~> 2.12.0)
62
+ rspec-mocks (~> 2.12.0)
63
+ rspec-core (2.12.2)
64
+ rspec-expectations (2.12.1)
65
+ diff-lcs (~> 1.1.3)
66
+ rspec-instafail (0.2.4)
67
+ rspec-mocks (2.12.1)
68
+ ruby-progressbar (1.0.2)
69
+ slop (3.4.3)
70
+ thor (0.17.0)
71
+ webmock (1.9.0)
72
+ addressable (>= 2.2.7)
73
+ crack (>= 0.1.7)
74
+
75
+ PLATFORMS
76
+ ruby
77
+
78
+ DEPENDENCIES
79
+ fuubar
80
+ growl
81
+ guard-rspec
82
+ json
83
+ lelylan-rb!
84
+ rake
85
+ rb-fsevent
86
+ rspec
87
+ webmock
data/README.md CHANGED
@@ -2,14 +2,13 @@
2
2
 
3
3
  Ruby client library for [Lelylan API](http://dev.lelylan.com)
4
4
 
5
- ## What is Lelylan
5
+ ## Introduction
6
6
 
7
- Lelylan makes it easy for developers to monitor and control all devices in
8
- your house providing a simple, self descriptive and consistent representation of them. Lelylan
9
- maps every device in your house to a unique URI which will provide a simple access over it.
7
+ #### What is Lelylan
8
+
9
+ [Lelylan](http://lelylan.com) makes it easy for developers to monitor and control all devices
10
+ in your house providing a simple and consistent REST API.
10
11
 
11
- With Lelylan developers can build secure applications and services that use real-time data
12
- coming from the real world to create the future connected house.
13
12
 
14
13
  ## Requirements
15
14
 
@@ -28,7 +27,7 @@ gem 'oauth2'
28
27
  Development version.
29
28
 
30
29
  ```ruby
31
- gem 'lelylan-rb', require: 'lelylan', git: 'https://github.com/lelylan/lelylan-rb', branch: 'master'
30
+ gem 'lelylan-rb', require: 'lelylan', git: 'https://github.com/lelylan/lelylan-rb'
32
31
  ```
33
32
 
34
33
  ## Getting started
@@ -91,54 +90,20 @@ subscriptions = lelylan.subscriptions
91
90
 
92
91
  ### Implemented Services
93
92
 
94
- **Devices** - The Device API defines a set of services to monitor and control every existing
95
- device. Its final goal is to map every device to a unique URI which provides control over it.
96
- [See examples](http://dev.lelylan.com/api/devices#ruby).
97
-
98
- **Activations** - Easy way to move the device ownership between people.
99
- [See examples](http://dev.lelylan.com/api/devices#ruby).
100
-
101
- **Histories** - When a device updates its properties or executes a function a new history
102
- resource with a snapshot of all device properties is created by Lelylan, also the ones that
103
- has not been updated. This makes it easy to recreate previous device status and extract usage
104
- patterns to improve the way people live their house.
105
- [See examples](http://dev.lelylan.com/api/devices/histories#ruby).
106
-
107
- **Types** - A type describes the structure of a device. In its simplest form every type can be
108
- defined as the combination of three key elements: properties (what vary during time), functions
109
- (what a device can do), statuses (what a device is in a specific time of its life).
110
- [See examples](http://dev.lelylan.com/api/types#ruby).
111
-
112
- **Properties** - A property is whatever vary in a device during time. It can be the intensity in
113
- a dimmer, the temperature in a cooling system or the volume in a television.
114
- [See examples](http://dev.lelylan.com/api/types/properties#ruby).
115
-
116
- **Functions** - Functions defines the daily interactions you have with the devices in your house,
117
- for example when you turn on a light, close a door or raise the temperature in a room.
118
- With functions you can control any device in the same way you do everyday of your life.
119
- [See examples](http://dev.lelylan.com/api/types/functions#ruby).
93
+ Learn how to use Lelylan and AngulasJS in deep.
120
94
 
121
- **Statuses** - Properties are not always enough to describe the status of a device. Think at a roller
122
- shutter for example. It has the property aperture that is 100 when open or 0 when closed.
123
- But what if the roller shutter is opening? It is nether open or close. To have a complete
124
- control over the device status in a specific moment of its life is to use the status API.
125
- [See examples](http://dev.lelylan.com/api/types/statuses#ruby).
126
-
127
- **Locations** - Locations are the places we live in and where physical devices are placed. Lelylan identifies
128
- three types of locations usually organized in a hierarchical structure: houses, floors and
129
- rooms.
130
- [See examples](http://dev.lelylan.com/api/locations#ruby).
131
-
132
- **Physical Devices** - Physical devices are the real objects you physically interact with everyday of your life
133
- like lights, appliances, alarms and more. To enable the communication between Lelylan and
134
- physical devices they should provide a simple set of web services.
135
- [See examples](http://dev.lelylan.com/api/physicals#ruby).
136
-
137
- **Subscriptions** - Get realtime updates by subscribing to a resource and its related event.
138
- [See examples](http://dev.lelylan.com/api/realtime#ruby).
139
-
140
- **User Profile** - Returns extended information for the authenticated user.
141
- [See examples](http://dev.lelylan.com/api/core#get-a-user-ruby).
95
+ - [x] [Devices](http://dev.lelylan.com/api/devices#angular).
96
+ - [x] [Activations](http://dev.lelylan.com/api/devices#angular).
97
+ - [x] [Histories](http://dev.lelylan.com/api/devices/histories#angular).
98
+ - [x] [Types](http://dev.lelylan.com/api/types#angular).
99
+ - [x] [Properties](http://dev.lelylan.com/api/types/properties#angular).
100
+ - [x] [Functions](http://dev.lelylan.com/api/types/functions#angular).
101
+ - [x] [Statuses](http://dev.lelylan.com/api/types/statuses#angular).
102
+ - [x] [Locations](http://dev.lelylan.com/api/locations#angular).
103
+ - [x] [Physical devices](http://dev.lelylan.com/api/physicals#angular).
104
+ - [x] [Subscriptions](http://dev.lelylan.com/api/realtime#angular).
105
+ - [x] [User Profile](http://dev.lelylan.com/api/core#get-a-user-angular).
106
+ - [x] [OAuth2](http://dev.lelylan.com/api/oauth#implicit-grant-angular).
142
107
 
143
108
 
144
109
  ### Authorization flows
@@ -175,9 +140,12 @@ Exceptions are raised when a 4xx or 5xx status code is returned.
175
140
 
176
141
  Lelylan::BadRequest # 400
177
142
  Lelylan::Unauthorized # 401
143
+ Lelylan::Forbidden # 403
178
144
  Lelylan::NotFound # 404
145
+ Lelylan::NotAcceptable # 406
179
146
  Lelylan::NotValid # 422
180
147
  Lelylan::InternalServerError # 500
148
+ Lelylan::NotImplemented # 501
181
149
  Lelylan::BadGateway # 502
182
150
  Lelylan::ServiceUnavailable # 503
183
151
 
@@ -195,7 +163,7 @@ end
195
163
  Unluckily the `#message` method can only be a string. For this reason we
196
164
  can't return a JSON structure when lelylan offers it, but we return the
197
165
  `error.description` value.
198
- Learn more about the [error response structure](http://dev.lelylan.com/api/core#errors).
166
+ Learn more about [errors on Lelylan](http://dev.lelylan.com/api/core#errors).
199
167
 
200
168
 
201
169
  ### Configurations
@@ -216,8 +184,6 @@ lelylan = Lelylan::Client.new(token: token)
216
184
  lelylan.endpoint = 'https://lelylan.yourhouse.com'
217
185
  ```
218
186
 
219
- Learn more about the [error response structure](http://dev.lelylan.com/api/core#errors).
220
-
221
187
 
222
188
  ## Contributing
223
189
 
@@ -9,6 +9,7 @@ require 'lelylan/client/type'
9
9
  require 'lelylan/client/property'
10
10
  require 'lelylan/client/function'
11
11
  require 'lelylan/client/status'
12
+ require 'lelylan/client/category'
12
13
  require 'lelylan/client/location'
13
14
  require 'lelylan/client/subscription'
14
15
  require 'lelylan/client/physical'
@@ -37,6 +38,7 @@ module Lelylan
37
38
  include Lelylan::Client::Property
38
39
  include Lelylan::Client::Function
39
40
  include Lelylan::Client::Status
41
+ include Lelylan::Client::Category
40
42
  include Lelylan::Client::Location
41
43
  include Lelylan::Client::Subscription
42
44
  include Lelylan::Client::Physical
@@ -0,0 +1,16 @@
1
+ module Lelylan
2
+ class Client
3
+ module Category
4
+
5
+ # Public: Returns a list of categories related to owned devices.
6
+ #
7
+ # params - The Hash used to refine the search (default: {}).
8
+ #
9
+ # Returns Array list of categories.
10
+ #
11
+ def categories(params = {})
12
+ get('/categories', params)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -19,11 +19,7 @@ module Lelylan
19
19
  # Returns Hashie The JSON resource.
20
20
  #
21
21
  def physical_properties(uri, secret, params)
22
- params[:nonce] = SecureRandom.uuid if not params[:nonce]
23
-
24
- digest = OpenSSL::Digest::Digest.new('sha1')
25
- signature = OpenSSL::HMAC.hexdigest(digest, secret, params.to_json.to_s)
26
- headers = { 'X-Physical-Signature' => signature }
22
+ headers = { 'X-Physical-Secret' => secret }
27
23
 
28
24
  request = Faraday.new do |builder|
29
25
  builder.request :json
@@ -34,7 +30,6 @@ module Lelylan
34
30
  end
35
31
 
36
32
  response = request.put(uri, params, headers)
37
-
38
33
  response.body
39
34
  end
40
35
  end
@@ -2,7 +2,7 @@ module Lelylan
2
2
  class Version
3
3
  MAJOR = 0 unless defined? MAJOR
4
4
  MINOR = 0 unless defined? MINOR
5
- PATCH = 4 unless defined? PATCH
5
+ PATCH = 5 unless defined? PATCH
6
6
  PRE = nil unless defined? PRE
7
7
 
8
8
  class << self
@@ -1,7 +1 @@
1
- [{
2
- "uri": "http://www.example.com/categories/500425f5d033a9b4ac000003",
3
- "id": "500425f5d033a9b4ac000003",
4
- "name": "Lighting",
5
- "created_at": "2012-07-16T14:32:21Z",
6
- "updated_at": "2012-07-16T14:32:21Z"
7
- }]
1
+ [{"name":"lights"},{"name":"locks"},{"name":"thermostats"},{"name":"alarms"},{"name":"meters"},{"name":"cameras"},{"name":"windows"},{"name":"appliances"},{"name":"gardenings"},{"name":"sensors"},{"name":"others"}]
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+
3
+ describe Lelylan::Client::Category do
4
+
5
+ let(:lelylan) do
6
+ a_client
7
+ end
8
+
9
+
10
+ describe '#categories' do
11
+
12
+ before do
13
+ stub_get('/categories').with(query: { per: 10 }).to_return(body: fixture('categories.json'))
14
+ end
15
+
16
+ let!(:categories) do
17
+ lelylan.categories(per: 10)
18
+ end
19
+
20
+ it 'returns the categories' do
21
+ categories.first.name.should_not be_nil
22
+ end
23
+
24
+ it 'sends the request' do
25
+ a_get('/categories').with(query: { per: 10 }).should have_been_made
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lelylan-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-26 00:00:00.000000000 Z
12
+ date: 2013-05-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
16
- requirement: &2164920560 !ruby/object:Gem::Requirement
16
+ requirement: &2164363120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2164920560
24
+ version_requirements: *2164363120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: oauth2
27
- requirement: &2164919960 !ruby/object:Gem::Requirement
27
+ requirement: &2164362600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.8'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2164919960
35
+ version_requirements: *2164362600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: faraday
38
- requirement: &2164919140 !ruby/object:Gem::Requirement
38
+ requirement: &2164361820 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.8'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2164919140
46
+ version_requirements: *2164361820
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday_middleware
49
- requirement: &2164918420 !ruby/object:Gem::Requirement
49
+ requirement: &2164360980 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.8'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2164918420
57
+ version_requirements: *2164360980
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hashie
60
- requirement: &2164917860 !ruby/object:Gem::Requirement
60
+ requirement: &2164360480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.2'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2164917860
68
+ version_requirements: *2164360480
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: multi_json
71
- requirement: &2164917360 !ruby/object:Gem::Requirement
71
+ requirement: &2164359960 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.3'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2164917360
79
+ version_requirements: *2164359960
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: json
82
- requirement: &2164916820 !ruby/object:Gem::Requirement
82
+ requirement: &2164359440 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2164916820
90
+ version_requirements: *2164359440
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rake
93
- requirement: &2164916180 !ruby/object:Gem::Requirement
93
+ requirement: &2164358840 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2164916180
101
+ version_requirements: *2164358840
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec
104
- requirement: &2164915400 !ruby/object:Gem::Requirement
104
+ requirement: &2164358160 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2164915400
112
+ version_requirements: *2164358160
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: webmock
115
- requirement: &2164914940 !ruby/object:Gem::Requirement
115
+ requirement: &2164357520 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2164914940
123
+ version_requirements: *2164357520
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: guard-rspec
126
- requirement: &2164914440 !ruby/object:Gem::Requirement
126
+ requirement: &2164357020 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2164914440
134
+ version_requirements: *2164357020
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: fuubar
137
- requirement: &2164913860 !ruby/object:Gem::Requirement
137
+ requirement: &2164356520 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2164913860
145
+ version_requirements: *2164356520
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: growl
148
- requirement: &2164913220 !ruby/object:Gem::Requirement
148
+ requirement: &2164355840 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *2164913220
156
+ version_requirements: *2164355840
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: rb-fsevent
159
- requirement: &2164912480 !ruby/object:Gem::Requirement
159
+ requirement: &2164355200 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *2164912480
167
+ version_requirements: *2164355200
168
168
  description: Ruby wrapper for Lelylan API
169
169
  email:
170
170
  - touch@lelylan.com
@@ -175,6 +175,7 @@ files:
175
175
  - .gitignore
176
176
  - CHANGELOG.md
177
177
  - Gemfile
178
+ - Gemfile.lock
178
179
  - Guardfile
179
180
  - LICENSE.md
180
181
  - README.md
@@ -184,6 +185,7 @@ files:
184
185
  - lib/lelylan.rb
185
186
  - lib/lelylan/authentication.rb
186
187
  - lib/lelylan/client.rb
188
+ - lib/lelylan/client/category.rb
187
189
  - lib/lelylan/client/device.rb
188
190
  - lib/lelylan/client/function.rb
189
191
  - lib/lelylan/client/history.rb
@@ -201,7 +203,6 @@ files:
201
203
  - lib/lelylan/version.rb
202
204
  - spec/faraday/response_spec.rb
203
205
  - spec/fixtures/categories.json
204
- - spec/fixtures/category.json
205
206
  - spec/fixtures/consumption.json
206
207
  - spec/fixtures/consumptions.json
207
208
  - spec/fixtures/device.json
@@ -228,6 +229,7 @@ files:
228
229
  - spec/fixtures/type.json
229
230
  - spec/fixtures/types.json
230
231
  - spec/helper.rb
232
+ - spec/lelylan/client/category_spec.rb
231
233
  - spec/lelylan/client/device_spec.rb
232
234
  - spec/lelylan/client/function_spec.rb
233
235
  - spec/lelylan/client/history_spec.rb
@@ -269,7 +271,6 @@ summary: Ruby wrapper for Lelylan API
269
271
  test_files:
270
272
  - spec/faraday/response_spec.rb
271
273
  - spec/fixtures/categories.json
272
- - spec/fixtures/category.json
273
274
  - spec/fixtures/consumption.json
274
275
  - spec/fixtures/consumptions.json
275
276
  - spec/fixtures/device.json
@@ -296,6 +297,7 @@ test_files:
296
297
  - spec/fixtures/type.json
297
298
  - spec/fixtures/types.json
298
299
  - spec/helper.rb
300
+ - spec/lelylan/client/category_spec.rb
299
301
  - spec/lelylan/client/device_spec.rb
300
302
  - spec/lelylan/client/function_spec.rb
301
303
  - spec/lelylan/client/history_spec.rb
@@ -1,7 +0,0 @@
1
- {
2
- "uri": "http://www.example.com/categories/500425f8d033a9b4ac0000b1",
3
- "id": "500425f8d033a9b4ac0000b1",
4
- "name": "Lighting",
5
- "created_at": "2012-07-16T14:32:24Z",
6
- "updated_at": "2012-07-16T14:32:24Z"
7
- }