spark_api 1.3.10 → 1.3.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2c549611eb2302c2fea482ff4664d60f0a26329a
4
+ data.tar.gz: 2376686aca2a53c0001a530bf974a78bd692d519
5
+ SHA512:
6
+ metadata.gz: c17900a8ba4357e97d98dfce22a1109b28cf4ac1e5288ad28c5a226664579d1d8e962b682ece9ccb6de0273c74ff13555d1fbcf759cb4d34e2e58f687713bd27
7
+ data.tar.gz: 2dd720f1ce4099fe2d2d35d45655f41f22df0da3f3cbaf9e05543d951bf4e115d5c49300a0aba27d074a6a1eedd0bc9442acf38e6e287011702adb961a35350c
data/README.md CHANGED
@@ -8,7 +8,7 @@ A Ruby wrapper for the Spark REST API. Loosely based on ActiveResource to provid
8
8
  Documentation
9
9
  -------------
10
10
 
11
- For further client documentation, please consult our [wiki](/sparkapi/spark_api/wiki).
11
+ For further client documentation, please consult our [wiki](https://github.com/sparkapi/spark_api/wiki).
12
12
 
13
13
  For full information on the API, see [http://sparkplatform.com/docs/overview/api](http://sparkplatform.com/docs/overview/api)
14
14
 
@@ -19,13 +19,16 @@ Installation
19
19
 
20
20
  Usage Examples
21
21
  ------------------------
22
- SparkApi.configure do |config|
23
- config.endpoint = 'https://sparkapi.com'
24
- # Using Spark API Authentication, refer to the Authentication documentation for OAuth2
25
- config.api_key = 'MY_SPARK_API_KEY'
26
- config.api_secret = 'MY_SPARK_API_SECRET'
27
- end
28
- SparkApi.client.get '/my/account'
22
+
23
+ ```ruby
24
+ SparkApi.configure do |config|
25
+ config.endpoint = 'https://sparkapi.com'
26
+ # Using Spark API Authentication, refer to the Authentication documentation for OAuth2
27
+ config.api_key = 'MY_SPARK_API_KEY'
28
+ config.api_secret = 'MY_SPARK_API_SECRET'
29
+ end
30
+ SparkApi.client.get '/my/account'
31
+ ```
29
32
 
30
33
 
31
34
  #### Interactive Console
@@ -52,22 +55,26 @@ You can also provide other options from the command line, see "spark_api -h" for
52
55
  #### HTTP Interface
53
56
  The base client provides a bare bones HTTP interface for working with the RESTful Spark API. This is basically a stylized curl interface that handles authentication, error handling, and processes JSON results as Ruby Hashes.
54
57
 
55
- SparkApi.client.get "/listings/#{listing_id}", :_expand => "CustomFields"
56
- SparkApi.client.post "/listings/#{listing_id}/photos", photo_body_hash
57
- SparkApi.client.put "/listings/#{listing_id}/photos/#{photo_id}", updated_photo_name_hash
58
- SparkApi.client.delete "/listings/#{listing_id}/photos/#{photo_id}"
58
+ ```ruby
59
+ SparkApi.client.get "/listings/#{listing_id}", :_expand => "CustomFields"
60
+ SparkApi.client.post "/listings/#{listing_id}/photos", photo_body_hash
61
+ SparkApi.client.put "/listings/#{listing_id}/photos/#{photo_id}", updated_photo_name_hash
62
+ SparkApi.client.delete "/listings/#{listing_id}/photos/#{photo_id}"
63
+ ```
59
64
 
60
- #### [API Models](/sparkapi/spark_api/wiki/API-Models)
65
+ #### [API Models](https://github.com/sparkapi/spark_api/wiki/API-Models)
61
66
  The client also provides ActiveModelesque interface for working with the api responses. Notably, the models use finder methods for searching, and similar instanciation and persistence also on supported services.
62
67
 
63
- # Tip: mixin the models so you can use them without namespaces
64
- include SparkApi::Models
65
- listings = Listing.find(:all, :_filter => "ListPrice Gt 150000.0 And ListPrice Lt 200000.0", :_orderby => "-ListPrice")
66
- puts "Top list price: $%.2f" % listings.first.ListPrice
67
- # Top list price: $199999.99
68
- puts Account.find(:first, :_filter => "UserType Eq 'Member' And Name Eq 'John*'").Name
69
- # John Doe
70
-
68
+ ```ruby
69
+ # Tip: mixin the models so you can use them without namespaces
70
+ include SparkApi::Models
71
+ listings = Listing.find(:all, :_filter => "ListPrice Gt 150000.0 And ListPrice Lt 200000.0", :_orderby => "-ListPrice")
72
+ puts "Top list price: $%.2f" % listings.first.ListPrice
73
+
74
+ # Top list price: $199999.99
75
+ puts Account.find(:first, :_filter => "UserType Eq 'Member' And Name Eq 'John*'").Name
76
+ # John Doe
77
+ ```
71
78
 
72
79
  JSON Parsing
73
80
  --------------
@@ -78,20 +85,15 @@ Authentication Types
78
85
  --------------
79
86
  Authentication is handled transparently by the request framework in the gem, so you should never need to manually make an authentication request. More than one mode of authentication is supported, so the client needs to be configured accordingly.
80
87
 
81
- #### [Spark API Authentication](/sparkapi/spark_api/wiki/Spark-Authentication) (Default)
88
+ #### [Spark API Authentication](https://github.com/sparkapi/spark_api/wiki/Spark-Authentication) (Default)
82
89
  Usually supplied for a single user, this authentication mode is the simplest, and is setup as the default. The example usage above demonstrates how to get started using this authentication mode.
83
90
 
84
- #### [OpenId/OAuth2 Combined Flow](/sparkapi/spark_api/wiki/Hybrid-Authentication) (Preferred)
91
+ #### [OpenId/OAuth2 Combined Flow](https://github.com/sparkapi/spark_api/wiki/Hybrid-Authentication) (Preferred)
85
92
  Authorization mode the separates application and user authentication. This mode requires the end user to be redirected to Spark Platform's openid endpoint. See "script/combined_flow_example.rb" for an example.
86
93
 
87
94
  Read more about Spark Platform's combined flow <a href="http://sparkplatform.com/docs/authentication/openid_oauth2_authentication">here</a>.
88
95
 
89
- #### [OAuth2 Authorization](/sparkapi/spark_api/wiki/OAuth2-Only-Authentication)
96
+ #### [OAuth2 Authorization](https://github.com/sparkapi/spark_api/wiki/OAuth2-Only-Authentication)
90
97
  Authorization mode the separates application and user authentication. This mode requires the end user to be redirected to Spark Platform's auth endpoint. See "script/oauth2_example.rb" for an example.
91
98
 
92
99
  Read more about Spark Platform's OAuth 2 flow <a href="http://sparkplatform.com/docs/authentication/oauth2_authentication">here</a>.
93
-
94
- #### [OpenId Authentication](/sparkapi/spark_api/wiki/OpenId-Only-Authentication)
95
- There is also the option to only access a user's Spark Platform identity without accessing any data (e.g. listings, contacts, etc.). In circumstances where you ONLY with to authenticate users through the Spark Platform, but do not have a use case to access any of their data, consider the OpenId authentication flow in lieu of API Authentication or the Combined flow.
96
-
97
- Read more about Spark Platform's OpenId flow <a href="http://sparkplatform.com/docs/authentication/openid_authentication">here</a>.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.10
1
+ 1.3.13
@@ -66,9 +66,11 @@ module SparkApi
66
66
  request_opts = {
67
67
  :AuthToken => @session.auth_token
68
68
  }
69
- unless @client.api_user.nil?
69
+
70
+ unless (@client.api_user.nil? || options[:ApiUser])
70
71
  request_opts.merge!(:ApiUser => "#{@client.api_user}")
71
72
  end
73
+
72
74
  request_opts.merge!(options)
73
75
  sig = sign_token(escaped_path, request_opts, body)
74
76
  request_path = "#{escaped_path}?#{build_url_parameters({"ApiSig"=>sig}.merge(request_opts))}"
@@ -43,7 +43,11 @@ module SparkApi
43
43
  escaped_path = URI.escape(path)
44
44
  connection = @client.connection(true) # SSL Only!
45
45
  connection.headers.merge!(self.auth_header)
46
- options.merge!(:ApiUser => "#{@client.api_user}") unless @client.api_user.nil?
46
+
47
+ unless (@client.api_user.nil? || options[:ApiUser])
48
+ options.merge!(:ApiUser => "#{@client.api_user}")
49
+ end
50
+
47
51
  parameter_string = options.size > 0 ? "?#{build_url_parameters(options)}" : ""
48
52
  request_path = "#{escaped_path}#{parameter_string}"
49
53
  SparkApi.logger.debug("Request: #{request_path}")
@@ -26,6 +26,7 @@ require 'spark_api/models/portal'
26
26
  require 'spark_api/models/property_types'
27
27
  require 'spark_api/models/rental_calendar'
28
28
  require 'spark_api/models/saved_search'
29
+ require 'spark_api/models/search_template/quick_search'
29
30
  require 'spark_api/models/shared_listing'
30
31
  require 'spark_api/models/standard_fields'
31
32
  require 'spark_api/models/system_info'
@@ -178,6 +178,21 @@ module SparkApi
178
178
  end
179
179
  true
180
180
  end
181
+
182
+ def reorder_photos(arguments={})
183
+ begin
184
+ return reorder_photos!(arguments)
185
+ rescue BadResourceRequest => e
186
+ SparkApi.logger.warn("Failed to save resource #{self}: #{e.message}")
187
+ rescue NotFound => e
188
+ SparkApi.logger.error("Failed to save resource #{self}: #{e.message}")
189
+ end
190
+ false
191
+ end
192
+ def reorder_photos!(arguments={})
193
+ results = connection.put "#{self.class.path}/#{self.Id}/photos", arguments
194
+ true
195
+ end
181
196
 
182
197
  def editable?(editable_settings = [])
183
198
  settings = Array(editable_settings)
@@ -53,6 +53,11 @@ module SparkApi
53
53
  def delete(args={})
54
54
  connection.delete("#{update_path}/#{self.Id}", args)
55
55
  end
56
+
57
+ def rollback(version)
58
+ payload = {"Version" => version}
59
+ connection.put "#{update_path}/#{self.Id}/versions/current", payload
60
+ end
56
61
 
57
62
  def exists?
58
63
  @attributes.include?("Id")
@@ -16,6 +16,10 @@ module SparkApi
16
16
  end
17
17
  end
18
18
 
19
+ def self.tagged(tag, arguments={})
20
+ collect(connection.get("/#{self.element_name}/tags/#{tag}", arguments))
21
+ end
22
+
19
23
  # list contacts (private role)
20
24
  def contacts
21
25
  return [] unless persisted?
@@ -0,0 +1,12 @@
1
+ module SparkApi
2
+ module Models
3
+ class QuickSearch < Base
4
+ extend Finders
5
+ include Concerns::Savable,
6
+ Concerns::Destroyable
7
+
8
+ self.element_name="searchtemplates/quicksearches"
9
+
10
+ end
11
+ end
12
+ end
@@ -36,7 +36,8 @@ module SparkApi
36
36
  begin
37
37
  datetime = DateTime.strptime(formatted_date, format)
38
38
  datetime = datetime.new_offset DateTime.now.offset
39
- dst_offset = Time.now.dst? ? 0 : 1
39
+ now = Time.now
40
+ dst_offset = now.dst? || now.zone == 'UTC' ? 0 : 1
40
41
  break
41
42
  rescue => ex
42
43
  next
@@ -0,0 +1,5 @@
1
+ {
2
+ "D": {
3
+ "Version": 1
4
+ }
5
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "D": {
3
+ "Results": [
4
+ {
5
+ "ResourceUri": "/v1/searchtemplates/quicksearches/20120717212004874996000000",
6
+ "Id": "20130717212004874996000000",
7
+ "Name": "My Quick Search",
8
+ "OwnerId": "20000426173054342350000000",
9
+ "MlsId": "20000426143505724628000000",
10
+ "Inheritable": true,
11
+ "Inherited": false,
12
+ "ViewId": "20130717211827902622000000",
13
+ "PropertyTypes": [
14
+ "A"
15
+ ],
16
+ "Fields": [
17
+ {
18
+ "Domain": "StandardFields",
19
+ "GroupField": null,
20
+ "Field": "ListPrice"
21
+ },
22
+ {
23
+ "Domain": "CustomFields",
24
+ "GroupField": "Amenities",
25
+ "Field": "# Ceiling Fans"
26
+ }
27
+ ],
28
+ "ModificationTimestamp": "2013-07-09T15:31:47Z"
29
+ },
30
+ {
31
+ "ResourceUri": "/v1/searchtemplates/quicksearches/20120717212004874996000001",
32
+ "Id": "20130717212004874996000001",
33
+ "Name": "My Quick Search 2",
34
+ "OwnerId": "20000426173054342350000000",
35
+ "MlsId": "20000426143505724628000000",
36
+ "Inheritable": true,
37
+ "Inherited": false,
38
+ "ViewId": "20130717211827902622000000",
39
+ "PropertyTypes": [
40
+ "A"
41
+ ],
42
+ "Fields": [
43
+ {
44
+ "Domain": "StandardFields",
45
+ "GroupField": null,
46
+ "Field": "ListPrice"
47
+ },
48
+ {
49
+ "Domain": "CustomFields",
50
+ "GroupField": "Amenities",
51
+ "Field": "# Ceiling Fans"
52
+ }
53
+ ],
54
+ "ModificationTimestamp": "2013-07-09T15:31:47Z"
55
+ }
56
+ ]
57
+ }
58
+ }
@@ -87,6 +87,19 @@ describe Photo do
87
87
  subject.delete
88
88
  end
89
89
  end
90
+
91
+ describe "/listings/<listing_id>/photos/<photo_id>/versions/current", :support do
92
+ before(:each) do
93
+ stub_auth_request
94
+ end
95
+
96
+ on_put_it "should restore a previous version of the photo" do
97
+ stub_api_put('/listings/1234/photos/20110826220032167405000000/versions/current', 'listings/photos/rollback.json')
98
+ subject.Id = "20110826220032167405000000"
99
+ subject.rollback(1)
100
+ end
101
+
102
+ end
90
103
  end
91
104
 
92
105
  end
@@ -111,6 +111,14 @@ describe SavedSearch do
111
111
  end
112
112
  end
113
113
 
114
+ context "/savedsearches/tags/:tag", :support do
115
+ on_get_it "should get tagged SavedSearches" do
116
+ stub_api_get("/#{subject.class.element_name}/tags/Favorite", 'saved_searches/get.json')
117
+ resources = subject.class.tagged("Favorite")
118
+ resources.should be_an(Array)
119
+ end
120
+ end
121
+
114
122
  context "/savedsearches/<id>/contacts" do
115
123
 
116
124
  on_get_it "should return a list of contacts" do
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe QuickSearch do
4
+
5
+ before :each do
6
+ stub_auth_request
7
+ end
8
+
9
+ context '/searchtemplates/quicksearches' do
10
+ it "gets a current user's quick searches" do
11
+ s = stub_api_get("/searchtemplates/quicksearches", "search_templates/quick_searches/get.json")
12
+ quicksearches = QuickSearch.get
13
+ quicksearches.should be_an(Array)
14
+ quicksearches.size.should eq(2)
15
+ s.should have_been_requested
16
+ end
17
+ end
18
+
19
+ context '/searchtemplates/quicksearches/<id>' do
20
+ let(:id) { "20121128132106172132000004" }
21
+ it "gets an individual quick search" do
22
+ s = stub_api_get("/searchtemplates/quicksearches/#{id}", "search_templates/quick_searches/get.json")
23
+ quicksearch = QuickSearch.find(id)
24
+ quicksearch.should be_an(QuickSearch)
25
+ s.should have_been_requested
26
+ end
27
+ end
28
+
29
+ end
metadata CHANGED
@@ -1,13 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spark_api
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 10
10
- version: 1.3.10
4
+ version: 1.3.13
11
5
  platform: ruby
12
6
  authors:
13
7
  - Brandon Hornseth
@@ -16,270 +10,161 @@ autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
12
 
19
- date: 2013-07-26 00:00:00 Z
13
+ date: 2014-05-20 00:00:00 Z
20
14
  dependencies:
21
15
  - !ruby/object:Gem::Dependency
22
- type: :runtime
16
+ name: faraday
23
17
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
18
  requirements:
26
19
  - - ~>
27
20
  - !ruby/object:Gem::Version
28
- hash: 61
29
- segments:
30
- - 0
31
- - 8
32
- - 1
33
21
  version: 0.8.1
34
- version_requirements: *id001
22
+ type: :runtime
35
23
  prerelease: false
36
- name: faraday
24
+ version_requirements: *id001
37
25
  - !ruby/object:Gem::Dependency
38
- type: :runtime
26
+ name: multi_json
39
27
  requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
28
  requirements:
42
29
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 15
45
- segments:
46
- - 1
47
- - 0
30
+ - &id007 !ruby/object:Gem::Version
48
31
  version: "1.0"
49
- version_requirements: *id002
32
+ type: :runtime
50
33
  prerelease: false
51
- name: multi_json
34
+ version_requirements: *id002
52
35
  - !ruby/object:Gem::Dependency
53
- type: :runtime
36
+ name: json
54
37
  requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
38
  requirements:
57
39
  - - ~>
58
40
  - !ruby/object:Gem::Version
59
- hash: 1
60
- segments:
61
- - 1
62
- - 7
63
41
  version: "1.7"
64
- version_requirements: *id003
42
+ type: :runtime
65
43
  prerelease: false
66
- name: json
44
+ version_requirements: *id003
67
45
  - !ruby/object:Gem::Dependency
68
- type: :runtime
46
+ name: builder
69
47
  requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
48
  requirements:
72
49
  - - ">="
73
50
  - !ruby/object:Gem::Version
74
- hash: 15
75
- segments:
76
- - 2
77
- - 1
78
- - 2
79
51
  version: 2.1.2
80
52
  - - <
81
- - !ruby/object:Gem::Version
82
- hash: 63
83
- segments:
84
- - 4
85
- - 0
86
- - 0
53
+ - &id005 !ruby/object:Gem::Version
87
54
  version: 4.0.0
88
- version_requirements: *id004
55
+ type: :runtime
89
56
  prerelease: false
90
- name: builder
57
+ version_requirements: *id004
91
58
  - !ruby/object:Gem::Dependency
92
- type: :runtime
93
- requirement: &id005 !ruby/object:Gem::Requirement
94
- none: false
59
+ name: will_paginate
60
+ requirement: &id006 !ruby/object:Gem::Requirement
95
61
  requirements:
96
62
  - - ">="
97
63
  - !ruby/object:Gem::Version
98
- hash: 1923831917
99
- segments:
100
- - 3
101
- - 0
102
- - pre
103
- - 2
104
64
  version: 3.0.pre2
105
65
  - - <
106
- - !ruby/object:Gem::Version
107
- hash: 63
108
- segments:
109
- - 4
110
- - 0
111
- - 0
112
- version: 4.0.0
113
- version_requirements: *id005
66
+ - *id005
67
+ type: :runtime
114
68
  prerelease: false
115
- name: will_paginate
69
+ version_requirements: *id006
116
70
  - !ruby/object:Gem::Dependency
117
- type: :runtime
118
- requirement: &id006 !ruby/object:Gem::Requirement
119
- none: false
71
+ name: highline
72
+ requirement: &id008 !ruby/object:Gem::Requirement
120
73
  requirements:
121
74
  - - ">="
122
- - !ruby/object:Gem::Version
123
- hash: 15
124
- segments:
125
- - 1
126
- - 0
127
- version: "1.0"
128
- version_requirements: *id006
75
+ - *id007
76
+ type: :runtime
129
77
  prerelease: false
130
- name: highline
78
+ version_requirements: *id008
131
79
  - !ruby/object:Gem::Dependency
132
- type: :development
133
- requirement: &id007 !ruby/object:Gem::Requirement
134
- none: false
80
+ name: rake
81
+ requirement: &id009 !ruby/object:Gem::Requirement
135
82
  requirements:
136
83
  - - ~>
137
84
  - !ruby/object:Gem::Version
138
- hash: 63
139
- segments:
140
- - 0
141
- - 9
142
- - 2
143
85
  version: 0.9.2
144
- version_requirements: *id007
86
+ type: :development
145
87
  prerelease: false
146
- name: rake
88
+ version_requirements: *id009
147
89
  - !ruby/object:Gem::Dependency
148
- type: :development
149
- requirement: &id008 !ruby/object:Gem::Requirement
150
- none: false
90
+ name: rspec
91
+ requirement: &id010 !ruby/object:Gem::Requirement
151
92
  requirements:
152
93
  - - ~>
153
94
  - !ruby/object:Gem::Version
154
- hash: 63
155
- segments:
156
- - 2
157
- - 12
158
- - 0
159
95
  version: 2.12.0
160
- version_requirements: *id008
96
+ type: :development
161
97
  prerelease: false
162
- name: rspec
98
+ version_requirements: *id010
163
99
  - !ruby/object:Gem::Dependency
164
- type: :development
165
- requirement: &id009 !ruby/object:Gem::Requirement
166
- none: false
100
+ name: webmock
101
+ requirement: &id011 !ruby/object:Gem::Requirement
167
102
  requirements:
168
103
  - - ~>
169
104
  - !ruby/object:Gem::Version
170
- hash: 29
171
- segments:
172
- - 1
173
- - 9
174
105
  version: "1.9"
175
- version_requirements: *id009
106
+ type: :development
176
107
  prerelease: false
177
- name: webmock
108
+ version_requirements: *id011
178
109
  - !ruby/object:Gem::Dependency
179
- type: :development
180
- requirement: &id010 !ruby/object:Gem::Requirement
181
- none: false
110
+ name: typhoeus
111
+ requirement: &id012 !ruby/object:Gem::Requirement
182
112
  requirements:
183
113
  - - ~>
184
114
  - !ruby/object:Gem::Version
185
- hash: 13
186
- segments:
187
- - 0
188
- - 3
189
115
  version: "0.3"
190
- version_requirements: *id010
116
+ type: :development
191
117
  prerelease: false
192
- name: typhoeus
118
+ version_requirements: *id012
193
119
  - !ruby/object:Gem::Dependency
194
- type: :development
195
- requirement: &id011 !ruby/object:Gem::Requirement
196
- none: false
120
+ name: ci_reporter
121
+ requirement: &id013 !ruby/object:Gem::Requirement
197
122
  requirements:
198
123
  - - ~>
199
124
  - !ruby/object:Gem::Version
200
- hash: 11
201
- segments:
202
- - 1
203
- - 7
204
- - 0
205
125
  version: 1.7.0
206
- version_requirements: *id011
126
+ type: :development
207
127
  prerelease: false
208
- name: ci_reporter
128
+ version_requirements: *id013
209
129
  - !ruby/object:Gem::Dependency
210
- type: :development
211
- requirement: &id012 !ruby/object:Gem::Requirement
212
- none: false
130
+ name: rcov
131
+ requirement: &id014 !ruby/object:Gem::Requirement
213
132
  requirements:
214
133
  - - ~>
215
134
  - !ruby/object:Gem::Version
216
- hash: 41
217
- segments:
218
- - 0
219
- - 9
220
- - 9
221
135
  version: 0.9.9
222
- version_requirements: *id012
136
+ type: :development
223
137
  prerelease: false
224
- name: rcov
138
+ version_requirements: *id014
225
139
  - !ruby/object:Gem::Dependency
226
- type: :development
227
- requirement: &id013 !ruby/object:Gem::Requirement
228
- none: false
140
+ name: flexmls_gems
141
+ requirement: &id015 !ruby/object:Gem::Requirement
229
142
  requirements:
230
143
  - - ~>
231
144
  - !ruby/object:Gem::Version
232
- hash: 29
233
- segments:
234
- - 0
235
- - 2
236
- - 5
237
145
  version: 0.2.5
238
- version_requirements: *id013
239
- prerelease: false
240
- name: flexmls_gems
241
- - !ruby/object:Gem::Dependency
242
146
  type: :development
243
- requirement: &id014 !ruby/object:Gem::Requirement
244
- none: false
245
- requirements:
246
- - - ">="
247
- - !ruby/object:Gem::Version
248
- hash: 3
249
- segments:
250
- - 0
251
- version: "0"
252
- version_requirements: *id014
253
147
  prerelease: false
254
- name: guard-rspec
255
- - !ruby/object:Gem::Dependency
256
- type: :development
257
- requirement: &id015 !ruby/object:Gem::Requirement
258
- none: false
259
- requirements:
260
- - - ">="
261
- - !ruby/object:Gem::Version
262
- hash: 3
263
- segments:
264
- - 0
265
- version: "0"
266
148
  version_requirements: *id015
267
- prerelease: false
268
- name: rb-readline
269
149
  - !ruby/object:Gem::Dependency
270
- type: :development
150
+ name: rb-readline
271
151
  requirement: &id016 !ruby/object:Gem::Requirement
272
- none: false
273
152
  requirements:
274
- - - ">="
153
+ - &id017
154
+ - ">="
275
155
  - !ruby/object:Gem::Version
276
- hash: 3
277
- segments:
278
- - 0
279
156
  version: "0"
280
- version_requirements: *id016
157
+ type: :development
281
158
  prerelease: false
159
+ version_requirements: *id016
160
+ - !ruby/object:Gem::Dependency
282
161
  name: rb-fsevent
162
+ requirement: &id018 !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - *id017
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *id018
283
168
  description: The spark_api gem handles most of the boilerplate for communicating with the Spark API rest services, including authentication and request parsing.
284
169
  email: api-support@sparkapi.com
285
170
  executables:
@@ -292,432 +177,430 @@ extra_rdoc_files:
292
177
  files:
293
178
  - History.txt
294
179
  - LICENSE
295
- - Rakefile
296
180
  - README.md
181
+ - Rakefile
297
182
  - VERSION
298
183
  - bin/spark_api
184
+ - lib/spark_api.rb
185
+ - lib/spark_api/authentication.rb
299
186
  - lib/spark_api/authentication/api_auth.rb
187
+ - lib/spark_api/authentication/base_auth.rb
188
+ - lib/spark_api/authentication/oauth2.rb
189
+ - lib/spark_api/authentication/oauth2_impl/cli_provider.rb
300
190
  - lib/spark_api/authentication/oauth2_impl/faraday_middleware.rb
301
- - lib/spark_api/authentication/oauth2_impl/single_session_provider.rb
302
191
  - lib/spark_api/authentication/oauth2_impl/grant_type_base.rb
303
192
  - lib/spark_api/authentication/oauth2_impl/grant_type_code.rb
193
+ - lib/spark_api/authentication/oauth2_impl/grant_type_password.rb
304
194
  - lib/spark_api/authentication/oauth2_impl/grant_type_refresh.rb
305
- - lib/spark_api/authentication/oauth2_impl/cli_provider.rb
306
195
  - lib/spark_api/authentication/oauth2_impl/simple_provider.rb
307
- - lib/spark_api/authentication/oauth2_impl/grant_type_password.rb
308
- - lib/spark_api/authentication/oauth2.rb
309
- - lib/spark_api/authentication/base_auth.rb
310
- - lib/spark_api/faraday_middleware.rb
311
- - lib/spark_api/errors.rb
196
+ - lib/spark_api/authentication/oauth2_impl/single_session_provider.rb
197
+ - lib/spark_api/cli.rb
198
+ - lib/spark_api/cli/api_auth.rb
199
+ - lib/spark_api/cli/oauth2.rb
200
+ - lib/spark_api/cli/setup.rb
312
201
  - lib/spark_api/client.rb
313
- - lib/spark_api/primary_array.rb
314
- - lib/spark_api/version.rb
315
- - lib/spark_api/response.rb
316
- - lib/spark_api/models.rb
202
+ - lib/spark_api/configuration.rb
203
+ - lib/spark_api/configuration/oauth2_configurable.rb
204
+ - lib/spark_api/configuration/yaml.rb
317
205
  - lib/spark_api/connection.rb
318
- - lib/spark_api/multi_client.rb
206
+ - lib/spark_api/errors.rb
207
+ - lib/spark_api/faraday_middleware.rb
208
+ - lib/spark_api/models.rb
209
+ - lib/spark_api/models/account.rb
210
+ - lib/spark_api/models/activity.rb
211
+ - lib/spark_api/models/base.rb
212
+ - lib/spark_api/models/comment.rb
213
+ - lib/spark_api/models/concerns.rb
214
+ - lib/spark_api/models/concerns/destroyable.rb
215
+ - lib/spark_api/models/concerns/savable.rb
216
+ - lib/spark_api/models/connect_prefs.rb
217
+ - lib/spark_api/models/constraint.rb
218
+ - lib/spark_api/models/contact.rb
219
+ - lib/spark_api/models/custom_fields.rb
220
+ - lib/spark_api/models/dirty.rb
319
221
  - lib/spark_api/models/document.rb
320
- - lib/spark_api/models/rental_calendar.rb
321
- - lib/spark_api/models/finders.rb
322
- - lib/spark_api/models/subresource.rb
323
222
  - lib/spark_api/models/fields.rb
324
- - lib/spark_api/models/photo.rb
325
- - lib/spark_api/models/contact.rb
326
- - lib/spark_api/models/video.rb
223
+ - lib/spark_api/models/finders.rb
327
224
  - lib/spark_api/models/idx_link.rb
328
- - lib/spark_api/models/message.rb
329
- - lib/spark_api/models/concerns.rb
330
- - lib/spark_api/models/system_info.rb
331
- - lib/spark_api/models/vow_account.rb
332
225
  - lib/spark_api/models/listing.rb
333
- - lib/spark_api/models/constraint.rb
334
- - lib/spark_api/models/base.rb
335
226
  - lib/spark_api/models/listing_cart.rb
336
- - lib/spark_api/models/saved_search.rb
337
- - lib/spark_api/models/open_house.rb
338
- - lib/spark_api/models/activity.rb
339
- - lib/spark_api/models/dirty.rb
340
- - lib/spark_api/models/connect_prefs.rb
341
- - lib/spark_api/models/shared_listing.rb
342
- - lib/spark_api/models/concerns/destroyable.rb
343
- - lib/spark_api/models/concerns/savable.rb
344
- - lib/spark_api/models/standard_fields.rb
345
227
  - lib/spark_api/models/market_statistics.rb
346
- - lib/spark_api/models/portal.rb
228
+ - lib/spark_api/models/message.rb
347
229
  - lib/spark_api/models/note.rb
348
- - lib/spark_api/models/comment.rb
349
- - lib/spark_api/models/custom_fields.rb
350
- - lib/spark_api/models/account.rb
351
230
  - lib/spark_api/models/notification.rb
231
+ - lib/spark_api/models/open_house.rb
232
+ - lib/spark_api/models/photo.rb
233
+ - lib/spark_api/models/portal.rb
352
234
  - lib/spark_api/models/property_types.rb
353
- - lib/spark_api/models/virtual_tour.rb
235
+ - lib/spark_api/models/rental_calendar.rb
236
+ - lib/spark_api/models/saved_search.rb
237
+ - lib/spark_api/models/search_template/quick_search.rb
238
+ - lib/spark_api/models/shared_listing.rb
239
+ - lib/spark_api/models/standard_fields.rb
240
+ - lib/spark_api/models/subresource.rb
241
+ - lib/spark_api/models/system_info.rb
354
242
  - lib/spark_api/models/tour_of_home.rb
243
+ - lib/spark_api/models/video.rb
244
+ - lib/spark_api/models/virtual_tour.rb
245
+ - lib/spark_api/models/vow_account.rb
246
+ - lib/spark_api/multi_client.rb
247
+ - lib/spark_api/options_hash.rb
355
248
  - lib/spark_api/paginate.rb
356
- - lib/spark_api/cli/api_auth.rb
357
- - lib/spark_api/cli/setup.rb
358
- - lib/spark_api/cli/oauth2.rb
249
+ - lib/spark_api/primary_array.rb
359
250
  - lib/spark_api/request.rb
360
- - lib/spark_api/options_hash.rb
361
- - lib/spark_api/cli.rb
362
- - lib/spark_api/authentication.rb
363
- - lib/spark_api/configuration.rb
364
- - lib/spark_api/configuration/oauth2_configurable.rb
365
- - lib/spark_api/configuration/yaml.rb
366
- - lib/spark_api.rb
251
+ - lib/spark_api/response.rb
252
+ - lib/spark_api/version.rb
253
+ - script/combined_flow_example.rb
367
254
  - script/console
368
255
  - script/example.rb
369
256
  - script/oauth2_example.rb
370
- - script/combined_flow_example.rb
371
- - spec/fixtures/portal/my_non_existant.json
372
- - spec/fixtures/portal/my.json
373
- - spec/fixtures/portal/enable.json
374
- - spec/fixtures/portal/new.json
375
- - spec/fixtures/portal/disable.json
376
- - spec/fixtures/portal/post.json
377
- - spec/fixtures/no_results.json
378
- - spec/fixtures/oauth2_error.json
379
- - spec/fixtures/errors/failure_with_constraint.json
380
- - spec/fixtures/errors/expired.json
381
- - spec/fixtures/errors/failure_with_msg.json
382
- - spec/fixtures/errors/failure.json
383
- - spec/fixtures/count.json
384
- - spec/fixtures/notes/new.json
385
- - spec/fixtures/notes/agent_shared.json
386
- - spec/fixtures/notes/add.json
387
- - spec/fixtures/notes/agent_shared_empty.json
257
+ - spec/fixtures/accounts/all.json
258
+ - spec/fixtures/accounts/my.json
259
+ - spec/fixtures/accounts/my_portal.json
260
+ - spec/fixtures/accounts/my_put.json
261
+ - spec/fixtures/accounts/my_save.json
262
+ - spec/fixtures/accounts/office.json
263
+ - spec/fixtures/accounts/password_save.json
264
+ - spec/fixtures/activities/get.json
265
+ - spec/fixtures/authentication_failure.json
388
266
  - spec/fixtures/base.json
389
- - spec/fixtures/generic_failure.json
390
- - spec/fixtures/session.json
391
- - spec/fixtures/generic_delete.json
392
- - spec/fixtures/oauth2/refresh_body.json
393
- - spec/fixtures/oauth2/access_with_refresh.json
394
- - spec/fixtures/oauth2/password_body.json
395
- - spec/fixtures/oauth2/authorization_code_body.json
396
- - spec/fixtures/oauth2/error.json
397
- - spec/fixtures/oauth2/access.json
398
- - spec/fixtures/oauth2/access_with_old_refresh.json
399
- - spec/fixtures/saved_searches/update.json
400
- - spec/fixtures/saved_searches/new.json
401
- - spec/fixtures/saved_searches/get.json
402
- - spec/fixtures/saved_searches/post.json
403
- - spec/fixtures/standardfields/nearby.json
404
- - spec/fixtures/standardfields/city.json
405
- - spec/fixtures/standardfields/stateorprovince.json
406
- - spec/fixtures/standardfields/standardfields.json
267
+ - spec/fixtures/comments/get.json
268
+ - spec/fixtures/comments/new.json
269
+ - spec/fixtures/comments/post.json
270
+ - spec/fixtures/contacts/contacts.json
271
+ - spec/fixtures/contacts/my.json
272
+ - spec/fixtures/contacts/new.json
273
+ - spec/fixtures/contacts/new_empty.json
274
+ - spec/fixtures/contacts/new_notify.json
275
+ - spec/fixtures/contacts/post.json
276
+ - spec/fixtures/contacts/tags.json
277
+ - spec/fixtures/contacts/vow_accounts/edit.json
278
+ - spec/fixtures/contacts/vow_accounts/get.json
279
+ - spec/fixtures/contacts/vow_accounts/new.json
280
+ - spec/fixtures/contacts/vow_accounts/post.json
281
+ - spec/fixtures/count.json
282
+ - spec/fixtures/empty.json
283
+ - spec/fixtures/errors/expired.json
284
+ - spec/fixtures/errors/failure.json
285
+ - spec/fixtures/errors/failure_with_constraint.json
286
+ - spec/fixtures/errors/failure_with_msg.json
407
287
  - spec/fixtures/fields/order.json
408
288
  - spec/fixtures/fields/order_a.json
409
- - spec/fixtures/property_types/property_types.json
410
- - spec/fixtures/accounts/all.json
411
- - spec/fixtures/accounts/password_save.json
412
- - spec/fixtures/accounts/office.json
413
- - spec/fixtures/accounts/my.json
414
- - spec/fixtures/accounts/my_put.json
415
- - spec/fixtures/accounts/my_save.json
416
- - spec/fixtures/accounts/my_portal.json
417
- - spec/fixtures/success.json
418
- - spec/fixtures/empty.json
419
- - spec/fixtures/activities/get.json
420
- - spec/fixtures/listing_carts/remove_listing.json
289
+ - spec/fixtures/finders.json
290
+ - spec/fixtures/generic_delete.json
291
+ - spec/fixtures/generic_failure.json
292
+ - spec/fixtures/idx_links/get.json
293
+ - spec/fixtures/listing_carts/add_listing.json
421
294
  - spec/fixtures/listing_carts/add_listing_post.json
422
- - spec/fixtures/listing_carts/listing_cart.json
423
295
  - spec/fixtures/listing_carts/empty.json
296
+ - spec/fixtures/listing_carts/listing_cart.json
424
297
  - spec/fixtures/listing_carts/new.json
425
298
  - spec/fixtures/listing_carts/post.json
426
- - spec/fixtures/listing_carts/add_listing.json
427
- - spec/fixtures/authentication_failure.json
428
- - spec/fixtures/listings/put_expiration_date.json
429
- - spec/fixtures/listings/no_subresources.json
430
- - spec/fixtures/listings/rental_calendar.json
431
- - spec/fixtures/listings/shared_listing_get.json
299
+ - spec/fixtures/listing_carts/remove_listing.json
300
+ - spec/fixtures/listings/constraints.json
432
301
  - spec/fixtures/listings/constraints_with_pagination.json
433
- - spec/fixtures/listings/with_rental_calendar.json
302
+ - spec/fixtures/listings/document_index.json
434
303
  - spec/fixtures/listings/multiple.json
304
+ - spec/fixtures/listings/no_subresources.json
435
305
  - spec/fixtures/listings/open_houses.json
306
+ - spec/fixtures/listings/photos/index.json
436
307
  - spec/fixtures/listings/photos/new.json
437
308
  - spec/fixtures/listings/photos/post.json
438
- - spec/fixtures/listings/photos/index.json
439
- - spec/fixtures/listings/with_videos.json
440
- - spec/fixtures/listings/with_documents.json
309
+ - spec/fixtures/listings/photos/rollback.json
441
310
  - spec/fixtures/listings/put.json
442
- - spec/fixtures/listings/with_permissions.json
443
- - spec/fixtures/listings/with_vtour.json
444
- - spec/fixtures/listings/tour_of_homes_search.json
445
- - spec/fixtures/listings/with_photos.json
311
+ - spec/fixtures/listings/put_expiration_date.json
312
+ - spec/fixtures/listings/rental_calendar.json
313
+ - spec/fixtures/listings/shared_listing_get.json
446
314
  - spec/fixtures/listings/shared_listing_new.json
447
- - spec/fixtures/listings/videos_index.json
448
- - spec/fixtures/listings/with_supplement.json
449
- - spec/fixtures/listings/tour_of_homes.json
450
315
  - spec/fixtures/listings/shared_listing_post.json
316
+ - spec/fixtures/listings/tour_of_homes.json
317
+ - spec/fixtures/listings/tour_of_homes_search.json
318
+ - spec/fixtures/listings/videos_index.json
451
319
  - spec/fixtures/listings/virtual_tours_index.json
452
- - spec/fixtures/listings/document_index.json
453
- - spec/fixtures/listings/constraints.json
454
- - spec/fixtures/comments/new.json
455
- - spec/fixtures/comments/get.json
456
- - spec/fixtures/comments/post.json
457
- - spec/fixtures/finders.json
458
- - spec/fixtures/idx_links/get.json
459
- - spec/fixtures/notifications/notifications.json
460
- - spec/fixtures/notifications/new_empty.json
461
- - spec/fixtures/notifications/unread.json
320
+ - spec/fixtures/listings/with_documents.json
321
+ - spec/fixtures/listings/with_permissions.json
322
+ - spec/fixtures/listings/with_photos.json
323
+ - spec/fixtures/listings/with_rental_calendar.json
324
+ - spec/fixtures/listings/with_supplement.json
325
+ - spec/fixtures/listings/with_videos.json
326
+ - spec/fixtures/listings/with_vtour.json
327
+ - spec/fixtures/logo_fbs.png
328
+ - spec/fixtures/messages/new.json
329
+ - spec/fixtures/messages/new_empty.json
330
+ - spec/fixtures/messages/new_with_recipients.json
331
+ - spec/fixtures/messages/post.json
332
+ - spec/fixtures/no_results.json
333
+ - spec/fixtures/notes/add.json
334
+ - spec/fixtures/notes/agent_shared.json
335
+ - spec/fixtures/notes/agent_shared_empty.json
336
+ - spec/fixtures/notes/new.json
462
337
  - spec/fixtures/notifications/mark_read.json
463
338
  - spec/fixtures/notifications/new.json
339
+ - spec/fixtures/notifications/new_empty.json
340
+ - spec/fixtures/notifications/notifications.json
464
341
  - spec/fixtures/notifications/post.json
465
- - spec/fixtures/contacts/tags.json
466
- - spec/fixtures/contacts/my.json
467
- - spec/fixtures/contacts/new_empty.json
468
- - spec/fixtures/contacts/contacts.json
469
- - spec/fixtures/contacts/new_notify.json
470
- - spec/fixtures/contacts/new.json
471
- - spec/fixtures/contacts/post.json
472
- - spec/fixtures/contacts/vow_accounts/edit.json
473
- - spec/fixtures/contacts/vow_accounts/new.json
474
- - spec/fixtures/contacts/vow_accounts/get.json
475
- - spec/fixtures/contacts/vow_accounts/post.json
476
- - spec/fixtures/messages/new_with_recipients.json
477
- - spec/fixtures/messages/new_empty.json
478
- - spec/fixtures/messages/new.json
479
- - spec/fixtures/messages/post.json
480
- - spec/fixtures/logo_fbs.png
481
- - spec/unit/spark_api_spec.rb
342
+ - spec/fixtures/notifications/unread.json
343
+ - spec/fixtures/oauth2/access.json
344
+ - spec/fixtures/oauth2/access_with_old_refresh.json
345
+ - spec/fixtures/oauth2/access_with_refresh.json
346
+ - spec/fixtures/oauth2/authorization_code_body.json
347
+ - spec/fixtures/oauth2/error.json
348
+ - spec/fixtures/oauth2/password_body.json
349
+ - spec/fixtures/oauth2/refresh_body.json
350
+ - spec/fixtures/oauth2_error.json
351
+ - spec/fixtures/portal/disable.json
352
+ - spec/fixtures/portal/enable.json
353
+ - spec/fixtures/portal/my.json
354
+ - spec/fixtures/portal/my_non_existant.json
355
+ - spec/fixtures/portal/new.json
356
+ - spec/fixtures/portal/post.json
357
+ - spec/fixtures/property_types/property_types.json
358
+ - spec/fixtures/saved_searches/get.json
359
+ - spec/fixtures/saved_searches/new.json
360
+ - spec/fixtures/saved_searches/post.json
361
+ - spec/fixtures/saved_searches/update.json
362
+ - spec/fixtures/search_templates/quick_searches/get.json
363
+ - spec/fixtures/session.json
364
+ - spec/fixtures/standardfields/city.json
365
+ - spec/fixtures/standardfields/nearby.json
366
+ - spec/fixtures/standardfields/standardfields.json
367
+ - spec/fixtures/standardfields/stateorprovince.json
368
+ - spec/fixtures/success.json
369
+ - spec/spec_helper.rb
370
+ - spec/unit/spark_api/authentication/api_auth_spec.rb
482
371
  - spec/unit/spark_api/authentication/base_auth_spec.rb
483
- - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
484
372
  - spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb
485
373
  - spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb
374
+ - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
486
375
  - spec/unit/spark_api/authentication/oauth2_spec.rb
487
- - spec/unit/spark_api/authentication/api_auth_spec.rb
488
376
  - spec/unit/spark_api/authentication_spec.rb
489
- - spec/unit/spark_api/models/open_house_spec.rb
377
+ - spec/unit/spark_api/configuration/yaml_spec.rb
378
+ - spec/unit/spark_api/configuration_spec.rb
379
+ - spec/unit/spark_api/faraday_middleware_spec.rb
490
380
  - spec/unit/spark_api/models/account_spec.rb
491
- - spec/unit/spark_api/models/virtual_tour_spec.rb
381
+ - spec/unit/spark_api/models/activity_spec.rb
382
+ - spec/unit/spark_api/models/base_spec.rb
383
+ - spec/unit/spark_api/models/concerns/destroyable_spec.rb
384
+ - spec/unit/spark_api/models/concerns/savable_spec.rb
385
+ - spec/unit/spark_api/models/connect_prefs_spec.rb
492
386
  - spec/unit/spark_api/models/constraint_spec.rb
493
- - spec/unit/spark_api/models/notification_spec.rb
494
- - spec/unit/spark_api/models/saved_search_spec.rb
495
387
  - spec/unit/spark_api/models/contact_spec.rb
388
+ - spec/unit/spark_api/models/dirty_spec.rb
389
+ - spec/unit/spark_api/models/document_spec.rb
390
+ - spec/unit/spark_api/models/fields_spec.rb
391
+ - spec/unit/spark_api/models/finders_spec.rb
496
392
  - spec/unit/spark_api/models/idx_link_spec.rb
497
393
  - spec/unit/spark_api/models/listing_cart_spec.rb
498
- - spec/unit/spark_api/models/video_spec.rb
499
- - spec/unit/spark_api/models/rental_calendar_spec.rb
500
- - spec/unit/spark_api/models/document_spec.rb
501
- - spec/unit/spark_api/models/activity_spec.rb
502
- - spec/unit/spark_api/models/property_types_spec.rb
503
- - spec/unit/spark_api/models/dirty_spec.rb
504
- - spec/unit/spark_api/models/message_spec.rb
505
394
  - spec/unit/spark_api/models/listing_spec.rb
506
- - spec/unit/spark_api/models/fields_spec.rb
507
- - spec/unit/spark_api/models/shared_listing_spec.rb
395
+ - spec/unit/spark_api/models/message_spec.rb
508
396
  - spec/unit/spark_api/models/note_spec.rb
509
- - spec/unit/spark_api/models/connect_prefs_spec.rb
510
- - spec/unit/spark_api/models/concerns/destroyable_spec.rb
511
- - spec/unit/spark_api/models/concerns/savable_spec.rb
512
- - spec/unit/spark_api/models/vow_account_spec.rb
513
- - spec/unit/spark_api/models/subresource_spec.rb
397
+ - spec/unit/spark_api/models/notification_spec.rb
398
+ - spec/unit/spark_api/models/open_house_spec.rb
514
399
  - spec/unit/spark_api/models/photo_spec.rb
515
- - spec/unit/spark_api/models/base_spec.rb
516
400
  - spec/unit/spark_api/models/portal_spec.rb
517
- - spec/unit/spark_api/models/tour_of_home_spec.rb
518
- - spec/unit/spark_api/models/finders_spec.rb
519
- - spec/unit/spark_api/models/system_info_spec.rb
401
+ - spec/unit/spark_api/models/property_types_spec.rb
402
+ - spec/unit/spark_api/models/rental_calendar_spec.rb
403
+ - spec/unit/spark_api/models/saved_search_spec.rb
404
+ - spec/unit/spark_api/models/search_template/quick_search_spec.rb
405
+ - spec/unit/spark_api/models/shared_listing_spec.rb
520
406
  - spec/unit/spark_api/models/standard_fields_spec.rb
521
- - spec/unit/spark_api/faraday_middleware_spec.rb
407
+ - spec/unit/spark_api/models/subresource_spec.rb
408
+ - spec/unit/spark_api/models/system_info_spec.rb
409
+ - spec/unit/spark_api/models/tour_of_home_spec.rb
410
+ - spec/unit/spark_api/models/video_spec.rb
411
+ - spec/unit/spark_api/models/virtual_tour_spec.rb
412
+ - spec/unit/spark_api/models/vow_account_spec.rb
413
+ - spec/unit/spark_api/multi_client_spec.rb
522
414
  - spec/unit/spark_api/options_hash_spec.rb
523
415
  - spec/unit/spark_api/paginate_spec.rb
524
416
  - spec/unit/spark_api/primary_array_spec.rb
525
- - spec/unit/spark_api/configuration_spec.rb
526
417
  - spec/unit/spark_api/request_spec.rb
527
- - spec/unit/spark_api/configuration/yaml_spec.rb
528
- - spec/unit/spark_api/multi_client_spec.rb
529
- - spec/spec_helper.rb
418
+ - spec/unit/spark_api_spec.rb
530
419
  homepage: https://github.com/sparkapi/spark_api
531
420
  licenses:
532
421
  - Apache 2.0
422
+ metadata: {}
423
+
533
424
  post_install_message:
534
425
  rdoc_options: []
535
426
 
536
427
  require_paths:
537
428
  - lib
538
429
  required_ruby_version: !ruby/object:Gem::Requirement
539
- none: false
540
430
  requirements:
541
- - - ">="
542
- - !ruby/object:Gem::Version
543
- hash: 3
544
- segments:
545
- - 0
546
- version: "0"
431
+ - *id017
547
432
  required_rubygems_version: !ruby/object:Gem::Requirement
548
- none: false
549
433
  requirements:
550
434
  - - ">="
551
435
  - !ruby/object:Gem::Version
552
- hash: 31
553
- segments:
554
- - 1
555
- - 8
556
436
  version: "1.8"
557
437
  requirements: []
558
438
 
559
439
  rubyforge_project: spark_api
560
- rubygems_version: 1.8.24
440
+ rubygems_version: 2.2.1
561
441
  signing_key:
562
- specification_version: 3
442
+ specification_version: 4
563
443
  summary: A library for interacting with the Spark web services.
564
444
  test_files:
445
+ - spec/fixtures/fields/order.json
446
+ - spec/fixtures/fields/order_a.json
447
+ - spec/fixtures/session.json
565
448
  - spec/fixtures/portal/my_non_existant.json
449
+ - spec/fixtures/portal/disable.json
566
450
  - spec/fixtures/portal/my.json
567
451
  - spec/fixtures/portal/enable.json
568
- - spec/fixtures/portal/new.json
569
- - spec/fixtures/portal/disable.json
570
452
  - spec/fixtures/portal/post.json
571
- - spec/fixtures/no_results.json
572
- - spec/fixtures/oauth2_error.json
573
- - spec/fixtures/errors/failure_with_constraint.json
574
- - spec/fixtures/errors/expired.json
575
- - spec/fixtures/errors/failure_with_msg.json
576
- - spec/fixtures/errors/failure.json
577
- - spec/fixtures/count.json
578
- - spec/fixtures/notes/new.json
579
- - spec/fixtures/notes/agent_shared.json
580
- - spec/fixtures/notes/add.json
581
- - spec/fixtures/notes/agent_shared_empty.json
582
- - spec/fixtures/base.json
453
+ - spec/fixtures/portal/new.json
583
454
  - spec/fixtures/generic_failure.json
584
- - spec/fixtures/session.json
585
- - spec/fixtures/generic_delete.json
586
- - spec/fixtures/oauth2/refresh_body.json
587
- - spec/fixtures/oauth2/access_with_refresh.json
588
- - spec/fixtures/oauth2/password_body.json
589
- - spec/fixtures/oauth2/authorization_code_body.json
590
- - spec/fixtures/oauth2/error.json
591
- - spec/fixtures/oauth2/access.json
592
- - spec/fixtures/oauth2/access_with_old_refresh.json
593
- - spec/fixtures/saved_searches/update.json
594
- - spec/fixtures/saved_searches/new.json
595
- - spec/fixtures/saved_searches/get.json
596
- - spec/fixtures/saved_searches/post.json
597
- - spec/fixtures/standardfields/nearby.json
598
- - spec/fixtures/standardfields/city.json
599
- - spec/fixtures/standardfields/stateorprovince.json
600
- - spec/fixtures/standardfields/standardfields.json
601
- - spec/fixtures/fields/order.json
602
- - spec/fixtures/fields/order_a.json
455
+ - spec/fixtures/idx_links/get.json
456
+ - spec/fixtures/search_templates/quick_searches/get.json
457
+ - spec/fixtures/finders.json
603
458
  - spec/fixtures/property_types/property_types.json
604
- - spec/fixtures/accounts/all.json
459
+ - spec/fixtures/authentication_failure.json
460
+ - spec/fixtures/activities/get.json
605
461
  - spec/fixtures/accounts/password_save.json
606
462
  - spec/fixtures/accounts/office.json
607
- - spec/fixtures/accounts/my.json
608
463
  - spec/fixtures/accounts/my_put.json
609
- - spec/fixtures/accounts/my_save.json
464
+ - spec/fixtures/accounts/my.json
610
465
  - spec/fixtures/accounts/my_portal.json
611
- - spec/fixtures/success.json
612
- - spec/fixtures/empty.json
613
- - spec/fixtures/activities/get.json
614
- - spec/fixtures/listing_carts/remove_listing.json
615
- - spec/fixtures/listing_carts/add_listing_post.json
616
- - spec/fixtures/listing_carts/listing_cart.json
617
- - spec/fixtures/listing_carts/empty.json
618
- - spec/fixtures/listing_carts/new.json
619
- - spec/fixtures/listing_carts/post.json
620
- - spec/fixtures/listing_carts/add_listing.json
621
- - spec/fixtures/authentication_failure.json
622
- - spec/fixtures/listings/put_expiration_date.json
623
- - spec/fixtures/listings/no_subresources.json
624
- - spec/fixtures/listings/rental_calendar.json
625
- - spec/fixtures/listings/shared_listing_get.json
626
- - spec/fixtures/listings/constraints_with_pagination.json
627
- - spec/fixtures/listings/with_rental_calendar.json
628
- - spec/fixtures/listings/multiple.json
466
+ - spec/fixtures/accounts/my_save.json
467
+ - spec/fixtures/accounts/all.json
468
+ - spec/fixtures/no_results.json
469
+ - spec/fixtures/contacts/vow_accounts/edit.json
470
+ - spec/fixtures/contacts/vow_accounts/get.json
471
+ - spec/fixtures/contacts/vow_accounts/post.json
472
+ - spec/fixtures/contacts/vow_accounts/new.json
473
+ - spec/fixtures/contacts/contacts.json
474
+ - spec/fixtures/contacts/my.json
475
+ - spec/fixtures/contacts/tags.json
476
+ - spec/fixtures/contacts/post.json
477
+ - spec/fixtures/contacts/new.json
478
+ - spec/fixtures/contacts/new_notify.json
479
+ - spec/fixtures/contacts/new_empty.json
629
480
  - spec/fixtures/listings/open_houses.json
630
- - spec/fixtures/listings/photos/new.json
631
- - spec/fixtures/listings/photos/post.json
632
- - spec/fixtures/listings/photos/index.json
633
- - spec/fixtures/listings/with_videos.json
481
+ - spec/fixtures/listings/constraints.json
634
482
  - spec/fixtures/listings/with_documents.json
635
- - spec/fixtures/listings/put.json
636
- - spec/fixtures/listings/with_permissions.json
637
- - spec/fixtures/listings/with_vtour.json
638
- - spec/fixtures/listings/tour_of_homes_search.json
483
+ - spec/fixtures/listings/shared_listing_post.json
484
+ - spec/fixtures/listings/rental_calendar.json
485
+ - spec/fixtures/listings/no_subresources.json
639
486
  - spec/fixtures/listings/with_photos.json
487
+ - spec/fixtures/listings/put_expiration_date.json
488
+ - spec/fixtures/listings/photos/index.json
489
+ - spec/fixtures/listings/photos/post.json
490
+ - spec/fixtures/listings/photos/new.json
491
+ - spec/fixtures/listings/photos/rollback.json
492
+ - spec/fixtures/listings/multiple.json
493
+ - spec/fixtures/listings/with_videos.json
494
+ - spec/fixtures/listings/tour_of_homes.json
495
+ - spec/fixtures/listings/shared_listing_get.json
640
496
  - spec/fixtures/listings/shared_listing_new.json
641
- - spec/fixtures/listings/videos_index.json
642
497
  - spec/fixtures/listings/with_supplement.json
643
- - spec/fixtures/listings/tour_of_homes.json
644
- - spec/fixtures/listings/shared_listing_post.json
645
- - spec/fixtures/listings/virtual_tours_index.json
498
+ - spec/fixtures/listings/with_rental_calendar.json
499
+ - spec/fixtures/listings/constraints_with_pagination.json
646
500
  - spec/fixtures/listings/document_index.json
647
- - spec/fixtures/listings/constraints.json
648
- - spec/fixtures/comments/new.json
501
+ - spec/fixtures/listings/virtual_tours_index.json
502
+ - spec/fixtures/listings/with_vtour.json
503
+ - spec/fixtures/listings/tour_of_homes_search.json
504
+ - spec/fixtures/listings/videos_index.json
505
+ - spec/fixtures/listings/with_permissions.json
506
+ - spec/fixtures/listings/put.json
507
+ - spec/fixtures/success.json
508
+ - spec/fixtures/standardfields/standardfields.json
509
+ - spec/fixtures/standardfields/nearby.json
510
+ - spec/fixtures/standardfields/stateorprovince.json
511
+ - spec/fixtures/standardfields/city.json
512
+ - spec/fixtures/notes/agent_shared_empty.json
513
+ - spec/fixtures/notes/agent_shared.json
514
+ - spec/fixtures/notes/add.json
515
+ - spec/fixtures/notes/new.json
516
+ - spec/fixtures/generic_delete.json
517
+ - spec/fixtures/oauth2/access_with_refresh.json
518
+ - spec/fixtures/oauth2/password_body.json
519
+ - spec/fixtures/oauth2/refresh_body.json
520
+ - spec/fixtures/oauth2/error.json
521
+ - spec/fixtures/oauth2/access_with_old_refresh.json
522
+ - spec/fixtures/oauth2/authorization_code_body.json
523
+ - spec/fixtures/oauth2/access.json
524
+ - spec/fixtures/oauth2_error.json
525
+ - spec/fixtures/errors/failure_with_msg.json
526
+ - spec/fixtures/errors/failure.json
527
+ - spec/fixtures/errors/expired.json
528
+ - spec/fixtures/errors/failure_with_constraint.json
649
529
  - spec/fixtures/comments/get.json
650
530
  - spec/fixtures/comments/post.json
651
- - spec/fixtures/finders.json
652
- - spec/fixtures/idx_links/get.json
531
+ - spec/fixtures/comments/new.json
532
+ - spec/fixtures/count.json
533
+ - spec/fixtures/saved_searches/update.json
534
+ - spec/fixtures/saved_searches/get.json
535
+ - spec/fixtures/saved_searches/post.json
536
+ - spec/fixtures/saved_searches/new.json
537
+ - spec/fixtures/logo_fbs.png
538
+ - spec/fixtures/listing_carts/listing_cart.json
539
+ - spec/fixtures/listing_carts/add_listing.json
540
+ - spec/fixtures/listing_carts/add_listing_post.json
541
+ - spec/fixtures/listing_carts/remove_listing.json
542
+ - spec/fixtures/listing_carts/empty.json
543
+ - spec/fixtures/listing_carts/post.json
544
+ - spec/fixtures/listing_carts/new.json
545
+ - spec/fixtures/empty.json
546
+ - spec/fixtures/messages/new_with_recipients.json
547
+ - spec/fixtures/messages/post.json
548
+ - spec/fixtures/messages/new.json
549
+ - spec/fixtures/messages/new_empty.json
550
+ - spec/fixtures/base.json
653
551
  - spec/fixtures/notifications/notifications.json
654
- - spec/fixtures/notifications/new_empty.json
655
552
  - spec/fixtures/notifications/unread.json
656
553
  - spec/fixtures/notifications/mark_read.json
657
- - spec/fixtures/notifications/new.json
658
554
  - spec/fixtures/notifications/post.json
659
- - spec/fixtures/contacts/tags.json
660
- - spec/fixtures/contacts/my.json
661
- - spec/fixtures/contacts/new_empty.json
662
- - spec/fixtures/contacts/contacts.json
663
- - spec/fixtures/contacts/new_notify.json
664
- - spec/fixtures/contacts/new.json
665
- - spec/fixtures/contacts/post.json
666
- - spec/fixtures/contacts/vow_accounts/edit.json
667
- - spec/fixtures/contacts/vow_accounts/new.json
668
- - spec/fixtures/contacts/vow_accounts/get.json
669
- - spec/fixtures/contacts/vow_accounts/post.json
670
- - spec/fixtures/messages/new_with_recipients.json
671
- - spec/fixtures/messages/new_empty.json
672
- - spec/fixtures/messages/new.json
673
- - spec/fixtures/messages/post.json
674
- - spec/fixtures/logo_fbs.png
555
+ - spec/fixtures/notifications/new.json
556
+ - spec/fixtures/notifications/new_empty.json
675
557
  - spec/unit/spark_api_spec.rb
676
- - spec/unit/spark_api/authentication/base_auth_spec.rb
677
- - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
678
- - spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb
679
- - spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb
680
- - spec/unit/spark_api/authentication/oauth2_spec.rb
681
- - spec/unit/spark_api/authentication/api_auth_spec.rb
682
- - spec/unit/spark_api/authentication_spec.rb
683
- - spec/unit/spark_api/models/open_house_spec.rb
684
- - spec/unit/spark_api/models/account_spec.rb
685
- - spec/unit/spark_api/models/virtual_tour_spec.rb
686
- - spec/unit/spark_api/models/constraint_spec.rb
687
- - spec/unit/spark_api/models/notification_spec.rb
558
+ - spec/unit/spark_api/primary_array_spec.rb
559
+ - spec/unit/spark_api/options_hash_spec.rb
560
+ - spec/unit/spark_api/models/finders_spec.rb
688
561
  - spec/unit/spark_api/models/saved_search_spec.rb
689
- - spec/unit/spark_api/models/contact_spec.rb
690
- - spec/unit/spark_api/models/idx_link_spec.rb
691
- - spec/unit/spark_api/models/listing_cart_spec.rb
692
562
  - spec/unit/spark_api/models/video_spec.rb
563
+ - spec/unit/spark_api/models/listing_cart_spec.rb
564
+ - spec/unit/spark_api/models/subresource_spec.rb
565
+ - spec/unit/spark_api/models/vow_account_spec.rb
566
+ - spec/unit/spark_api/models/search_template/quick_search_spec.rb
567
+ - spec/unit/spark_api/models/message_spec.rb
568
+ - spec/unit/spark_api/models/shared_listing_spec.rb
569
+ - spec/unit/spark_api/models/dirty_spec.rb
570
+ - spec/unit/spark_api/models/listing_spec.rb
571
+ - spec/unit/spark_api/models/base_spec.rb
572
+ - spec/unit/spark_api/models/note_spec.rb
573
+ - spec/unit/spark_api/models/portal_spec.rb
574
+ - spec/unit/spark_api/models/system_info_spec.rb
575
+ - spec/unit/spark_api/models/account_spec.rb
693
576
  - spec/unit/spark_api/models/rental_calendar_spec.rb
694
577
  - spec/unit/spark_api/models/document_spec.rb
695
- - spec/unit/spark_api/models/activity_spec.rb
578
+ - spec/unit/spark_api/models/contact_spec.rb
696
579
  - spec/unit/spark_api/models/property_types_spec.rb
697
- - spec/unit/spark_api/models/dirty_spec.rb
698
- - spec/unit/spark_api/models/message_spec.rb
699
- - spec/unit/spark_api/models/listing_spec.rb
580
+ - spec/unit/spark_api/models/concerns/savable_spec.rb
581
+ - spec/unit/spark_api/models/concerns/destroyable_spec.rb
582
+ - spec/unit/spark_api/models/activity_spec.rb
583
+ - spec/unit/spark_api/models/virtual_tour_spec.rb
700
584
  - spec/unit/spark_api/models/fields_spec.rb
701
- - spec/unit/spark_api/models/shared_listing_spec.rb
702
- - spec/unit/spark_api/models/note_spec.rb
585
+ - spec/unit/spark_api/models/tour_of_home_spec.rb
586
+ - spec/unit/spark_api/models/notification_spec.rb
703
587
  - spec/unit/spark_api/models/connect_prefs_spec.rb
704
- - spec/unit/spark_api/models/concerns/destroyable_spec.rb
705
- - spec/unit/spark_api/models/concerns/savable_spec.rb
706
- - spec/unit/spark_api/models/vow_account_spec.rb
707
- - spec/unit/spark_api/models/subresource_spec.rb
588
+ - spec/unit/spark_api/models/idx_link_spec.rb
589
+ - spec/unit/spark_api/models/constraint_spec.rb
708
590
  - spec/unit/spark_api/models/photo_spec.rb
709
- - spec/unit/spark_api/models/base_spec.rb
710
- - spec/unit/spark_api/models/portal_spec.rb
711
- - spec/unit/spark_api/models/tour_of_home_spec.rb
712
- - spec/unit/spark_api/models/finders_spec.rb
713
- - spec/unit/spark_api/models/system_info_spec.rb
714
591
  - spec/unit/spark_api/models/standard_fields_spec.rb
592
+ - spec/unit/spark_api/models/open_house_spec.rb
593
+ - spec/unit/spark_api/authentication_spec.rb
715
594
  - spec/unit/spark_api/faraday_middleware_spec.rb
716
- - spec/unit/spark_api/options_hash_spec.rb
717
- - spec/unit/spark_api/paginate_spec.rb
718
- - spec/unit/spark_api/primary_array_spec.rb
719
595
  - spec/unit/spark_api/configuration_spec.rb
720
- - spec/unit/spark_api/request_spec.rb
721
596
  - spec/unit/spark_api/configuration/yaml_spec.rb
722
597
  - spec/unit/spark_api/multi_client_spec.rb
598
+ - spec/unit/spark_api/authentication/base_auth_spec.rb
599
+ - spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb
600
+ - spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb
601
+ - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
602
+ - spec/unit/spark_api/authentication/api_auth_spec.rb
603
+ - spec/unit/spark_api/authentication/oauth2_spec.rb
604
+ - spec/unit/spark_api/request_spec.rb
605
+ - spec/unit/spark_api/paginate_spec.rb
723
606
  - spec/spec_helper.rb