ledger_sync-domains 1.0.0.rc1 → 1.0.0.rc2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ee91277b3f0600c5553ce5f2183da338ef451b649bbf452a9871d9aa4048f01
4
- data.tar.gz: 3723fb3b32fcdffdc87cc4355b4b898f070cac3793f9278186f55137ff123c04
3
+ metadata.gz: 193e05d79d0354871c3e145fff53ed1484ed5749c0f48cca16fc4e9c5ba7b700
4
+ data.tar.gz: f22a6def8804ccc3cba024dd85fb2203271763e557eb06242993144fe7405e42
5
5
  SHA512:
6
- metadata.gz: 477cffd0916f91dfffcc6099758d597e8df1cb3f4b11aa0464e3e791b254bdccb2f6b0a3f53a2186298d17c8d41714925e6676f028d093af6b7430b172e414fc
7
- data.tar.gz: 7b002212bff9beb39ee7b3c5fe87d6112ef56ab5f6392e7c9b2ed16e5630f3f3b5ba89efa0deba17ea912b5f289e661bf8f00e49d6d3073d781c1d3d61de4606
6
+ metadata.gz: 6a302f79abd49c647fe7261b219ec95d3222eaa290ac7122bc074e5e0b811266fbee6e2763177ea0567eed269a6eaccebbdbd7557086c914891d74bcc7266f84
7
+ data.tar.gz: e146d80c9923b38b638701fc59e082f057862aaefd42b0b06f88fd1ff404c9cd0d6b07210b93d9f2d5eaf3fd6e1e271efeb7cde828a3143037e19347f34bec40
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2021-08-31
3
+ ## [1.0.0.rc2] - 2021-09-06
4
+
5
+ - Serialized OpenStruct uses serializer-like class name
6
+
7
+ ## [1.0.0.rc1] - 2021-08-31
4
8
 
5
9
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ledger_sync-domains (1.0.0.rc1)
4
+ ledger_sync-domains (1.0.0.rc2)
5
5
  ledger_sync (~> 2.2.0)
6
6
 
7
7
  GEM
@@ -16,6 +16,7 @@ GEM
16
16
  tzinfo (~> 2.0)
17
17
  zeitwerk (~> 2.3)
18
18
  ast (2.4.2)
19
+ byebug (11.1.3)
19
20
  colorize (0.8.1)
20
21
  concurrent-ruby (1.1.9)
21
22
  diff-lcs (1.4.4)
@@ -55,6 +56,8 @@ GEM
55
56
  dry-equalizer (~> 0.2)
56
57
  dry-initializer (~> 3.0)
57
58
  dry-schema (~> 1.5, >= 1.5.2)
59
+ factory_bot (6.2.0)
60
+ activesupport (>= 5.0.0)
58
61
  faraday (1.7.1)
59
62
  faraday-em_http (~> 1.0)
60
63
  faraday-em_synchrony (~> 1.0)
@@ -151,7 +154,9 @@ PLATFORMS
151
154
  x86_64-linux
152
155
 
153
156
  DEPENDENCIES
157
+ byebug
154
158
  dotenv
159
+ factory_bot
155
160
  ledger_sync-domains!
156
161
  rake (~> 13.0)
157
162
  rspec (~> 3.0)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/ledger_sync/domains/version"
3
+ require_relative 'lib/ledger_sync/domains/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'ledger_sync-domains'
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
18
 
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = 'https://github.com/LedgerSync/ledger_sync-domains'
21
- spec.metadata['changelog_uri'] = 'https://github.com/LedgerSync/ledger_sync-domains/blob/main/CHANGELOG.md'
20
+ spec.metadata['source_code_uri'] = 'https://github.com/sandbite/ledger_sync-domains'
21
+ spec.metadata['changelog_uri'] = 'https://github.com/sandbite/ledger_sync-domains/blob/main/CHANGELOG.md'
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
24
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -30,5 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.require_paths = ['lib']
31
31
 
32
32
  spec.add_dependency 'ledger_sync', '~> 2.2.0'
33
+ spec.add_development_dependency 'byebug'
33
34
  spec.add_development_dependency 'dotenv'
35
+ spec.add_development_dependency 'factory_bot'
34
36
  end
@@ -41,7 +41,7 @@ module LedgerSync
41
41
  end
42
42
 
43
43
  def inferred_validation_contract_class
44
- const_get("#{self}::Contract")
44
+ const_get('Contract')
45
45
  end
46
46
  end
47
47
 
@@ -14,9 +14,10 @@ module LedgerSync
14
14
  # SimpleDelegator to delegate these methods into OpenStruct passed in.
15
15
  # Pure hackery.
16
16
  klass = Class.new(SimpleDelegator) do
17
- def self.with_lazy_references(struct, resource:, references:) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
17
+ def self.with_lazy_references(hash, struct_class:, resource:, references:) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
18
18
  define_method('valid?') { resource.valid? }
19
19
  define_method('errors') { resource.errors }
20
+ define_method('to_hash') { hash }
20
21
  references.each do |args|
21
22
  define_method(args.hash_attribute) do
22
23
  if args.references_many?
@@ -32,7 +33,7 @@ module LedgerSync
32
33
  end
33
34
  end
34
35
 
35
- new(struct)
36
+ new(struct_class.new(hash))
36
37
  end
37
38
 
38
39
  def to_param
@@ -42,15 +43,21 @@ module LedgerSync
42
43
  def persisted?
43
44
  id.present?
44
45
  end
46
+
47
+ def to_json(*args)
48
+ JSON.generate(to_hash, *args)
49
+ end
45
50
  end
46
51
 
47
52
  name = self.class.to_s.split('::')
48
- struct_name = name.pop.sub(/.*\KSerializer/, 'Struct')
53
+ class_name = name.pop.gsub(/[^0-9a-z ]/i, '').gsub(/.*\KSerializer/, '')
54
+ struct_name = "#{class_name}Struct"
49
55
  module_name = name.empty? ? Object : Object.const_get(name.join('::'))
50
56
  module_name.const_set(struct_name, Class.new(OpenStruct))
51
57
 
52
58
  klass.with_lazy_references(
53
- module_name.const_get(struct_name).new(hash),
59
+ hash,
60
+ struct_class: module_name.const_get(struct_name),
54
61
  resource: resource, references: references
55
62
  )
56
63
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module LedgerSync
4
4
  module Domains
5
- VERSION = '1.0.0.rc1'
5
+ VERSION = '1.0.0.rc2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ledger_sync-domains
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
4
+ version: 1.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jozef Vaclavik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-03 00:00:00.000000000 Z
11
+ date: 2021-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ledger_sync
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: dotenv
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: factory_bot
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  description: Use LedgerSync Operations and Serializers for cross-domain communication.
42
70
  email:
43
71
  - jozef@dropbot.sh
@@ -73,8 +101,8 @@ licenses:
73
101
  - MIT
74
102
  metadata:
75
103
  homepage_uri: https://engineering.dropbot.sh
76
- source_code_uri: https://github.com/LedgerSync/ledger_sync-domains
77
- changelog_uri: https://github.com/LedgerSync/ledger_sync-domains/blob/main/CHANGELOG.md
104
+ source_code_uri: https://github.com/sandbite/ledger_sync-domains
105
+ changelog_uri: https://github.com/sandbite/ledger_sync-domains/blob/main/CHANGELOG.md
78
106
  post_install_message:
79
107
  rdoc_options: []
80
108
  require_paths: