swiftype 0.0.5 → 1.0.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.
Files changed (97) hide show
  1. data/.gitignore +5 -0
  2. data/.travis.yml +6 -0
  3. data/Gemfile +1 -1
  4. data/README.md +202 -283
  5. data/lib/data/ca-bundle.crt +3554 -0
  6. data/lib/swiftype.rb +7 -31
  7. data/lib/swiftype/client.rb +439 -11
  8. data/lib/swiftype/configuration.rb +29 -4
  9. data/lib/swiftype/exceptions.rb +2 -0
  10. data/lib/swiftype/ext/backport-uri.rb +33 -0
  11. data/lib/swiftype/request.rb +88 -20
  12. data/lib/swiftype/result_set.rb +43 -6
  13. data/lib/swiftype/sso.rb +20 -0
  14. data/lib/swiftype/version.rb +1 -1
  15. data/spec/client_spec.rb +576 -0
  16. data/spec/configuration_spec.rb +36 -0
  17. data/spec/deprecated_spec.rb +20 -0
  18. data/spec/fixtures/vcr/analytics_autoselects.yml +55 -0
  19. data/spec/fixtures/vcr/analytics_autoselects_with_document_type.yml +55 -0
  20. data/spec/fixtures/vcr/analytics_autoselects_with_document_type_and_time_range.yml +55 -0
  21. data/spec/fixtures/vcr/analytics_autoselects_with_time_range.yml +55 -0
  22. data/spec/fixtures/vcr/analytics_clicks.yml +55 -0
  23. data/spec/fixtures/vcr/analytics_clicks_with_document_type.yml +55 -0
  24. data/spec/fixtures/vcr/analytics_clicks_with_document_type_and_time_range.yml +55 -0
  25. data/spec/fixtures/vcr/analytics_clicks_with_time_range.yml +55 -0
  26. data/spec/fixtures/vcr/analytics_searches.yml +55 -0
  27. data/spec/fixtures/vcr/analytics_searches_with_document_type_and_time_range.yml +55 -0
  28. data/spec/fixtures/vcr/analytics_searches_with_time_range.yml +55 -0
  29. data/spec/fixtures/vcr/analytics_searchs_with_document_type.yml +55 -0
  30. data/spec/fixtures/vcr/analytics_top_no_result_queries.yml +55 -0
  31. data/spec/fixtures/vcr/analytics_top_no_result_queries_paginated.yml +55 -0
  32. data/spec/fixtures/vcr/analytics_top_queries.yml +55 -0
  33. data/spec/fixtures/vcr/analytics_top_queries_paginated.yml +55 -0
  34. data/spec/fixtures/vcr/analytics_top_queries_too_large.yml +51 -0
  35. data/spec/fixtures/vcr/bulk_create_documents.yml +49 -0
  36. data/spec/fixtures/vcr/bulk_create_or_update_documents_failure.yml +45 -0
  37. data/spec/fixtures/vcr/bulk_create_or_update_documents_success.yml +49 -0
  38. data/spec/fixtures/vcr/bulk_destroy_documents.yml +45 -0
  39. data/spec/fixtures/vcr/crawl_url.yml +45 -0
  40. data/spec/fixtures/vcr/create_document.yml +48 -0
  41. data/spec/fixtures/vcr/create_document_type.yml +45 -0
  42. data/spec/fixtures/vcr/create_domain.yml +45 -0
  43. data/spec/fixtures/vcr/create_engine.yml +45 -0
  44. data/spec/fixtures/vcr/create_or_update_document_create.yml +47 -0
  45. data/spec/fixtures/vcr/create_or_update_document_update.yml +47 -0
  46. data/spec/fixtures/vcr/create_user.yml +45 -0
  47. data/spec/fixtures/vcr/destroy_document.yml +41 -0
  48. data/spec/fixtures/vcr/destroy_document_type.yml +41 -0
  49. data/spec/fixtures/vcr/destroy_domain.yml +41 -0
  50. data/spec/fixtures/vcr/destroy_engine.yml +41 -0
  51. data/spec/fixtures/vcr/destroy_non_existent_document_type.yml +43 -0
  52. data/spec/fixtures/vcr/document_type_search.yml +60 -0
  53. data/spec/fixtures/vcr/document_type_search_pagination.yml +45 -0
  54. data/spec/fixtures/vcr/document_type_suggest.yml +50 -0
  55. data/spec/fixtures/vcr/document_type_suggest_pagination.yml +45 -0
  56. data/spec/fixtures/vcr/engine_search.yml +64 -0
  57. data/spec/fixtures/vcr/engine_search_facets.yml +162 -0
  58. data/spec/fixtures/vcr/engine_search_pagination.yml +45 -0
  59. data/spec/fixtures/vcr/engine_suggest.yml +52 -0
  60. data/spec/fixtures/vcr/engine_suggest_pagination.yml +45 -0
  61. data/spec/fixtures/vcr/find_document.yml +47 -0
  62. data/spec/fixtures/vcr/find_document_type.yml +45 -0
  63. data/spec/fixtures/vcr/find_domain.yml +45 -0
  64. data/spec/fixtures/vcr/find_domain_failure.yml +43 -0
  65. data/spec/fixtures/vcr/find_engine.yml +45 -0
  66. data/spec/fixtures/vcr/list_document_type.yml +45 -0
  67. data/spec/fixtures/vcr/list_documents.yml +68 -0
  68. data/spec/fixtures/vcr/list_documents_with_pagination.yml +68 -0
  69. data/spec/fixtures/vcr/list_domains.yml +45 -0
  70. data/spec/fixtures/vcr/list_engines.yml +46 -0
  71. data/spec/fixtures/vcr/list_users.yml +45 -0
  72. data/spec/fixtures/vcr/list_users_with_pagination.yml +45 -0
  73. data/spec/fixtures/vcr/log_clickthrough_failure.yml +43 -0
  74. data/spec/fixtures/vcr/log_clickthrough_success.yml +45 -0
  75. data/spec/fixtures/vcr/recrawl_domain_failure.yml +44 -0
  76. data/spec/fixtures/vcr/recrawl_domain_success.yml +45 -0
  77. data/spec/fixtures/vcr/show_user.yml +45 -0
  78. data/spec/fixtures/vcr/update_document.yml +47 -0
  79. data/spec/fixtures/vcr/update_document_unknown_field_failure.yml +45 -0
  80. data/spec/fixtures/vcr/update_documents_failure_non_existent_document.yml +45 -0
  81. data/spec/fixtures/vcr/update_documents_success.yml +45 -0
  82. data/spec/fixtures/vcr/users_client_secret_incorrect.yml +42 -0
  83. data/spec/fixtures/vcr/users_no_api_key.yml +42 -0
  84. data/spec/fixtures/vcr/users_no_client_id_or_secret.yml +43 -0
  85. data/spec/platform_spec.rb +95 -0
  86. data/spec/spec_helper.rb +26 -0
  87. data/spec/ssl_spec.rb +34 -0
  88. data/spec/sso_spec.rb +24 -0
  89. data/swiftype.gemspec +10 -11
  90. metadata +183 -52
  91. data/lib/swiftype/base_model.rb +0 -89
  92. data/lib/swiftype/connection.rb +0 -47
  93. data/lib/swiftype/document.rb +0 -17
  94. data/lib/swiftype/document_type.rb +0 -69
  95. data/lib/swiftype/easy.rb +0 -77
  96. data/lib/swiftype/engine.rb +0 -33
  97. data/lib/swiftype/search.rb +0 -23
