spark_api 1.3.28 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/VERSION +1 -1
- data/lib/spark_api/models/news_feed_meta.rb +11 -12
- data/lib/spark_api/models/saved_search.rb +6 -26
- data/spec/unit/spark_api/models/saved_search_spec.rb +0 -26
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDdhMWQ2ZjA4NTI5NzZhNmIwNTZmZGM2MzgxZjM2MDI2NjIzN2RiZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGU5OTFlNzRlY2Q5YzBkYjczOTBhOGFkZTJjYzhlNDQyOTM0ZDMwYg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDg3YzY1OWFjNDI3OGQzOTQyMmQ1YmJjNjI0OWU5Y2Q0MzdhM2UzOTNjMzk0
|
10
|
+
MTA3OWJkYTIwOGYxMzk0YzQ3MGUzNWVjYzBiZjVlOTBhMGJjZDNiMTg0NTE3
|
11
|
+
NGFhMDNjZjc0MjVhMjVmYmI3NzQ2M2YxNzAyNzFhYTU0MmFlMzg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2Y3NGNkZGVjZjhlNzA2Y2FmYmVmNGUyNDhlZjlmZmVkY2Y0OWJmMzQ2MWJm
|
14
|
+
NDVjYzFlNWJlMGQwZjUxYTIwNjJhYjYzMzgzOGJiMzMwZWQzOTUwNzA4ODhl
|
15
|
+
NjllNjc4YzI4MGE3MDBlYjVlOThkNTEwOTM0YjA1Zjc5ZWZjYjE=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
@@ -2,23 +2,16 @@ module SparkApi
|
|
2
2
|
module Models
|
3
3
|
class NewsFeedMeta < Base
|
4
4
|
|
5
|
-
attr_accessor :data
|
6
|
-
|
7
5
|
self.element_name = "newsfeeds/meta"
|
8
6
|
|
9
|
-
def initialize
|
10
|
-
super
|
11
|
-
@data = connection.get(self.path).first
|
12
|
-
end
|
13
|
-
|
14
7
|
def minimum_core_fields
|
15
|
-
|
8
|
+
data['Subscriptions']['SavedSearches']['MinimumCoreFields']
|
16
9
|
end
|
17
10
|
|
18
11
|
def core_field_names
|
19
|
-
fields =
|
12
|
+
fields = data['Subscriptions']['SavedSearches']['CoreSearchFields']
|
20
13
|
|
21
|
-
|
14
|
+
data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
|
22
15
|
fields << field[1]['Label']
|
23
16
|
end
|
24
17
|
|
@@ -26,15 +19,21 @@ module SparkApi
|
|
26
19
|
end
|
27
20
|
|
28
21
|
def core_fields
|
29
|
-
fields =
|
22
|
+
fields = data['Subscriptions']['SavedSearches']['CoreSearchFields']
|
30
23
|
|
31
|
-
|
24
|
+
data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
|
32
25
|
fields << field.first
|
33
26
|
end
|
34
27
|
|
35
28
|
fields
|
36
29
|
end
|
37
30
|
|
31
|
+
private
|
32
|
+
|
33
|
+
def data
|
34
|
+
@data ||= connection.get(self.path).first
|
35
|
+
end
|
36
|
+
|
38
37
|
end
|
39
38
|
end
|
40
39
|
end
|
@@ -6,15 +6,9 @@ module SparkApi
|
|
6
6
|
include Concerns::Savable,
|
7
7
|
Concerns::Destroyable
|
8
8
|
|
9
|
-
attr_accessor :newsfeeds
|
10
9
|
|
11
10
|
self.element_name="savedsearches"
|
12
11
|
|
13
|
-
def initialize(attributes={})
|
14
|
-
@newsfeeds = nil
|
15
|
-
super(attributes)
|
16
|
-
end
|
17
|
-
|
18
12
|
def self.provided()
|
19
13
|
Class.new(self).tap do |provided|
|
20
14
|
provided.element_name = '/savedsearches'
|
@@ -67,22 +61,12 @@ module SparkApi
|
|
67
61
|
end
|
68
62
|
|
69
63
|
def newsfeeds
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
return true if has_active_newsfeed? || has_inactive_newsfeed?
|
77
|
-
|
78
|
-
number_of_filters = 0
|
79
|
-
|
80
|
-
news_feed_meta.core_fields.each do |field|
|
81
|
-
number_of_filters += 1 if self.Filter.include? field
|
82
|
-
end
|
83
|
-
|
84
|
-
number_of_filters >= news_feed_meta.minimum_core_fields
|
85
|
-
|
64
|
+
@newsfeeds ||= if attributes.key?("NewsFeeds")
|
65
|
+
Newsfeed.collect(attributes["NewsFeeds"])
|
66
|
+
else
|
67
|
+
Newsfeed.collect(connection.get("#{self.class.path}/#{@attributes["Id"]}",
|
68
|
+
:_expand => "NewsFeeds").first["NewsFeeds"])
|
69
|
+
end
|
86
70
|
end
|
87
71
|
|
88
72
|
def has_active_newsfeed?
|
@@ -119,10 +103,6 @@ module SparkApi
|
|
119
103
|
end
|
120
104
|
end
|
121
105
|
|
122
|
-
def news_feed_meta
|
123
|
-
@news_feed_meta ||= NewsFeedMeta.new
|
124
|
-
end
|
125
|
-
|
126
106
|
end
|
127
107
|
|
128
108
|
end
|
@@ -176,32 +176,6 @@ describe SavedSearch do
|
|
176
176
|
end
|
177
177
|
end
|
178
178
|
|
179
|
-
describe "can_have_newsfeed?" do
|
180
|
-
|
181
|
-
before do
|
182
|
-
stub_api_get("/newsfeeds/meta", "newsfeeds/meta.json")
|
183
|
-
end
|
184
|
-
|
185
|
-
it "should return false without at least three filter parameters" do
|
186
|
-
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
|
187
|
-
resource = subject.class.find(id)
|
188
|
-
resource.stub(:has_active_newsfeed?) { false }
|
189
|
-
resource.stub(:has_inactive_newsfeed?) { false }
|
190
|
-
resource.Filter = "MlsStatus Eq 'Active' And PropertyType Eq 'A'"
|
191
|
-
resource.can_have_newsfeed?.should == false
|
192
|
-
end
|
193
|
-
|
194
|
-
it "should return true with three filter parameters" do
|
195
|
-
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
|
196
|
-
resource = subject.class.find(id)
|
197
|
-
resource.stub(:has_active_newsfeed?) { false }
|
198
|
-
resource.stub(:has_inactive_newsfeed?) { false }
|
199
|
-
resource.Filter = "MlsStatus Eq 'Active' And PropertyType Eq 'A' And ListPrice Eq 1000000"
|
200
|
-
resource.can_have_newsfeed?.should == true
|
201
|
-
end
|
202
|
-
|
203
|
-
end
|
204
|
-
|
205
179
|
describe "has_active_newsfeed?" do
|
206
180
|
it "should return true if the search already has a newsfeed" do
|
207
181
|
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spark_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Hornseth
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|