ledger_sync-domains 1.0.0.rc1 → 1.0.0.rc2

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: 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: