railjet 3.1.0 → 3.4.0
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/.github/workflows/test.yml +19 -0
- data/README.md +4 -2
- data/VERSION +1 -1
- data/lib/active_model/merge_errors.rb +1 -17
- data/lib/railjet/console/debug_helpers.rb +143 -0
- data/lib/railjet/version.rb +1 -1
- data/lib/railjet.rb +8 -0
- data/railjet.gemspec +4 -4
- metadata +23 -22
- data/.semaphore/semaphore.yml +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 765fb64e05825428ee6eae457f5fadb92fe642aa227ddc6e7c9cef9920495412
|
|
4
|
+
data.tar.gz: 0e77a9cac10518105531ab72ce642b9c1273d5664188c127a572534f22966be3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8c8c3d1cceb40cb969c774693176f466b8174a75ecd561b150f13ad97919604498b81df153a2a5c2adc3d69eb544c9f69d544ffb2e9a45fff651dff552a32555
|
|
7
|
+
data.tar.gz: 2d48c061c982a582864453414c9abe2b01b5ce7b51287b17f13e2d84fea6338f4073d40af925ad067334398551117b8d121e2f1f652e4e468086d21100dc1cb9
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Test
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
test:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout
|
|
11
|
+
uses: actions/checkout@v2
|
|
12
|
+
|
|
13
|
+
- name: Setup Ruby
|
|
14
|
+
uses: ruby/setup-ruby@v1
|
|
15
|
+
with:
|
|
16
|
+
bundler-cache: true
|
|
17
|
+
|
|
18
|
+
- name: Run tests
|
|
19
|
+
run: bundle exec rspec spec
|
data/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
# Railjet, architecture for high-speed railway
|
|
1
|
+
# Railjet, architecture for high-speed railway
|
|
2
2
|
|
|
3
|
+
[](https://codeclimate.com/github/nedap/railjet/maintainability)
|
|
4
|
+
[](https://codeclimate.com/github/nedap/railjet/test_coverage)
|
|
3
5
|
|
|
4
6
|

|
|
5
7
|
|
|
@@ -251,7 +253,7 @@ end
|
|
|
251
253
|
|
|
252
254
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
253
255
|
|
|
254
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, run rake task to bump the version `rake version:bump:<major,minor,patch>` and then run `rake release` to release it to
|
|
256
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, run rake task to bump the version `rake version:bump:<major,minor,patch>` and then run `rake release` to release it to https://rubygems.org/
|
|
255
257
|
|
|
256
258
|
## Contributing
|
|
257
259
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.4.0
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
ActiveModel::Errors.class_eval do
|
|
2
2
|
def <<(other)
|
|
3
|
-
|
|
4
|
-
copy_details_from(other) if respond_to?(:details)
|
|
5
|
-
|
|
3
|
+
self.merge!(other)
|
|
6
4
|
self
|
|
7
5
|
end
|
|
8
|
-
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
def copy_details_from(other)
|
|
12
|
-
details.merge!(other.details) do |_, val_one, val_two|
|
|
13
|
-
[*val_one] + [*val_two]
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def copy_messages_from(other)
|
|
18
|
-
messages.merge!(other.messages) do |_, val_one, val_two|
|
|
19
|
-
[*val_one] + [*val_two]
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
6
|
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Railjet
|
|
4
|
+
module Console
|
|
5
|
+
# Adds helper methods for auditing of console customer usage
|
|
6
|
+
module RailjetHelpers
|
|
7
|
+
def setup_railjet(context_class: nil)
|
|
8
|
+
@context_class = context_class
|
|
9
|
+
|
|
10
|
+
@context_class ||= RailjetContextHelper.determine_context_class
|
|
11
|
+
|
|
12
|
+
railjet_helper_after_init_message
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def railjet_helper_after_init_message
|
|
16
|
+
puts 'Setup finished. railjet helpers are now available from console'
|
|
17
|
+
puts 'available commands:'
|
|
18
|
+
puts "\t- use_case(<Class>)"
|
|
19
|
+
puts "\t- form(<Class>, params)"
|
|
20
|
+
puts "\t- console_context"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def railjet_helper_after_load_message
|
|
24
|
+
puts '*' * 61
|
|
25
|
+
puts "\nCall 'setup_railjet' to setup and debug Railjet"
|
|
26
|
+
puts 'Argument are:'
|
|
27
|
+
method(:setup_railjet).parameters.each do |param|
|
|
28
|
+
case param[0]
|
|
29
|
+
when :key, :keyreq
|
|
30
|
+
puts "\t- #{param[1]}:"
|
|
31
|
+
else
|
|
32
|
+
puts "\t- #{param[1]}"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
puts "\n"
|
|
36
|
+
puts '*' * 61
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def console_context
|
|
40
|
+
@context_class.init(
|
|
41
|
+
*context_params
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def use_case(klass)
|
|
46
|
+
klass.new(console_context)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def form(klass, clean_params)
|
|
50
|
+
klass.new(clean_params).tap(&:validate)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def context_params
|
|
54
|
+
parameters, missing_methods = find_context_params
|
|
55
|
+
|
|
56
|
+
RailjetContextHelper.print_context_param_errors(missing_methods)
|
|
57
|
+
|
|
58
|
+
parameters
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def find_context_params
|
|
62
|
+
parameters = []
|
|
63
|
+
missing_methods = []
|
|
64
|
+
|
|
65
|
+
@context_class.method(:init).parameters.each do |param|
|
|
66
|
+
param_value, missing_method_error = find_context_param(
|
|
67
|
+
param[0], param[1]
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
parameters.push(param_value)
|
|
71
|
+
|
|
72
|
+
if missing_method_error.present?
|
|
73
|
+
missing_methods.push(missing_method_error)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
[parameters, missing_methods]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def find_context_param(type, method_name)
|
|
81
|
+
send("find_#{type}_context_param", method_name)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def find_req_context_param(method_name)
|
|
85
|
+
[send(method_name), nil]
|
|
86
|
+
rescue StandardError => e
|
|
87
|
+
[nil, { method_name => e.message }]
|
|
88
|
+
end
|
|
89
|
+
alias find_opt_context_param find_req_context_param
|
|
90
|
+
|
|
91
|
+
def find_keyreq_context_param(method_name)
|
|
92
|
+
[{ method_name => send(method_name) }, nil]
|
|
93
|
+
rescue StandardError => e
|
|
94
|
+
[{ method_name => nil }, { method_name => e.message }]
|
|
95
|
+
end
|
|
96
|
+
alias find_key_context_param find_keyreq_context_param
|
|
97
|
+
|
|
98
|
+
def self.load
|
|
99
|
+
Object.include(self)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class RailjetContextHelper
|
|
103
|
+
def self.determine_context_class
|
|
104
|
+
contexts_classes = Railjet::Context.descendants
|
|
105
|
+
contexts_classes.each_with_index do |context_class, index|
|
|
106
|
+
puts "(#{index + 1}) #{context_class}"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
puts "\nPlease enter the number of needed railjet context"
|
|
110
|
+
puts "(default: #{contexts_classes.first})"
|
|
111
|
+
puts '-' * 61
|
|
112
|
+
|
|
113
|
+
begin
|
|
114
|
+
input = $stdin.gets.strip
|
|
115
|
+
if input.present?
|
|
116
|
+
chosen_index = Float(input)
|
|
117
|
+
contexts_classes.fetch(chosen_index - 1)
|
|
118
|
+
else
|
|
119
|
+
contexts_classes[0]
|
|
120
|
+
end
|
|
121
|
+
rescue StandardError
|
|
122
|
+
puts 'Invalid choice. Please try again.'
|
|
123
|
+
retry
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def self.print_context_param_errors(missing_methods)
|
|
128
|
+
return if missing_methods.empty?
|
|
129
|
+
|
|
130
|
+
puts '!' * 61
|
|
131
|
+
puts "\nError raised while finding context value(s) for methods below using `nil` instead"
|
|
132
|
+
puts "To assign value simply define function(s) in console and it will be used the next time\n\n"
|
|
133
|
+
missing_methods.each do |error|
|
|
134
|
+
puts "\t- Method `#{error.keys.first}` => error: `#{error.values.first}`"
|
|
135
|
+
end
|
|
136
|
+
puts "\n"
|
|
137
|
+
puts '!' * 61
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
data/lib/railjet/version.rb
CHANGED
data/lib/railjet.rb
CHANGED
|
@@ -50,3 +50,11 @@ require "railjet/repository/registry"
|
|
|
50
50
|
require "railjet/repository"
|
|
51
51
|
require "railjet/repository/active_record"
|
|
52
52
|
require "railjet/repository/redis"
|
|
53
|
+
|
|
54
|
+
if defined?(Rails)
|
|
55
|
+
Rails::Application.console do
|
|
56
|
+
require "railjet/console/debug_helpers"
|
|
57
|
+
|
|
58
|
+
Railjet::Console::RailjetHelpers.load
|
|
59
|
+
end
|
|
60
|
+
end
|
data/railjet.gemspec
CHANGED
|
@@ -23,11 +23,11 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.add_development_dependency "rake", "> 13"
|
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
25
25
|
spec.add_development_dependency "pry"
|
|
26
|
-
spec.add_development_dependency "gemfury"
|
|
27
26
|
spec.add_development_dependency "rake-version", "~> 1.0"
|
|
27
|
+
spec.add_development_dependency "simplecov", "~> 0.17.1"
|
|
28
28
|
|
|
29
|
-
spec.add_dependency "activesupport", '>
|
|
30
|
-
spec.add_dependency "activemodel", '>
|
|
29
|
+
spec.add_dependency "activesupport", '> 5.2'
|
|
30
|
+
spec.add_dependency "activemodel", '> 5.2'
|
|
31
31
|
spec.add_dependency "virtus", "~> 1.0.2"
|
|
32
|
-
spec.add_dependency "validates_timeliness", "~>
|
|
32
|
+
spec.add_dependency "validates_timeliness", "6.0.0.beta2" # Update this to ~> 6.0 when an official release is made
|
|
33
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: railjet
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Krzysztof Zalewski
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-03-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -67,61 +67,61 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: rake-version
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
75
|
+
version: '1.0'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
82
|
+
version: '1.0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
84
|
+
name: simplecov
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: 0.17.1
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
96
|
+
version: 0.17.1
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: activesupport
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
103
|
+
version: '5.2'
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - ">"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
110
|
+
version: '5.2'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
112
|
name: activemodel
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '5.2'
|
|
118
118
|
type: :runtime
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - ">"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
124
|
+
version: '5.2'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: virtus
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -140,16 +140,16 @@ dependencies:
|
|
|
140
140
|
name: validates_timeliness
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
|
-
- -
|
|
143
|
+
- - '='
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version:
|
|
145
|
+
version: 6.0.0.beta2
|
|
146
146
|
type: :runtime
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
|
-
- -
|
|
150
|
+
- - '='
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version:
|
|
152
|
+
version: 6.0.0.beta2
|
|
153
153
|
description: Design patterns for Ruby on Rails
|
|
154
154
|
email:
|
|
155
155
|
- zlw.zalewski@gmail.com
|
|
@@ -157,11 +157,11 @@ executables: []
|
|
|
157
157
|
extensions: []
|
|
158
158
|
extra_rdoc_files: []
|
|
159
159
|
files:
|
|
160
|
+
- ".github/workflows/test.yml"
|
|
160
161
|
- ".gitignore"
|
|
161
162
|
- ".rspec"
|
|
162
163
|
- ".ruby-gemset"
|
|
163
164
|
- ".ruby-version"
|
|
164
|
-
- ".semaphore/semaphore.yml"
|
|
165
165
|
- Gemfile
|
|
166
166
|
- LICENSE.txt
|
|
167
167
|
- README.md
|
|
@@ -181,6 +181,7 @@ files:
|
|
|
181
181
|
- lib/railjet/auth/ability.rb
|
|
182
182
|
- lib/railjet/auth/activity.rb
|
|
183
183
|
- lib/railjet/composed_policy.rb
|
|
184
|
+
- lib/railjet/console/debug_helpers.rb
|
|
184
185
|
- lib/railjet/context.rb
|
|
185
186
|
- lib/railjet/form.rb
|
|
186
187
|
- lib/railjet/policy.rb
|
|
@@ -202,7 +203,7 @@ homepage: https://github.com/nedap/railjet
|
|
|
202
203
|
licenses:
|
|
203
204
|
- MIT
|
|
204
205
|
metadata: {}
|
|
205
|
-
post_install_message:
|
|
206
|
+
post_install_message:
|
|
206
207
|
rdoc_options: []
|
|
207
208
|
require_paths:
|
|
208
209
|
- lib
|
|
@@ -218,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
218
219
|
version: '0'
|
|
219
220
|
requirements: []
|
|
220
221
|
rubygems_version: 3.0.3
|
|
221
|
-
signing_key:
|
|
222
|
+
signing_key:
|
|
222
223
|
specification_version: 4
|
|
223
224
|
summary: Better architecture for high-speed railway
|
|
224
225
|
test_files: []
|
data/.semaphore/semaphore.yml
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
version: v1.0
|
|
2
|
-
name: Initial Pipeline
|
|
3
|
-
agent:
|
|
4
|
-
machine:
|
|
5
|
-
type: e1-standard-2
|
|
6
|
-
os_image: ubuntu1804
|
|
7
|
-
auto_cancel:
|
|
8
|
-
running:
|
|
9
|
-
when: "branch != 'master'"
|
|
10
|
-
blocks:
|
|
11
|
-
- name: 'Block #1'
|
|
12
|
-
task:
|
|
13
|
-
jobs:
|
|
14
|
-
- name: specs
|
|
15
|
-
matrix:
|
|
16
|
-
- env_var: RUBY_VERSION
|
|
17
|
-
values: [ "2.4.10", "2.5.8", "2.6.6", "2.7.1" ]
|
|
18
|
-
commands:
|
|
19
|
-
- sem-version ruby $RUBY_VERSION
|
|
20
|
-
- bundle install --path vendor/bundle
|
|
21
|
-
- bundle exec rake spec
|
|
22
|
-
prologue:
|
|
23
|
-
commands:
|
|
24
|
-
- checkout
|