data/swiftype.gemspec CHANGED
@@ -1,4 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
1
  $:.push File.expand_path("../lib", __FILE__)
3
2
  require "swiftype/version"
4
3
 
@@ -7,20 +6,20 @@ Gem::Specification.new do |s|
7
6
  s.version = Swiftype::VERSION
8
7
  s.authors = ["Quin Hoxie", "Matt Riley"]
9
8
  s.email = ["team@swiftype.com"]
10
- s.homepage = "http://swiftype.com"
11
- s.summary = %q{Swiftype API Gem}
12
- s.description = %q{Official gem for accessing the Swiftype Search API}
9
+ s.homepage = "https://swiftype.com"
10
+ s.summary = %q{Official gem for accessing the Swiftype Search API}
11
+ s.description = %q{API client for accessing the Swiftype Search API with no dependencies (on Ruby 1.9, JSON needed for Ruby 1.8).}
13
12
 
14
13
  s.files = `git ls-files`.split("\n")
15
14
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
15
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
16
  s.require_paths = ["lib"]
18
17
 
19
- # specify any dependencies here; for example:
20
- # s.add_development_dependency "rspec"
21
- s.add_runtime_dependency "json", ['~> 1.7.7']
22
- s.add_runtime_dependency "faraday", ['~> 0.8.1']
23
- s.add_runtime_dependency "faraday_middleware", ['~> 0.8.7']
24
- s.add_runtime_dependency "hashie", ['~> 1.2.0']
25
- s.add_runtime_dependency 'activesupport', ['>= 2.3.9']
18
+ s.add_development_dependency 'rspec'
19
+ s.add_development_dependency 'awesome_print'
20
+ s.add_development_dependency 'vcr'
21
+ s.add_development_dependency 'webmock'
22
+ if RUBY_VERSION < '1.9'
23
+ s.add_runtime_dependency 'json'
24
+ end
26
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swiftype
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,89 +10,74 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-19 00:00:00.000000000 Z
13
+ date: 2013-09-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: json
16
+ name: rspec
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - ~>
21
- - !ruby/object:Gem::Version
22
- version: 1.7.7
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
30
- version: 1.7.7
31
- - !ruby/object:Gem::Dependency
32
- name: faraday
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
20
+ - - ! '>='
37
21
  - !ruby/object:Gem::Version
