fmrest-core 0.18.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdfc316e5474cc3abbf196051aa48846f6b04452e0864a320445079a09a3f449
4
- data.tar.gz: d23a6c290f33ab9c43f149de58af85825859aae9f0bc781200395bc883f66009
3
+ metadata.gz: 45fc41042ceaacc56c0d27b9d705a635ddad09f34d7e9dbdd33b0965a61a59b3
4
+ data.tar.gz: 37d8f75cb978808a08745efa558aa58c4369a43b023336c1b67f3921c6031cba
5
5
  SHA512:
6
- metadata.gz: 48ddb1505f075011675b5bfbeb437d42e70dff62912a6c44b0ac454c205332e8e61da6a628c0ae0cda095214d54dded125f8f98fa0af711d2e8e34b1d24332e1
7
- data.tar.gz: 16623334ee707adb60e479d6db8bff23f22aa23cac397e32b839d4dceaa7aed4a2e94558684d08b1eaaa1fb008093b9628014a73b8b7dbe93f3d2cd1bc3498fc
6
+ metadata.gz: 7cf50096d31b71e98238a2a4cde059ff771c32929298c277aa9972fb2ec6ddb4a5ebaeef227e6bb63dba2ccc8e8240afb500db4b88669b67b66a5e9887cbd8cf
7
+ data.tar.gz: 2b706a20520719bb1311a7b72c5be838168cb88701904da2ffcd5fcdb973015f825447d5367104819387e1d391af26f289105ac1ae7ccf03ea74f6801f097d68
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## Changelog
2
2
 
3
+ ### 0.20.0
4
+
5
+ * Forward proxy options to AWS Client when using `fmrest-cloud` gem
6
+
7
+ ### 0.19.0
8
+
9
+ * Added native support for FileMaker Cloud through the `fmrest-cloud` gem
10
+
3
11
  ### 0.18.0
4
12
 
5
13
  * Better support for portals with mismatching field qualifiers
data/README.md CHANGED
@@ -5,14 +5,30 @@
5
5
  [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](https://rubydoc.info/github/beezwax/fmrest-ruby)
6
6
 
7
7
  A Ruby client for
8
- [FileMaker 18 and 19's Data API](https://help.claris.com/en/data-api-guide)
9
- using
10
- [Faraday](https://github.com/lostisland/faraday) and with optional
11
- ActiveRecord-ish ORM features through [Spyke](https://github.com/balvig/spyke).
12
-
13
- fmrest-ruby only partially implements FileMaker 19's Data API.
14
- See the [implementation completeness table](#api-implementation-completeness-table)
15
- to see if a feature you need is natively supported by the gem.
8
+ [FileMaker's Data API](https://help.claris.com/en/data-api-guide)
9
+ with ActiveRecord-ish ORM features.
10
+
11
+ While pretty feature-rich, fmrest-ruby doesn't yet support 100% of FileMaker
12
+ 19's Data API features. See the [implementation completeness
13
+ table](#api-implementation-completeness-table) to check if a feature you need
14
+ is natively supported by the gem.
15
+
16
+ Need Ruby or FileMaker consulting? Contact us at
17
+ [Beezwax.net](https://beezwax.net/)
18
+
19
+ ## Contents
20
+
21
+ * [Gems](#gems)
22
+ * [Installation](#installation)
23
+ * [Simple example](#simple-example)
24
+ * [Connection settings](#connection-settings)
25
+ * [Session token store](#session-token-store)
26
+ * [Date fields and timezones](#date-fields-and-timezones)
27
+ * [ActiveRecord-like ORM (fmrest-spyke)](#activerecord-like-orm-fmrest-spyke)
28
+ * [Logging](#logging)
29
+ * [Gotchas](#gotchas)
30
+ * [API implementation completeness table](#api-implementation-completeness-table)
31
+ * [Supported Ruby versions](#supported-ruby-versions)
16
32
 
17
33
  ## Gems
18
34
 
@@ -20,28 +36,26 @@ The `fmrest` gem is a wrapper for two other gems:
20
36
 
21
37
  * `fmrest-spyke`, providing an ActiveRecord-like ORM library built on top
22
38
  of `fmrest-core` and [Spyke](https://github.com/balvig/spyke).
23
- * `fmrest-core`, providing the core Faraday connection builder, session
39
+ * `fmrest-core`, providing the core
40
+ [Faraday](https://github.com/lostisland/faraday) connection builder, session
24
41
  management, and other core utilities.
25
42
 
43
+ In addition, the optional `fmrest-cloud` gem adds support for FileMaker Cloud.
44
+ See the [main document on connecting to FileMaker
45
+ Cloud](docs/FileMakerCloud.md).
46
+
26
47
  ## Installation
27
48
 
28
- Add this to your Gemfile:
49
+ In your Gemfile:
29
50
 
30
51
  ```ruby
31
52
  gem 'fmrest'
32
- ```
33
-
34
- Or if you just want to use the Faraday connection without the ORM features:
35
53
 
36
- ```ruby
37
- gem 'fmrest-core'
54
+ # Optional: if your files are hosted on FileMaker Cloud
55
+ gem 'fmrest-cloud'
38
56
  ```
39
57
 
40
- ## Simple examples
41
-
42
- ### ORM example
43
-
44
- Most people would want to use the ORM features:
58
+ ## Simple example
45
59
 
46
60
  ```ruby
47
61
  # A Layout model connecting to the "Honeybees Web" FileMaker layout
@@ -90,32 +104,9 @@ bee.tasks.build(urgency: "Today")
90
104
  bee.save
91
105
  ```
92
106
 
93
- ### Barebones connection example (without ORM)
94
-
95
- In case you don't need the advanced ORM features (e.g. if you only need minimal
96
- Data API interaction and just want a lightweight solution) you can simply use
97
- the Faraday connection provided by `fmrest-core`:
98
-
99
- ```ruby
100
- connection = FmRest::V1.build_connection(
101
- host: "…",
102
- database: "…",
103
- username: "…",
104
- password: "…"
105
- )
106
-
107
- # Get all records (as parsed JSON)
108
- connection.get("layouts/FancyLayout/records")
109
-
110
- # Create new record
111
- connection.post do |req|
112
- req.url "layouts/FancyLayout/records"
113
-
114
- # You can just pass a hash for the JSON body
115
- req.body = { … }
116
- end
117
- ```
118
-
107
+ In case you don't want the ORM features (i.e. you only need authentication and
108
+ JSON parsing, and are comfortable writing the API requests manually without the
109
+ ORM overhead) you can use the Faraday connection provided by `fmrest-core`.
119
110
  See the [main document on using the base
120
111
  connection](docs/BaseConnectionUsage.md) for more.
121
112
 
@@ -125,10 +116,6 @@ The minimum required connection settings are `:host`, `:database`, `:username`
125
116
  and `:password`, but fmrest-ruby has many other options you can pass when
126
117
  setting up a connection (see [full list](#full-list-of-available-options) below).
127
118
 
128
- If you're using FileMaker Cloud you may need to pass `:fmid_token` instead
129
- of the regular `:username` and `:password`. See the [main document on
130
- connecting to FileMaker Cloud](docs/FileMakerCloud.md) for more info.
131
-
132
119
  `:ssl` and `:proxy` are forwarded to the underlying
133
120
  [Faraday](https://github.com/lostisland/faraday) connection. You can use this
134
121
  to, for instance, disable SSL verification:
@@ -153,9 +140,8 @@ Option | Description | Format
153
140
  `:username` | A Data API-ready account | String | None
154
141
  `:password` | Your password | String | None
155
142
  `:account_name` | Alias of `:username` | String | None
156
- `:fmid_token` | Claris ID token (only needed for FileMaker Cloud) | String | None
157
143
  `:ssl` | SSL options to be forwarded to Faraday | Faraday SSL options | None
158
- `:proxy` | Proxy options to be forwarded to Faraday | Faraday proxy options | None
144
+ `:proxy` | Proxy URI e.g. `http://username:password@proxy.host:5000` | String / URI | None
159
145
  `:log` | Log JSON responses to STDOUT | Boolean | `false`
160
146
  `:log_level` | Which log level to log into | Values accepted by `Logger#level=` | `:debug`
161
147
  `:coerce_dates` | See section on [date fields](#date-fields-and-timezones) | Boolean \| `:hybrid` \| `:full` | `false`
@@ -165,6 +151,11 @@ Option | Description | Format
165
151
  `:timezone` | The timezone for the FM server | `:local` \| `:utc` \| `nil` | `nil`
166
152
  `:autologin` | Whether to automatically start Data API sessions | Boolean | `true`
167
153
  `:token` | Used to manually provide a session token (e.g. if `:autologin` is `false`) | String | None
154
+ `:fmid_token` | Claris ID token (only needed if manually obtaining the token) | String | None
155
+ `:cloud` | Specifies whether the host is using FileMaker Cloud | `:auto` \| Boolean | `:auto`
156
+ `:cognito_client_id`| Overwrites the hardcoded FileMaker Cloud Cognito Client ID | String | None
157
+ `:cognito_pool_id` | Overwrites the hardcoded FileMaker Cloud Cognito Pool ID | String | None
158
+ `:aws_region` | Overwrites the hardcoded FileMaker Cloud AWS Region | String | None
168
159
 
169
160
  ### Default connection settings
170
161
 
@@ -207,7 +198,7 @@ See the [main document on date fields](docs/DateFields.md) for more info.
207
198
  ## ActiveRecord-like ORM (fmrest-spyke)
208
199
 
209
200
  [Spyke](https://github.com/balvig/spyke) is an ActiveRecord-like gem for
210
- building REST ORM models. fmrest-ruby builds its ORM features atop Spyke,
201
+ building REST ORM models. fmrest-ruby uses it to build its ORM features,
211
202
  bundled in the `fmrest-spyke` gem (already included if you're using the
212
203
  `fmrest` gem).
213
204
 
@@ -265,39 +256,33 @@ class Honeybee < FmRest::Layout
265
256
  end
266
257
  ```
267
258
 
268
- This will automatically create a proper Faraday connection using those
269
- connection settings, so you don't have to worry about setting that up.
270
-
271
- Note that these settings are inheritable, so you could create a base class that
259
+ These settings are class-inheritable, so you could create a base class that
272
260
  does the initial connection setup and then inherit from it in models using that
273
261
  same connection. E.g.:
274
262
 
275
263
  ```ruby
276
- class BeeBase < FmRest::Layout
264
+ class ApplicationFmLayout < FmRest::Layout
277
265
  self.fmrest_config = { host: "…", database: "…", … }
278
266
  end
279
267
 
280
- class Honeybee < BeeBase
281
- # This model will use the same connection as BeeBase
268
+ class Honeybee < ApplicationFmLayout
269
+ # This model will use the same connection as ApplicationFmLayout
282
270
  end
283
271
  ```
284
272
 
285
- Also, if not set, your model will try to use
273
+ If `fmrest_config` is not set, your model will try to use
286
274
  `FmRest.default_connection_settings` instead.
287
275
 
288
276
  #### Connection settings overlays
289
277
 
290
278
  There may be cases where you want to use a different set of connection settings
291
- depending on context, or simply change the connection settings over time. For
292
- example, if you want to use username and password provided by the user in a web
293
- application, or if you're connecting using an expiring Claris ID token. Since
294
- `.fmrest_config` is set at the class level, changing the username/password for
295
- the model in one context would also change it in all other contexts, leading to
296
- security issues.
279
+ depending on context. For example, if you want to use username and password
280
+ provided by the user in a web application. Since `.fmrest_config` is set at the
281
+ class level, changing the username/password for the model in one context would
282
+ also change it in all other contexts, leading to security issues.
297
283
 
298
- To solve this scenario, fmrest-ruby provides a way of defining thread-local and
299
- reversible connection settings overlays through
300
- `.fmrest_config_overlay=`.
284
+ To solve this scenario, fmrest-ruby provides a way of defining thread-local,
285
+ reversible connection settings overlays through `.fmrest_config_overlay=`.
301
286
 
302
287
  See the [main document on connection setting overlays](docs/ConfigOverlays.md)
303
288
  for details on how it works.
@@ -461,12 +446,10 @@ for details.
461
446
 
462
447
  ### Rescuable mixin
463
448
 
464
- Sometimes you may want to handle Data API errors at the model level. For
465
- instance, if you're logging in to a file hosted by FileMaker Cloud using a
466
- Claris ID token, and you want to be able to renew said token when it fails to
467
- log you in. For such cases fmrest-ruby provides an off-by-default mixin called
468
- `Rescuable` that provides convenience macros for that. If you've used Ruby on
469
- Rails you may be familiar with its syntax from controllers. E.g.
449
+ Sometimes you may want to handle Data API errors at the model level. For such
450
+ cases fmrest-ruby provides an off-by-default mixin called `Rescuable` that
451
+ provides convenience macros for that. If you've used Ruby on Rails you may be
452
+ familiar with its syntax from controllers. E.g.
470
453
 
471
454
  ```ruby
472
455
  class BeeBase < FmRest::Layout
@@ -474,9 +457,6 @@ class BeeBase < FmRest::Layout
474
457
 
475
458
  rescue_from FmRest::APIError::SystemError, with: :notify_admin_of_system_error
476
459
 
477
- # Shorthand for rescue_with FmRest::APIError::AccountError, ...
478
- rescue_account_error { ClarisIDTokenManager.expire_token }
479
-
480
460
  def self.notify_admin_of_system_error(e)
481
461
  # Shoot an email to the FM admin...
482
462
  end
@@ -549,14 +529,14 @@ Read about unexpected scenarios in the [gotchas doc](docs/Gotchas.md).
549
529
 
550
530
  ## API implementation completeness table
551
531
 
552
- FM Data API reference: https://fmhelp.filemaker.com/docs/18/en/dataapi/
532
+ FM Data API reference: https://help.claris.com/en/data-api-guide/
553
533
 
554
- | FM 18 Data API feature | Supported by basic connection | Supported by FmRest::Layout |
534
+ | FM 19 Data API feature | Supported by basic connection | Supported by FmRest::Layout |
555
535
  |-------------------------------------|-------------------------------|-----------------------------|
556
536
  | Log in using HTTP Basic Auth | Yes | Yes |
557
537
  | Log in using OAuth | No | No |
558
538
  | Log in to an external data source | No | No |
559
- | Log in using Claris ID account | Yes | Yes |
539
+ | Log in using Claris ID account (FileMaker Cloud) | Yes | Yes |
560
540
  | Log out | Yes | Yes |
561
541
  | Get product information | Manual* | No |
562
542
  | Get database names | Manual* | No |
@@ -592,9 +572,9 @@ the following Ruby implementations:
592
572
  ## Gem development
593
573
 
594
574
  After checking out the repo, run `bin/setup` to install dependencies. Then, run
595
- `rake spec` to run the tests. You can also run `bin/console` for an interactive
596
- prompt that will allow you to experiment (it will auto-load all fixtures in
597
- spec/fixtures).
575
+ `bundle exec rspec` to run the specs. You can also run `bin/console` for an
576
+ interactive prompt that will allow you to experiment (it will auto-load all
577
+ fixtures in spec/fixtures).
598
578
 
599
579
  To install all gems onto your local machine, run
600
580
  `bundle exec rake all:install`. To release a new version, update the version
@@ -602,12 +582,6 @@ number in `lib/fmrest/version.rb`, and then run `bundle exec rake all:release`,
602
582
  which will create a git tag for the version, push git commits and tags, and
603
583
  push the `.gem` files to [rubygems.org](https://rubygems.org).
604
584
 
605
- ## License
606
-
607
- The gem is available as open source under the terms of the
608
- [MIT License](https://opensource.org/licenses/MIT).
609
- See [LICENSE.txt](LICENSE.txt).
610
-
611
585
  ## Disclaimer
612
586
 
613
587
  This project is not sponsored by or otherwise affiliated with Claris
@@ -31,6 +31,10 @@ module FmRest
31
31
  timestamp_format
32
32
  time_format
33
33
  timezone
34
+ cognito_client_id
35
+ cognito_pool_id
36
+ aws_region
37
+ cloud
34
38
  ).freeze
35
39
 
36
40
  # NOTE: password intentionally left non-required since it's only really
@@ -51,7 +55,8 @@ module FmRest
51
55
  date_format: DEFAULT_DATE_FORMAT,
52
56
  time_format: DEFAULT_TIME_FORMAT,
53
57
  timestamp_format: DEFAULT_TIMESTAMP_FORMAT,
54
- coerce_dates: false
58
+ coerce_dates: false,
59
+ cloud: :auto,
55
60
  }.freeze
56
61
 
57
62
  def self.wrap(settings, skip_validation: false)
@@ -7,19 +7,19 @@ module FmRest
7
7
  class Memory < Base
8
8
  def initialize(*args)
9
9
  super
10
- @tokens = {}
10
+ @@tokens ||= {}
11
11
  end
12
12
 
13
13
  def delete(key)
14
- @tokens.delete(key)
14
+ @@tokens.delete(key)
15
15
  end
16
16
 
17
17
  def load(key)
18
- @tokens[key]
18
+ @@tokens[key]
19
19
  end
20
20
 
21
21
  def store(key, value)
22
- @tokens[key] = value
22
+ @@tokens[key] = value
23
23
  end
24
24
  end
25
25
  end
@@ -1,20 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "singleton"
4
-
5
3
  module FmRest
6
4
  module TokenStore
7
- module Null < Base
8
- include Singleton
9
-
10
- def delete(key)
11
- end
12
-
13
- def load(key)
14
- end
15
-
16
- def store(key, value)
17
- end
5
+ class Null < Base
6
+ def delete(key); end
7
+ def load(key); end
8
+ def store(key, value); end
18
9
  end
19
10
  end
20
11
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "fmrest/token_store/base"
4
+
5
+ module FmRest
6
+ module TokenStore
7
+ # Similar to Memory token store, but using instance vars instead of class
8
+ # vars. Mainly useful for specs, where we want to scope token persistance
9
+ # to a spec's context only
10
+ class ShortMemory < Base
11
+ def initialize(*args)
12
+ super
13
+ @tokens ||= {}
14
+ end
15
+
16
+ def delete(key)
17
+ @tokens.delete(key)
18
+ end
19
+
20
+ def load(key)
21
+ @tokens[key]
22
+ end
23
+
24
+ def store(key, value)
25
+ @tokens[key] = value
26
+ end
27
+ end
28
+ end
29
+ end
@@ -8,5 +8,29 @@ module FmRest
8
8
  autoload :ActiveRecord, "fmrest/token_store/active_record"
9
9
  autoload :Moneta, "fmrest/token_store/moneta"
10
10
  autoload :Redis, "fmrest/token_store/redis"
11
+ autoload :ShortMemory, "fmrest/token_store/short_memory"
12
+
13
+ TOKEN_STORE_INTERFACE = [:load, :store, :delete].freeze
14
+
15
+ private
16
+
17
+ def token_store
18
+ @token_store ||=
19
+ if TOKEN_STORE_INTERFACE.all? { |method| token_store_option.respond_to?(method) }
20
+ token_store_option
21
+ elsif token_store_option.kind_of?(Class)
22
+ if token_store_option.respond_to?(:instance)
23
+ token_store_option.instance
24
+ else
25
+ token_store_option.new
26
+ end
27
+ else
28
+ FmRest::TokenStore::Memory.new
29
+ end
30
+ end
31
+
32
+ def token_store_option
33
+ raise NotImplementedError
34
+ end
11
35
  end
12
36
  end
@@ -12,6 +12,8 @@ module FmRest
12
12
  AUTH_CONNECTION_HEADERS = DEFAULT_HEADERS.merge("Content-Type" => "application/json").freeze
13
13
  CLARIS_ID_HTTP_AUTH_TYPE = "FMID"
14
14
 
15
+ FILEMAKER_CLOUD_HOST_MATCHER = /\.filemaker-cloud\.com\Z/.freeze
16
+
15
17
  # Builds a complete DAPI Faraday connection with middleware already
16
18
  # configured to handle authentication, JSON parsing, logging and DAPI
17
19
  # error handling. A block can be optionally given for additional
@@ -57,11 +59,18 @@ module FmRest
57
59
  def auth_connection(settings = FmRest.default_connection_settings)
58
60
  settings = ConnectionSettings.wrap(settings)
59
61
 
62
+ if is_cloud_host = cloud_host?(settings)
63
+ FmRest.require_cloud_support
64
+ end
65
+
60
66
  base_connection(settings, headers: AUTH_CONNECTION_HEADERS) do |conn|
67
+ conn.use Cloud::AuthErrorHandler, settings if is_cloud_host
61
68
  conn.use RaiseErrors
62
69
 
63
70
  if settings.fmid_token?
64
- conn.request :authorization, CLARIS_ID_HTTP_AUTH_TYPE, settings.fmid_token
71
+ conn.request :authorization, CLARIS_ID_HTTP_AUTH_TYPE, -> { settings.fmid_token }
72
+ elsif is_cloud_host
73
+ conn.request :authorization, CLARIS_ID_HTTP_AUTH_TYPE, -> { Cloud::ClarisIdTokenManager.new(settings).fetch_token }
65
74
  else
66
75
  conn.request :basic_auth, settings.username!, settings.password!
67
76
  end
@@ -117,6 +126,16 @@ module FmRest
117
126
  &block
118
127
  )
119
128
  end
129
+
130
+ private
131
+
132
+ def cloud_host?(settings)
133
+ if settings.cloud == :auto
134
+ return FILEMAKER_CLOUD_HOST_MATCHER =~ settings.host
135
+ end
136
+
137
+ settings.cloud
138
+ end
120
139
  end
121
140
  end
122
141
  end
@@ -7,10 +7,11 @@ module FmRest
7
7
  # FM Data API authentication middleware using the credentials strategy
8
8
  #
9
9
  class TokenSession < Faraday::Middleware
10
+ include TokenStore
11
+
10
12
  class NoSessionTokenSet < FmRest::Error; end
11
13
 
12
14
  HEADER_KEY = "Authorization"
13
- TOKEN_STORE_INTERFACE = [:load, :store, :delete].freeze
14
15
  LOGOUT_PATH_MATCHER = %r{\A(#{FmRest::V1::Connection::DATABASES_PATH}/[^/]+/sessions/)[^/]+\Z}.freeze
15
16
 
16
17
  # @param app [#call]
@@ -110,23 +111,6 @@ module FmRest
110
111
  end
111
112
  end
112
113
 
113
- def token_store
114
- @token_store ||=
115
- begin
116
- if TOKEN_STORE_INTERFACE.all? { |method| token_store_option.respond_to?(method) }
117
- token_store_option
118
- elsif token_store_option.kind_of?(Class)
119
- if token_store_option.respond_to?(:instance)
120
- token_store_option.instance
121
- else
122
- token_store_option.new
123
- end
124
- else
125
- FmRest::TokenStore::Memory.new
126
- end
127
- end
128
- end
129
-
130
114
  def token_store_option
131
115
  @settings.token_store || FmRest.token_store
132
116
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FmRest
4
- VERSION = "0.18.0"
4
+ VERSION = "0.20.0"
5
5
  end
data/lib/fmrest.rb CHANGED
@@ -59,5 +59,12 @@ module FmRest
59
59
  require "fmrest/spyke"
60
60
  self.Layout(*_)
61
61
  end
62
+
63
+ def require_cloud_support
64
+ require "fmrest/cloud"
65
+ rescue LoadError => e
66
+ e.message << " (Did you include fmrest-cloud in your Gemfile?)" unless e.message.frozen?
67
+ raise e
68
+ end
62
69
  end
63
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fmrest-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Carbajal
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-16 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
19
+ version: 1.8.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.9.0
29
+ version: 1.8.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2.0'
@@ -64,7 +64,6 @@ files:
64
64
  - LICENSE.txt
65
65
  - README.md
66
66
  - lib/fmrest-core.rb
67
- - lib/fmrest-spyke.rb
68
67
  - lib/fmrest.rb
69
68
  - lib/fmrest/connection_settings.rb
70
69
  - lib/fmrest/errors.rb
@@ -76,6 +75,7 @@ files:
76
75
  - lib/fmrest/token_store/moneta.rb
77
76
  - lib/fmrest/token_store/null.rb
78
77
  - lib/fmrest/token_store/redis.rb
78
+ - lib/fmrest/token_store/short_memory.rb
79
79
  - lib/fmrest/v1.rb
80
80
  - lib/fmrest/v1/auth.rb
81
81
  - lib/fmrest/v1/connection.rb
data/lib/fmrest-spyke.rb DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "fmrest/spyke"