fmrest 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/README.md +27 -1
- data/lib/fmrest/spyke/model.rb +2 -0
- data/lib/fmrest/spyke/model/global_fields.rb +40 -0
- data/lib/fmrest/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f96cf4500b2417bde1c853954dee03a362088adac933fc7d803d8e37e91cc8a
|
4
|
+
data.tar.gz: e6cd271dbfef1c87c04a515b8a22e7ead87ec88ab915b37245d4dcecc7c9a237
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68c4083e32e942fd609b050c2001d32b97c18d88ab70301f10ff0ce31527af2c5faff6e210afceaf152280dc2e0924a8edf2e2994e28ad331d2f015860f172f3
|
7
|
+
data.tar.gz: 9af1f38e2a59bda96639d6b6f1d3756b007a8c327392159f6288f2365161a94a211ff483744499771716e8e1d61cd8a57876fbfffcf7646e61db52d1794ab1a3
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
## Changelog
|
2
2
|
|
3
|
+
### 0.9.0
|
4
|
+
|
5
|
+
* Added `FmRest::Spyke::Base.set_globals`
|
6
|
+
|
3
7
|
### 0.8.0
|
4
8
|
|
5
9
|
* Improved metadata when using `FmRest::Spyke::Model`. Metadata now uses
|
6
10
|
Struct/OpenStruct, so properties are accessible through `.property`, as well
|
7
11
|
as `[:property]`
|
8
|
-
*
|
12
|
+
* Added batch-finders `.find_in_batches` and `.find_each` for
|
13
|
+
* `FmRest::Spyke::Base`
|
9
14
|
|
10
15
|
### 0.7.1
|
11
16
|
|
data/README.md
CHANGED
@@ -943,6 +943,32 @@ to retrieving single records, in that case you'll have to use
|
|
943
943
|
`.last_request_metadata`.
|
944
944
|
|
945
945
|
|
946
|
+
### Setting global field values
|
947
|
+
|
948
|
+
You can call `.set_globals` on any `FmRest::Spyke::Base` model to set glabal
|
949
|
+
field values on the database that model is configured for.
|
950
|
+
|
951
|
+
You can pass it either a hash of fully qualified field names
|
952
|
+
(table_name::field_name), or 1-level-deep nested hashes, with the outer being a
|
953
|
+
table name and the inner keys being the field names:
|
954
|
+
|
955
|
+
```ruby
|
956
|
+
Honeybee.set_globals(
|
957
|
+
"beeTable::myVar" => "value",
|
958
|
+
"beeTable::myOtherVar" => "also a value"
|
959
|
+
)
|
960
|
+
|
961
|
+
# Equivalent to the above example
|
962
|
+
Honeybee.set_globals(beeTable: { myVar: "value", myOtherVar: "also a value" })
|
963
|
+
|
964
|
+
# Combined
|
965
|
+
Honeybee.set_globals(
|
966
|
+
"beeTable::myVar" => "value",
|
967
|
+
beeTable: { myOtherVar: "also a value" }
|
968
|
+
)
|
969
|
+
```
|
970
|
+
|
971
|
+
|
946
972
|
## Logging
|
947
973
|
|
948
974
|
If using fmrest-ruby + Spyke in a Rails app pretty log output will be set up
|
@@ -1011,7 +1037,7 @@ FM Data API reference: https://fmhelp.filemaker.com/docs/18/en/dataapi/
|
|
1011
1037
|
| Get container data | Manual* | Yes |
|
1012
1038
|
| Upload container data | Manual* | Yes |
|
1013
1039
|
| Perform a find request | Manual* | Yes |
|
1014
|
-
| Set global field values | Manual* |
|
1040
|
+
| Set global field values | Manual* | Yes
|
1015
1041
|
| Run a script | Manual* | Yes |
|
1016
1042
|
| Run a script with another request | Manual* | Yes |
|
1017
1043
|
|
data/lib/fmrest/spyke/model.rb
CHANGED
@@ -7,6 +7,7 @@ require "fmrest/spyke/model/serialization"
|
|
7
7
|
require "fmrest/spyke/model/associations"
|
8
8
|
require "fmrest/spyke/model/orm"
|
9
9
|
require "fmrest/spyke/model/container_fields"
|
10
|
+
require "fmrest/spyke/model/global_fields"
|
10
11
|
require "fmrest/spyke/model/http"
|
11
12
|
require "fmrest/spyke/model/auth"
|
12
13
|
|
@@ -22,6 +23,7 @@ module FmRest
|
|
22
23
|
include Associations
|
23
24
|
include Orm
|
24
25
|
include ContainerFields
|
26
|
+
include GlobalFields
|
25
27
|
include Http
|
26
28
|
include Auth
|
27
29
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FmRest
|
4
|
+
module Spyke
|
5
|
+
module Model
|
6
|
+
module GlobalFields
|
7
|
+
extend ::ActiveSupport::Concern
|
8
|
+
|
9
|
+
FULLY_QUALIFIED_FIELD_NAME_MATCHER = /\A[^:]+::[^:]+\Z/.freeze
|
10
|
+
|
11
|
+
class_methods do
|
12
|
+
def set_globals(values_hash)
|
13
|
+
connection.patch(FmRest::V1.globals_path, {
|
14
|
+
globalFields: normalize_globals_hash(values_hash)
|
15
|
+
})
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def normalize_globals_hash(hash)
|
21
|
+
hash.each_with_object({}) do |(k, v), normalized|
|
22
|
+
if v.kind_of?(Hash)
|
23
|
+
v.each do |k2, v2|
|
24
|
+
normalized["#{k}::#{k2}"] = v2
|
25
|
+
end
|
26
|
+
next
|
27
|
+
end
|
28
|
+
|
29
|
+
unless FULLY_QUALIFIED_FIELD_NAME_MATCHER === k.to_s
|
30
|
+
raise ArgumentError, "global fields must be given in fully qualified format (table name::field name)"
|
31
|
+
end
|
32
|
+
|
33
|
+
normalized[k] = v
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/fmrest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fmrest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.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: 2020-05-
|
11
|
+
date: 2020-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -247,6 +247,7 @@ files:
|
|
247
247
|
- lib/fmrest/spyke/model/auth.rb
|
248
248
|
- lib/fmrest/spyke/model/connection.rb
|
249
249
|
- lib/fmrest/spyke/model/container_fields.rb
|
250
|
+
- lib/fmrest/spyke/model/global_fields.rb
|
250
251
|
- lib/fmrest/spyke/model/http.rb
|
251
252
|
- lib/fmrest/spyke/model/orm.rb
|
252
253
|
- lib/fmrest/spyke/model/serialization.rb
|