38
- version: 0.8.1
39
- type: :runtime
22
+ version: '0'
23
+ type: :development
40
24
  prerelease: false
41
25
  version_requirements: !ruby/object:Gem::Requirement
42
26
  none: false
43
27
  requirements:
44
- - - ~>
28
+ - - ! '>='
45
29
  - !ruby/object:Gem::Version
46
- version: 0.8.1
30
+ version: '0'
47
31
  - !ruby/object:Gem::Dependency
48
- name: faraday_middleware
32
+ name: awesome_print
49
33
  requirement: !ruby/object:Gem::Requirement
50
34
  none: false
51
35
  requirements:
52
- - - ~>
36
+ - - ! '>='
53
37
  - !ruby/object:Gem::Version
54
- version: 0.8.7
55
- type: :runtime
38
+ version: '0'
39
+ type: :development
56
40
  prerelease: false
57
41
  version_requirements: !ruby/object:Gem::Requirement
58
42
  none: false
59
43
  requirements:
60
- - - ~>
44
+ - - ! '>='
61
45
  - !ruby/object:Gem::Version
62
- version: 0.8.7
46
+ version: '0'
63
47
  - !ruby/object:Gem::Dependency
64
- name: hashie
48
+ name: vcr
65
49
  requirement: !ruby/object:Gem::Requirement
66
50
  none: false
67
51
  requirements:
68
- - - ~>
52
+ - - ! '>='
69
53
  - !ruby/object:Gem::Version
70
- version: 1.2.0
71
- type: :runtime
54
+ version: '0'
55
+ type: :development
72
56
  prerelease: false
73
57
  version_requirements: !ruby/object:Gem::Requirement
74
58
  none: false
75
59
  requirements:
76
- - - ~>
60
+ - - ! '>='
77
61
  - !ruby/object:Gem::Version
78
- version: 1.2.0
62
+ version: '0'
79
63
  - !ruby/object:Gem::Dependency
80
- name: activesupport
64
+ name: webmock
81
65
  requirement: !ruby/object:Gem::Requirement
82
66
  none: false
83
67
  requirements:
84
68
  - - ! '>='
85
69
  - !ruby/object:Gem::Version
86
- version: 2.3.9
87
- type: :runtime
70
+ version: '0'
71
+ type: :development
88
72
  prerelease: false
89
73
  version_requirements: !ruby/object:Gem::Requirement
90
74
  none: false
91
75
  requirements:
92
76
  - - ! '>='
93
77
  - !ruby/object:Gem::Version
94
- version: 2.3.9
95
- description: Official gem for accessing the Swiftype Search API
78
+ version: '0'
79
+ description: API client for accessing the Swiftype Search API with no dependencies
80
+ (on Ruby 1.9, JSON needed for Ruby 1.8).
96
81
  email:
97
82
  - team@swiftype.com
98
83
  executables: []
@@ -100,26 +85,97 @@ extensions: []
100
85
  extra_rdoc_files: []
101
86
  files:
102
87
  - .gitignore
88
+ - .travis.yml
103
89
  - Gemfile
104
90
  - LICENSE.txt
105
91
  - README.md
106
92
  - Rakefile
93
+ - lib/data/ca-bundle.crt
107
94
  - lib/swiftype.rb
108
- - lib/swiftype/base_model.rb
109
95
  - lib/swiftype/client.rb
110
96
  - lib/swiftype/configuration.rb
111
- - lib/swiftype/connection.rb
112
- - lib/swiftype/document.rb
113
- - lib/swiftype/document_type.rb
114
- - lib/swiftype/easy.rb
115
- - lib/swiftype/engine.rb
116
97
  - lib/swiftype/exceptions.rb
98
+ - lib/swiftype/ext/backport-uri.rb
117
99
  - lib/swiftype/request.rb
118
100
  - lib/swiftype/result_set.rb
119
- - lib/swiftype/search.rb
101
+ - lib/swiftype/sso.rb
120
102
  - lib/swiftype/version.rb
103
+ - spec/client_spec.rb
104
+ - spec/configuration_spec.rb
105
+ - spec/deprecated_spec.rb
106
+ - spec/fixtures/vcr/analytics_autoselects.yml
107
+ - spec/fixtures/vcr/analytics_autoselects_with_document_type.yml
108
+ - spec/fixtures/vcr/analytics_autoselects_with_document_type_and_time_range.yml
109
+ - spec/fixtures/vcr/analytics_autoselects_with_time_range.yml
110
+ - spec/fixtures/vcr/analytics_clicks.yml
111
+ - spec/fixtures/vcr/analytics_clicks_with_document_type.yml
112
+ - spec/fixtures/vcr/analytics_clicks_with_document_type_and_time_range.yml
113
+ - spec/fixtures/vcr/analytics_clicks_with_time_range.yml
114
+ - spec/fixtures/vcr/analytics_searches.yml
115
+ - spec/fixtures/vcr/analytics_searches_with_document_type_and_time_range.yml
116
+ - spec/fixtures/vcr/analytics_searches_with_time_range.yml
117
+ - spec/fixtures/vcr/analytics_searchs_with_document_type.yml
118
+ - spec/fixtures/vcr/analytics_top_no_result_queries.yml
119
+ - spec/fixtures/vcr/analytics_top_no_result_queries_paginated.yml
120
+ - spec/fixtures/vcr/analytics_top_queries.yml
121
+ - spec/fixtures/vcr/analytics_top_queries_paginated.yml
122
+ - spec/fixtures/vcr/analytics_top_queries_too_large.yml
123
+ - spec/fixtures/vcr/bulk_create_documents.yml
124
+ - spec/fixtures/vcr/bulk_create_or_update_documents_failure.yml
125
+ - spec/fixtures/vcr/bulk_create_or_update_documents_success.yml
126
+ - spec/fixtures/vcr/bulk_destroy_documents.yml
127
+ - spec/fixtures/vcr/crawl_url.yml
128
+ - spec/fixtures/vcr/create_document.yml
129
+ - spec/fixtures/vcr/create_document_type.yml
130
+ - spec/fixtures/vcr/create_domain.yml
131
+ - spec/fixtures/vcr/create_engine.yml
132
+ - spec/fixtures/vcr/create_or_update_document_create.yml
133
+ - spec/fixtures/vcr/create_or_update_document_update.yml
134
+ - spec/fixtures/vcr/create_user.yml
135
+ - spec/fixtures/vcr/destroy_document.yml
136
+ - spec/fixtures/vcr/destroy_document_type.yml
137
+ - spec/fixtures/vcr/destroy_domain.yml
138
+ - spec/fixtures/vcr/destroy_engine.yml
139
+ - spec/fixtures/vcr/destroy_non_existent_document_type.yml
140
+ - spec/fixtures/vcr/document_type_search.yml
141
+ - spec/fixtures/vcr/document_type_search_pagination.yml
142
+ - spec/fixtures/vcr/document_type_suggest.yml
143
+ - spec/fixtures/vcr/document_type_suggest_pagination.yml
144
+ - spec/fixtures/vcr/engine_search.yml
145
+ - spec/fixtures/vcr/engine_search_facets.yml
146
+ - spec/fixtures/vcr/engine_search_pagination.yml
147
+ - spec/fixtures/vcr/engine_suggest.yml
148
+ - spec/fixtures/vcr/engine_suggest_pagination.yml
149
+ - spec/fixtures/vcr/find_document.yml
150
+ - spec/fixtures/vcr/find_document_type.yml
151
+ - spec/fixtures/vcr/find_domain.yml
152
+ - spec/fixtures/vcr/find_domain_failure.yml
153
+ - spec/fixtures/vcr/find_engine.yml
154
+ - spec/fixtures/vcr/list_document_type.yml
155
+ - spec/fixtures/vcr/list_documents.yml
156
+ - spec/fixtures/vcr/list_documents_with_pagination.yml
157
+ - spec/fixtures/vcr/list_domains.yml
158
+ - spec/fixtures/vcr/list_engines.yml
159
+ - spec/fixtures/vcr/list_users.yml
160
+ - spec/fixtures/vcr/list_users_with_pagination.yml
161
+ - spec/fixtures/vcr/log_clickthrough_failure.yml
162
+ - spec/fixtures/vcr/log_clickthrough_success.yml
163
+ - spec/fixtures/vcr/recrawl_domain_failure.yml
164
+ - spec/fixtures/vcr/recrawl_domain_success.yml
165
+ - spec/fixtures/vcr/show_user.yml
166
+ - spec/fixtures/vcr/update_document.yml
167
+ - spec/fixtures/vcr/update_document_unknown_field_failure.yml
168
+ - spec/fixtures/vcr/update_documents_failure_non_existent_document.yml
169
+ - spec/fixtures/vcr/update_documents_success.yml
170
+ - spec/fixtures/vcr/users_client_secret_incorrect.yml
171
+ - spec/fixtures/vcr/users_no_api_key.yml
172
+ - spec/fixtures/vcr/users_no_client_id_or_secret.yml
173
+ - spec/platform_spec.rb
174
+ - spec/spec_helper.rb
175
+ - spec/ssl_spec.rb
176
+ - spec/sso_spec.rb
121
177
  - swiftype.gemspec
122
- homepage: http://swiftype.com
178
+ homepage: https://swiftype.com
123
179
  licenses: []
124
180
  post_install_message:
125
181
  rdoc_options: []
@@ -139,8 +195,83 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
195
  version: '0'
140
196
  requirements: []
141
197
  rubyforge_project:
142
- rubygems_version: 1.8.23
198
+ rubygems_version: 1.8.24
143
199
  signing_key:
144
200
  specification_version: 3
145
- summary: Swiftype API Gem
146
- test_files: []
201
+ summary: Official gem for accessing the Swiftype Search API
202
+ test_files:
203
+ - spec/client_spec.rb
204
+ - spec/configuration_spec.rb
205
+ - spec/deprecated_spec.rb
206
+ - spec/fixtures/vcr/analytics_autoselects.yml
207
+ - spec/fixtures/vcr/analytics_autoselects_with_document_type.yml
208
+ - spec/fixtures/vcr/analytics_autoselects_with_document_type_and_time_range.yml
209
+ - spec/fixtures/vcr/analytics_autoselects_with_time_range.yml
210
+ - spec/fixtures/vcr/analytics_clicks.yml
211
+ - spec/fixtures/vcr/analytics_clicks_with_document_type.yml
212
+ - spec/fixtures/vcr/analytics_clicks_with_document_type_and_time_range.yml
213
+ - spec/fixtures/vcr/analytics_clicks_with_time_range.yml
214
+ - spec/fixtures/vcr/analytics_searches.yml
215
+ - spec/fixtures/vcr/analytics_searches_with_document_type_and_time_range.yml
216
+ - spec/fixtures/vcr/analytics_searches_with_time_range.yml
217
+ - spec/fixtures/vcr/analytics_searchs_with_document_type.yml
218
+ - spec/fixtures/vcr/analytics_top_no_result_queries.yml
219
+ - spec/fixtures/vcr/analytics_top_no_result_queries_paginated.yml
220
+ - spec/fixtures/vcr/analytics_top_queries.yml
221
+ - spec/fixtures/vcr/analytics_top_queries_paginated.yml
222
+ - spec/fixtures/vcr/analytics_top_queries_too_large.yml
223
+ - spec/fixtures/vcr/bulk_create_documents.yml
224
+ - spec/fixtures/vcr/bulk_create_or_update_documents_failure.yml
225
+ - spec/fixtures/vcr/bulk_create_or_update_documents_success.yml
226
+ - spec/fixtures/vcr/bulk_destroy_documents.yml
227
+ - spec/fixtures/vcr/crawl_url.yml
228
+ - spec/fixtures/vcr/create_document.yml
229
+ - spec/fixtures/vcr/create_document_type.yml
230
+ - spec/fixtures/vcr/create_domain.yml
231
+ - spec/fixtures/vcr/create_engine.yml
232
+ - spec/fixtures/vcr/create_or_update_document_create.yml
233
+ - spec/fixtures/vcr/create_or_update_document_update.yml
234
+ - spec/fixtures/vcr/create_user.yml
235
+ - spec/fixtures/vcr/destroy_document.yml
236
+ - spec/fixtures/vcr/destroy_document_type.yml
237
+ - spec/fixtures/vcr/destroy_domain.yml
238
+ - spec/fixtures/vcr/destroy_engine.yml
239
+ - spec/fixtures/vcr/destroy_non_existent_document_type.yml
240
+ - spec/fixtures/vcr/document_type_search.yml
241
+ - spec/fixtures/vcr/document_type_search_pagination.yml
242
+ - spec/fixtures/vcr/document_type_suggest.yml
243
+ - spec/fixtures/vcr/document_type_suggest_pagination.yml
244
+ - spec/fixtures/vcr/engine_search.yml
245
+ - spec/fixtures/vcr/engine_search_facets.yml
246
+ - spec/fixtures/vcr/engine_search_pagination.yml
247
+ - spec/fixtures/vcr/engine_suggest.yml
248
+ - spec/fixtures/vcr/engine_suggest_pagination.yml
249
+ - spec/fixtures/vcr/find_document.yml
250
+ - spec/fixtures/vcr/find_document_type.yml
251
+ - spec/fixtures/vcr/find_domain.yml
252
+ - spec/fixtures/vcr/find_domain_failure.yml
253
+ - spec/fixtures/vcr/find_engine.yml
254
+ - spec/fixtures/vcr/list_document_type.yml
255
+ - spec/fixtures/vcr/list_documents.yml
256
+ - spec/fixtures/vcr/list_documents_with_pagination.yml
257
+ - spec/fixtures/vcr/list_domains.yml
258
+ - spec/fixtures/vcr/list_engines.yml
259
+ - spec/fixtures/vcr/list_users.yml
260
+ - spec/fixtures/vcr/list_users_with_pagination.yml
261
+ - spec/fixtures/vcr/log_clickthrough_failure.yml
262
+ - spec/fixtures/vcr/log_clickthrough_success.yml
263
+ - spec/fixtures/vcr/recrawl_domain_failure.yml
264
+ - spec/fixtures/vcr/recrawl_domain_success.yml
265
+ - spec/fixtures/vcr/show_user.yml
266
+ - spec/fixtures/vcr/update_document.yml
267
+ - spec/fixtures/vcr/update_document_unknown_field_failure.yml
268
+ - spec/fixtures/vcr/update_documents_failure_non_existent_document.yml
269
+ - spec/fixtures/vcr/update_documents_success.yml
270
+ - spec/fixtures/vcr/users_client_secret_incorrect.yml
271
+ - spec/fixtures/vcr/users_no_api_key.yml
272
+ - spec/fixtures/vcr/users_no_client_id_or_secret.yml
273
+ - spec/platform_spec.rb
274
+ - spec/spec_helper.rb
275
+ - spec/ssl_spec.rb
276
+ - spec/sso_spec.rb
277
+ has_rdoc:
@@ -1,89 +0,0 @@
1
- require 'active_support/inflector'
2
-
3
- module Swiftype
4
- class BaseModel < OpenStruct
5
- include Swiftype::Connection
6
- include Swiftype::Request
7
-
8
- class << self
9
- attr_reader :parent_classes
10
-
11
- def model_name
12
- name.split('::').last.underscore
13
- end
14
-
15
- def collection_name
16
- model_name.pluralize
17
- end
18
-
19
- def parents(*parent_classes)
20
- @parent_classes = parent_classes
21
- end
22
- end
23
-
24
- def to_hash
25
- table
26
- end
27
-
28
- def to_json
29
- to_hash.to_json
30
- end
31
-
32
- def create!
33
- update_with! post(path_to_collection, {self.class.model_name => to_hash})
34
- end
35
-
36
- def update!
37
- update_with! put(path_to_model, {self.class.model_name => to_hash})
38
- end
39
-
40
- def destroy!
41
- !!delete(path_to_model)
42
- end
43
-
44
- def path_to_model
45
- "#{raw_path_to_model}.json"
46
- end
47
-
48
- def raw_path_to_model
49
- path = (self.class.parent_classes || []).inject("") do |_, parent|
50
- parent_id = send("#{parent.model_name}_id")
51
- _ += "#{parent.collection_name}/#{parent_id}/"
52
- _
53
- end
54
- "#{path}#{self.class.collection_name}/#{identifier}"
55
- end
56
-
57
- def path_to_collection
58
- "#{raw_path_to_collection}.json"
59
- end
60
-
61
- def raw_path_to_collection
62
- path = (self.class.parent_classes || []).inject("") do |_, parent|
63
- parent_id = send("#{parent.model_name}_id")
64
- _ += "#{parent.collection_name}/#{parent_id}/"
65
- _
66
- end
67
- "#{path}#{self.class.collection_name}"
68
- end
69
-
70
- def update_with!(hash)
71
- hash.each do |k, v|
72
- send "#{k}=", v
73
- end
74
- self
75
- end
76
-
77
- def reload
78
- update_with! get(path_to_model)
79
- end
80
-
81
- def identifier
82
- slugged? ? slug : id
83
- end
84
-
85
- def slugged?
86
- respond_to?(:slug)
87
- end
88
- end
89
- end
@@ -1,47 +0,0 @@
1
- module Swiftype
2
- module Connection
3
- include Swiftype::Request
4
-
5
- def connection
6
- raise(InvalidCredentials, "You must supply credentials to Swiftype.configure") unless (Swiftype.username && Swiftype.password ) || Swiftype.api_key
7
-
8
- @connection ||= begin
9
- conn = Faraday.new(Swiftype.endpoint) do |b|
10
- b.response :raise_error
11
- b.use Faraday::Request::UrlEncoded
12
- b.use FaradayMiddleware::ParseJson
13
- b.use FaradayMiddleware::Mashify
14
- b.use ApiResponseMiddleware
15
- b.adapter Faraday.default_adapter
16
- end
17
-
18
- conn.basic_auth Swiftype.username, Swiftype.password if Swiftype.username && Swiftype.password
19
- conn.headers['User-Agent'] = Swiftype.user_agent
20
-
21
- conn
22
- end
23
- end
24
-
25
- class ApiResponseMiddleware < Faraday::Response::Middleware
26
- def on_complete(env)
27
- case env[:status]
28
- when 200, 201, 204
29
- nil
30
- when 401
31
- raise InvalidCredentials
32
- when 404
33
- raise NonExistentRecord
34
- when 409
35
- raise RecordAlreadyExists
36
- else
37
- raise UnexpectedHTTPException, env[:body]
38
- end
39
- end
40
-
41
- def initialize(app)
42
- super
43
- @parser = nil
44
- end
45
- end
46
- end
47
- end