e_plat 0.4.0 → 0.4.2
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 +4 -4
- data/README.md +9 -3
- data/lib/e_plat/resource/base.rb +1 -1
- data/lib/e_plat/resource/concerns/full_json.rb +28 -0
- data/lib/e_plat/resource/concerns/metafieldable.rb +0 -2
- data/lib/e_plat/resource/concerns/overwrite_request_methods.rb +1 -1
- data/lib/e_plat/version.rb +1 -1
- data/lib/e_plat.rb +11 -2
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21cc14088c5f2804d52659aab7cfedb0ec808d42a1beb5a8a29ad4525f670d36
|
4
|
+
data.tar.gz: 24f4aba2574e129d4b8f00b7a4ddbefe71ddf3465cd2b5336348c94870685be8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b95cf6b98b113934622fd3a093469646749e51c92dd268626419ca3da8ec0573461908087bb99a3a91c43e895e77c702ed7f6c6149df4c40a2f7632b73ea1a0
|
7
|
+
data.tar.gz: e42d9978e0dcecea62c891a907527a050dbbe89b0a1e7d72cb4c490f633eb21a4dad71ea1d0d0898f905637cc4984175c680309a20b8677cc453b42cb3584230
|
data/README.md
CHANGED
@@ -82,7 +82,7 @@ EPlat is designed to let you mostly use it's universal interface, but then easil
|
|
82
82
|
)
|
83
83
|
tag.name = "mini script" if Current.e_plat_session.bigcommerce?
|
84
84
|
tag.save
|
85
|
-
|
85
|
+
|
86
86
|
# ...when session is a Shopify store
|
87
87
|
# POST https://preproduct-test.myshopify.com/admin/api/2024-01/script_tags.json
|
88
88
|
# body: '{"script_tag":{"display_scope":"online_store","event":"onload","src":"https://preproduct.io/mini-script.js"}}'
|
@@ -829,8 +829,14 @@ product.mapped? "body_html" #check if a platforms resource is mapped to a specif
|
|
829
829
|
|
830
830
|
# In the context of a Bigcommerce product that has aliases:
|
831
831
|
product.changed_attributes # {}
|
832
|
-
product.
|
833
|
-
product.changed_attributes # {"name"=>"
|
832
|
+
product.title = "oi"
|
833
|
+
product.changed_attributes # {"name"=>"oi", "title"=>"oi"}
|
834
|
+
#title is the e_plat key which won't be included in requests to the server. The native key 'name' has automatically been updated and will be sent in requests.
|
835
|
+
|
836
|
+
product.as_json # hash of any updated attributes
|
837
|
+
product.as_full_json # hash of all attributes, regardless of if they've been updated or not
|
838
|
+
product.to_json # JSON string of any updated_attributes
|
839
|
+
product.to_full_json # JSON string of all attributes. regardless of if they've been updated or not
|
834
840
|
|
835
841
|
```
|
836
842
|
|
data/lib/e_plat/resource/base.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module EPlat
|
4
4
|
class Base < ActiveResource::Base
|
5
5
|
include Concerns::OverwriteRequestMethods, Concerns::OverwriteInstanceMethods
|
6
|
-
include Concerns::Aliases, Concerns::Dirty
|
6
|
+
include Concerns::Aliases, Concerns::Dirty, Concerns::FullJson
|
7
7
|
|
8
8
|
self.connection_class = EPlat::Connection
|
9
9
|
self.collection_parser = EPlat::Collection
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module EPlat
|
2
|
+
module Concerns
|
3
|
+
module FullJson
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
def to_full_json # '{}'
|
7
|
+
as_full_json.to_json
|
8
|
+
end
|
9
|
+
|
10
|
+
def as_full_json # {}
|
11
|
+
self.attributes.each_with_object({}) do |(key, value), result|
|
12
|
+
result[key] =
|
13
|
+
case
|
14
|
+
when value.is_a?(EPlat::Base)
|
15
|
+
value.as_full_json
|
16
|
+
when value.is_a?(Array)
|
17
|
+
value.map do |v|
|
18
|
+
v.is_a?(EPlat::Base) ? v.as_full_json : v
|
19
|
+
end
|
20
|
+
else
|
21
|
+
value
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/e_plat/version.rb
CHANGED
data/lib/e_plat.rb
CHANGED
@@ -20,9 +20,18 @@ loader.setup # ready!
|
|
20
20
|
|
21
21
|
module EPlat
|
22
22
|
extend Dry::Configurable
|
23
|
+
SUPPORTED_SHOPIFY_API_VERSIONS = ['2024_01']
|
24
|
+
SUPPORTED_BIGCOMMERCE_API_VERSIONS = ['3']
|
25
|
+
|
26
|
+
setting(:shopify_api_version, default: "2024_01", constructor: ->(value) do
|
27
|
+
SUPPORTED_SHOPIFY_API_VERSIONS.include?(value.underscore) ? value.underscore : raise(ArgumentError, "Shopify API version #{value} is not supported")
|
28
|
+
end)
|
29
|
+
|
30
|
+
setting(:bigcommerce_api_version, default: "v3", constructor: ->(value) do
|
31
|
+
v = value.downcase.gsub("v", "")
|
32
|
+
SUPPORTED_BIGCOMMERCE_API_VERSIONS.include?(v) ? v : raise(ArgumentError, "Bigcommerce API version #{value} is not supported")
|
33
|
+
end)
|
23
34
|
|
24
|
-
setting(:shopify_api_version, default: "2024_01", constructor: ->(value) { value.underscore })
|
25
|
-
setting(:bigcommerce_api_version, default: "v3", constructor: ->(value) { value.downcase.gsub("v", "") })
|
26
35
|
setting(:woocommerce_api_version, default: "v3", constructor: ->(value) { value.downcase.gsub("v", "") })
|
27
36
|
|
28
37
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: e_plat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oliwoodsuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 6.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activeresource-response
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: dry-configurable
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,6 +248,7 @@ files:
|
|
234
248
|
- lib/e_plat/resource/collection.rb
|
235
249
|
- lib/e_plat/resource/concerns/aliases.rb
|
236
250
|
- lib/e_plat/resource/concerns/dirty.rb
|
251
|
+
- lib/e_plat/resource/concerns/full_json.rb
|
237
252
|
- lib/e_plat/resource/concerns/metafieldable.rb
|
238
253
|
- lib/e_plat/resource/concerns/overwrite_instance_methods.rb
|
239
254
|
- lib/e_plat/resource/concerns/overwrite_request_methods.rb
|