luna_park 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.overcommit.yml +18 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +106 -0
  6. data/.ruby-gemset +1 -0
  7. data/.ruby-version +1 -0
  8. data/.travis.yml +6 -0
  9. data/CHANGELOG.md +308 -0
  10. data/Gemfile +8 -0
  11. data/Gemfile.lock +182 -0
  12. data/LICENSE +21 -0
  13. data/LICENSE.txt +21 -0
  14. data/README.md +54 -0
  15. data/Rakefile +30 -0
  16. data/bin/console +15 -0
  17. data/bin/setup +8 -0
  18. data/docs/.nojekyll +0 -0
  19. data/docs/CNAME +1 -0
  20. data/docs/README.md +190 -0
  21. data/docs/_coverpage.md +18 -0
  22. data/docs/_imgs/adapter.png +0 -0
  23. data/docs/_imgs/bender.jpeg +0 -0
  24. data/docs/_imgs/bender_header.jpeg +0 -0
  25. data/docs/_imgs/collecting.png +0 -0
  26. data/docs/_imgs/conductor_schema.png +0 -0
  27. data/docs/_imgs/ddd_header.jpeg +0 -0
  28. data/docs/_imgs/ddd_map.png +0 -0
  29. data/docs/_imgs/domain_context.jpeg +0 -0
  30. data/docs/_imgs/drunk_master.jpg +0 -0
  31. data/docs/_imgs/full_map.png +0 -0
  32. data/docs/_imgs/full_map_hight_res.png +0 -0
  33. data/docs/_imgs/graph_1.png +0 -0
  34. data/docs/_imgs/graph_2.jpg +0 -0
  35. data/docs/_imgs/graph_3.png +0 -0
  36. data/docs/_imgs/graph_4.jpg +0 -0
  37. data/docs/_imgs/graph_5.jpg +0 -0
  38. data/docs/_imgs/graph_5.png +0 -0
  39. data/docs/_imgs/processing.png +0 -0
  40. data/docs/_imgs/representation.png +0 -0
  41. data/docs/_imgs/storage.png +0 -0
  42. data/docs/_imgs/tourtle_context_map.png +0 -0
  43. data/docs/_imgs/tree.png +0 -0
  44. data/docs/_imgs/wm.jpeg +0 -0
  45. data/docs/_media/bender.jpg +0 -0
  46. data/docs/_media/black_cover.jpg +0 -0
  47. data/docs/_media/logo.svg +7 -0
  48. data/docs/_sidebar.md +9 -0
  49. data/docs/architecture.md +214 -0
  50. data/docs/google48f1e6f5c35eae5f.html +1 -0
  51. data/docs/index.html +32 -0
  52. data/docs/methodology.md +376 -0
  53. data/docs/patterns/entity.md +193 -0
  54. data/docs/patterns/sequence.md +332 -0
  55. data/docs/patterns/service.md +280 -0
  56. data/docs/patterns/value.md +197 -0
  57. data/docs/way.md +66 -0
  58. data/lib/luna_park.rb +72 -0
  59. data/lib/luna_park/callable.rb +7 -0
  60. data/lib/luna_park/entities/attributable.rb +18 -0
  61. data/lib/luna_park/entities/nested.rb +28 -0
  62. data/lib/luna_park/entities/simple.rb +39 -0
  63. data/lib/luna_park/errors.rb +16 -0
  64. data/lib/luna_park/errors/base.rb +244 -0
  65. data/lib/luna_park/errors/business.rb +9 -0
  66. data/lib/luna_park/errors/http.rb +90 -0
  67. data/lib/luna_park/errors/json_parse.rb +11 -0
  68. data/lib/luna_park/errors/system.rb +9 -0
  69. data/lib/luna_park/extensions/attributable.rb +26 -0
  70. data/lib/luna_park/extensions/callable.rb +44 -0
  71. data/lib/luna_park/extensions/comparable.rb +90 -0
  72. data/lib/luna_park/extensions/comparable_debug.rb +96 -0
  73. data/lib/luna_park/extensions/data_mapper.rb +195 -0
  74. data/lib/luna_park/extensions/dsl/attributes.rb +135 -0
  75. data/lib/luna_park/extensions/dsl/foreign_key.rb +97 -0
  76. data/lib/luna_park/extensions/exceptions/substitutive.rb +83 -0
  77. data/lib/luna_park/extensions/has_errors.rb +125 -0
  78. data/lib/luna_park/extensions/injector.rb +189 -0
  79. data/lib/luna_park/extensions/injector/dependencies.rb +74 -0
  80. data/lib/luna_park/extensions/predicate_attr_accessor.rb +23 -0
  81. data/lib/luna_park/extensions/repositories/postgres/create.rb +20 -0
  82. data/lib/luna_park/extensions/repositories/postgres/delete.rb +15 -0
  83. data/lib/luna_park/extensions/repositories/postgres/read.rb +63 -0
  84. data/lib/luna_park/extensions/repositories/postgres/update.rb +21 -0
  85. data/lib/luna_park/extensions/serializable.rb +99 -0
  86. data/lib/luna_park/extensions/severity_levels.rb +120 -0
  87. data/lib/luna_park/extensions/typed_attr_accessor.rb +26 -0
  88. data/lib/luna_park/extensions/validatable.rb +80 -0
  89. data/lib/luna_park/extensions/validatable/dry.rb +24 -0
  90. data/lib/luna_park/extensions/wrappable.rb +43 -0
  91. data/lib/luna_park/forms/simple.rb +63 -0
  92. data/lib/luna_park/forms/single_item.rb +74 -0
  93. data/lib/luna_park/handlers/simple.rb +17 -0
  94. data/lib/luna_park/http/client.rb +328 -0
  95. data/lib/luna_park/http/request.rb +225 -0
  96. data/lib/luna_park/http/response.rb +381 -0
  97. data/lib/luna_park/http/send.rb +103 -0
  98. data/lib/luna_park/mappers/simple.rb +92 -0
  99. data/lib/luna_park/notifiers/bugsnag.rb +48 -0
  100. data/lib/luna_park/notifiers/log.rb +174 -0
  101. data/lib/luna_park/notifiers/sentry.rb +50 -0
  102. data/lib/luna_park/repositories/postgres.rb +38 -0
  103. data/lib/luna_park/repositories/sequel.rb +11 -0
  104. data/lib/luna_park/repository.rb +9 -0
  105. data/lib/luna_park/serializers/simple.rb +28 -0
  106. data/lib/luna_park/tools.rb +19 -0
  107. data/lib/luna_park/use_cases/scenario.rb +325 -0
  108. data/lib/luna_park/use_cases/service.rb +13 -0
  109. data/lib/luna_park/validators/dry.rb +67 -0
  110. data/lib/luna_park/values/attributable.rb +21 -0
  111. data/lib/luna_park/values/compound.rb +26 -0
  112. data/lib/luna_park/values/single.rb +35 -0
  113. data/lib/luna_park/version.rb +5 -0
  114. data/luna_park.gemspec +54 -0
  115. data/node_modules/.yarn-integrity +12 -0
  116. data/package-lock.json +3 -0
  117. data/yarn.lock +4 -0
  118. metadata +414 -0
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'luna_park/errors'
4
+
5
+ begin
6
+ require 'dry-validation'
7
+ rescue LoadError => e
8
+ raise unless e.message == 'cannot load such file -- dry-validation'
9
+ end
10
+
11
+ module LunaPark
12
+ module Validators
13
+ class Dry
14
+ def initialize(params)
15
+ @params = params
16
+ end
17
+
18
+ def success?
19
+ result.success?
20
+ end
21
+
22
+ def valid_params
23
+ (success? && result.to_h) || {}
24
+ end
25
+
26
+ def errors_array
27
+ result.errors.map { |error| { path: error.path, text: error.text, input: error.input } }
28
+ end
29
+
30
+ def errors_tree
31
+ result.errors.to_h || {}
32
+ end
33
+
34
+ alias errors errors_tree
35
+
36
+ private
37
+
38
+ attr_reader :params
39
+
40
+ def result
41
+ @result ||= self.class.schema.call(params)
42
+ end
43
+
44
+ class << self
45
+ def schema
46
+ @_schema
47
+ end
48
+
49
+ alias validate new
50
+
51
+ def validation_schema(&block)
52
+ unless defined?(::Dry::Validation)
53
+ raise NameError, "uninitialized constant ::Dry::Validation\n" \
54
+ 'Perhaps you forgot to add gem "dry-validation"'
55
+ end
56
+
57
+ unless defined?(::Dry::Validation::Contract)
58
+ raise NameError, "uninitialized constant ::Dry::Validation::Contract\n" \
59
+ 'which appears in version 1.0 of gem "dry-validation"'
60
+ end
61
+
62
+ @_schema = Class.new(::Dry::Validation::Contract, &block).new
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'luna_park/values/compound'
4
+ require 'luna_park/extensions/comparable'
5
+ require 'luna_park/extensions/serializable'
6
+ require 'luna_park/extensions/dsl/attributes'
7
+
8
+ module LunaPark
9
+ module Values
10
+ class Attributable < Compound
11
+ include Extensions::Comparable
12
+ include Extensions::Serializable
13
+ extend Extensions::Dsl::Attributes
14
+
15
+ # redefine: make defined setters privat
16
+ def self.attr(*args, **opts)
17
+ super.tap { |result| protected(result[:setter]) } # rubocop:disable Style/AccessModifierDeclarations
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'luna_park/extensions/attributable'
4
+ require 'luna_park/extensions/wrappable'
5
+ require 'luna_park/errors'
6
+
7
+ module LunaPark
8
+ module Values
9
+ class Compound
10
+ extend Extensions::Wrappable
11
+ include Extensions::Attributable
12
+
13
+ def initialize(attrs = {})
14
+ set_attributes attrs
15
+ end
16
+
17
+ # :nocov:
18
+
19
+ # @abstract
20
+ def ==(_other)
21
+ raise Errors::AbstractMethod
22
+ end
23
+ # :nocov:
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'luna_park/errors'
4
+
5
+ module LunaPark
6
+ module Values
7
+ class Single
8
+ def self.wrap(input)
9
+ return input if input.is_a?(self)
10
+
11
+ raise Errors::Unwrapable, "#{self} can not wrap #{input.class}"
12
+ end
13
+
14
+ def initialize(value)
15
+ @value = value
16
+ end
17
+
18
+ def ==(other)
19
+ value == other.value
20
+ end
21
+
22
+ def serialize
23
+ value
24
+ end
25
+
26
+ def inspect
27
+ "#<#{self.class} #{value.inspect}>"
28
+ end
29
+
30
+ protected
31
+
32
+ attr_reader :value
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LunaPark
4
+ VERSION = '0.11.0'
5
+ end
data/luna_park.gemspec ADDED
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'luna_park/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'luna_park'
9
+ spec.version = LunaPark::VERSION
10
+ spec.authors = ['Alexander Kudrin', 'Philip Sorokin']
11
+ spec.email = ['kudrin.alexander@gmail.com']
12
+
13
+ spec.summary = 'Domain driven oriented microservice framework.'
14
+ spec.homepage = 'https://am-team.github.io/luna_park/#/'
15
+ spec.license = 'MIT'
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
+ else
22
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
23
+ 'public gem pushes.'
24
+ end
25
+ spec.metadata['yard.run'] = 'yri'
26
+
27
+ # Specify which files should be added to the gem when it is released.
28
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
29
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
30
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
+ end
32
+ spec.bindir = 'exe'
33
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ['lib']
35
+
36
+ spec.add_development_dependency 'bugsnag', '~> 6'
37
+ spec.add_development_dependency 'bundler', '~> 2.1'
38
+ spec.add_development_dependency 'byebug', '~> 11.1'
39
+ spec.add_development_dependency 'codecov', '~> 0.2'
40
+ spec.add_development_dependency 'dry-validation', '~> 1.1'
41
+ spec.add_development_dependency 'i18n', '~> 1.8'
42
+ spec.add_development_dependency 'overcommit', '~> 0.55'
43
+ spec.add_development_dependency 'pry', '~> 0.13'
44
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
45
+ spec.add_development_dependency 'rake', '~> 13.0'
46
+ spec.add_development_dependency 'rest-client', '~> 2.1'
47
+ spec.add_development_dependency 'rspec', '~> 3.0'
48
+ spec.add_development_dependency 'rubocop', '~> 0.87'
49
+ spec.add_development_dependency 'sentry-ruby', '~> 4.2'
50
+ spec.add_development_dependency 'simplecov', '~> 0.18'
51
+ spec.add_development_dependency 'timecop', '~> 0.9'
52
+ spec.add_development_dependency 'webmock', '~> 3.7.0'
53
+ spec.add_development_dependency 'yard', '~> 0.9'
54
+ end
@@ -0,0 +1,12 @@
1
+ {
2
+ "systemParams": "linux-x64-67",
3
+ "modulesFolders": [
4
+ "node_modules"
5
+ ],
6
+ "flags": [],
7
+ "linkedModules": [],
8
+ "topLevelPatterns": [],
9
+ "lockfileEntries": {},
10
+ "files": [],
11
+ "artifacts": {}
12
+ }
data/package-lock.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "lockfileVersion": 1
3
+ }
data/yarn.lock ADDED
@@ -0,0 +1,4 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
metadata ADDED
@@ -0,0 +1,414 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: luna_park
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.11.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Kudrin
8
+ - Philip Sorokin
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2021-05-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bugsnag
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '6'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: bundler
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.1'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: byebug
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '11.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '11.1'
56
+ - !ruby/object:Gem::Dependency
57
+ name: codecov
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.2'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.2'
70
+ - !ruby/object:Gem::Dependency
71
+ name: dry-validation
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.1'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.1'
84
+ - !ruby/object:Gem::Dependency
85
+ name: i18n
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.8'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.8'
98
+ - !ruby/object:Gem::Dependency
99
+ name: overcommit
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.55'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.55'
112
+ - !ruby/object:Gem::Dependency
113
+ name: pry
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.13'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.13'
126
+ - !ruby/object:Gem::Dependency
127
+ name: pry-byebug
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '3.9'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.9'
140
+ - !ruby/object:Gem::Dependency
141
+ name: rake
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '13.0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '13.0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rest-client
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '2.1'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '2.1'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rspec
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '3.0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: rubocop
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '0.87'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '0.87'
196
+ - !ruby/object:Gem::Dependency
197
+ name: sentry-ruby
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '4.2'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '4.2'
210
+ - !ruby/object:Gem::Dependency
211
+ name: simplecov
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '0.18'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '0.18'
224
+ - !ruby/object:Gem::Dependency
225
+ name: timecop
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: '0.9'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - "~>"
236
+ - !ruby/object:Gem::Version
237
+ version: '0.9'
238
+ - !ruby/object:Gem::Dependency
239
+ name: webmock
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - "~>"
243
+ - !ruby/object:Gem::Version
244
+ version: 3.7.0
245
+ type: :development
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - "~>"
250
+ - !ruby/object:Gem::Version
251
+ version: 3.7.0
252
+ - !ruby/object:Gem::Dependency
253
+ name: yard
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - "~>"
257
+ - !ruby/object:Gem::Version
258
+ version: '0.9'
259
+ type: :development
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - "~>"
264
+ - !ruby/object:Gem::Version
265
+ version: '0.9'
266
+ description:
267
+ email:
268
+ - kudrin.alexander@gmail.com
269
+ executables: []
270
+ extensions: []
271
+ extra_rdoc_files: []
272
+ files:
273
+ - ".gitignore"
274
+ - ".overcommit.yml"
275
+ - ".rspec"
276
+ - ".rubocop.yml"
277
+ - ".ruby-gemset"
278
+ - ".ruby-version"
279
+ - ".travis.yml"
280
+ - CHANGELOG.md
281
+ - Gemfile
282
+ - Gemfile.lock
283
+ - LICENSE
284
+ - LICENSE.txt
285
+ - README.md
286
+ - Rakefile
287
+ - bin/console
288
+ - bin/setup
289
+ - docs/.nojekyll
290
+ - docs/CNAME
291
+ - docs/README.md
292
+ - docs/_coverpage.md
293
+ - docs/_imgs/adapter.png
294
+ - docs/_imgs/bender.jpeg
295
+ - docs/_imgs/bender_header.jpeg
296
+ - docs/_imgs/collecting.png
297
+ - docs/_imgs/conductor_schema.png
298
+ - docs/_imgs/ddd_header.jpeg
299
+ - docs/_imgs/ddd_map.png
300
+ - docs/_imgs/domain_context.jpeg
301
+ - docs/_imgs/drunk_master.jpg
302
+ - docs/_imgs/full_map.png
303
+ - docs/_imgs/full_map_hight_res.png
304
+ - docs/_imgs/graph_1.png
305
+ - docs/_imgs/graph_2.jpg
306
+ - docs/_imgs/graph_3.png
307
+ - docs/_imgs/graph_4.jpg
308
+ - docs/_imgs/graph_5.jpg
309
+ - docs/_imgs/graph_5.png
310
+ - docs/_imgs/processing.png
311
+ - docs/_imgs/representation.png
312
+ - docs/_imgs/storage.png
313
+ - docs/_imgs/tourtle_context_map.png
314
+ - docs/_imgs/tree.png
315
+ - docs/_imgs/wm.jpeg
316
+ - docs/_media/bender.jpg
317
+ - docs/_media/black_cover.jpg
318
+ - docs/_media/logo.svg
319
+ - docs/_sidebar.md
320
+ - docs/architecture.md
321
+ - docs/google48f1e6f5c35eae5f.html
322
+ - docs/index.html
323
+ - docs/methodology.md
324
+ - docs/patterns/entity.md
325
+ - docs/patterns/sequence.md
326
+ - docs/patterns/service.md
327
+ - docs/patterns/value.md
328
+ - docs/way.md
329
+ - lib/luna_park.rb
330
+ - lib/luna_park/callable.rb
331
+ - lib/luna_park/entities/attributable.rb
332
+ - lib/luna_park/entities/nested.rb
333
+ - lib/luna_park/entities/simple.rb
334
+ - lib/luna_park/errors.rb
335
+ - lib/luna_park/errors/base.rb
336
+ - lib/luna_park/errors/business.rb
337
+ - lib/luna_park/errors/http.rb
338
+ - lib/luna_park/errors/json_parse.rb
339
+ - lib/luna_park/errors/system.rb
340
+ - lib/luna_park/extensions/attributable.rb
341
+ - lib/luna_park/extensions/callable.rb
342
+ - lib/luna_park/extensions/comparable.rb
343
+ - lib/luna_park/extensions/comparable_debug.rb
344
+ - lib/luna_park/extensions/data_mapper.rb
345
+ - lib/luna_park/extensions/dsl/attributes.rb
346
+ - lib/luna_park/extensions/dsl/foreign_key.rb
347
+ - lib/luna_park/extensions/exceptions/substitutive.rb
348
+ - lib/luna_park/extensions/has_errors.rb
349
+ - lib/luna_park/extensions/injector.rb
350
+ - lib/luna_park/extensions/injector/dependencies.rb
351
+ - lib/luna_park/extensions/predicate_attr_accessor.rb
352
+ - lib/luna_park/extensions/repositories/postgres/create.rb
353
+ - lib/luna_park/extensions/repositories/postgres/delete.rb
354
+ - lib/luna_park/extensions/repositories/postgres/read.rb
355
+ - lib/luna_park/extensions/repositories/postgres/update.rb
356
+ - lib/luna_park/extensions/serializable.rb
357
+ - lib/luna_park/extensions/severity_levels.rb
358
+ - lib/luna_park/extensions/typed_attr_accessor.rb
359
+ - lib/luna_park/extensions/validatable.rb
360
+ - lib/luna_park/extensions/validatable/dry.rb
361
+ - lib/luna_park/extensions/wrappable.rb
362
+ - lib/luna_park/forms/simple.rb
363
+ - lib/luna_park/forms/single_item.rb
364
+ - lib/luna_park/handlers/simple.rb
365
+ - lib/luna_park/http/client.rb
366
+ - lib/luna_park/http/request.rb
367
+ - lib/luna_park/http/response.rb
368
+ - lib/luna_park/http/send.rb
369
+ - lib/luna_park/mappers/simple.rb
370
+ - lib/luna_park/notifiers/bugsnag.rb
371
+ - lib/luna_park/notifiers/log.rb
372
+ - lib/luna_park/notifiers/sentry.rb
373
+ - lib/luna_park/repositories/postgres.rb
374
+ - lib/luna_park/repositories/sequel.rb
375
+ - lib/luna_park/repository.rb
376
+ - lib/luna_park/serializers/simple.rb
377
+ - lib/luna_park/tools.rb
378
+ - lib/luna_park/use_cases/scenario.rb
379
+ - lib/luna_park/use_cases/service.rb
380
+ - lib/luna_park/validators/dry.rb
381
+ - lib/luna_park/values/attributable.rb
382
+ - lib/luna_park/values/compound.rb
383
+ - lib/luna_park/values/single.rb
384
+ - lib/luna_park/version.rb
385
+ - luna_park.gemspec
386
+ - node_modules/.yarn-integrity
387
+ - package-lock.json
388
+ - yarn.lock
389
+ homepage: https://am-team.github.io/luna_park/#/
390
+ licenses:
391
+ - MIT
392
+ metadata:
393
+ allowed_push_host: https://rubygems.org
394
+ yard.run: yri
395
+ post_install_message:
396
+ rdoc_options: []
397
+ require_paths:
398
+ - lib
399
+ required_ruby_version: !ruby/object:Gem::Requirement
400
+ requirements:
401
+ - - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: '0'
404
+ required_rubygems_version: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: '0'
409
+ requirements: []
410
+ rubygems_version: 3.0.6
411
+ signing_key:
412
+ specification_version: 4
413
+ summary: Domain driven oriented microservice framework.
414
+ test_files: []