grumlin 1.2.0 → 1.3.0

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: e12324038e3055ee0fcc736077cf70cdcc771fb655a468020358b4595355bda5
4
- data.tar.gz: ec4690d68d554a38569b4e693bafbaaba7b37dad20e146b925099627b47e836e
3
+ metadata.gz: 553507d5129346a6cfb4de0dc7a49c921bcc55fa66bcfb1b34977e2c5745c99d
4
+ data.tar.gz: 50bc26cc953f4c5ecf5a98113694e27222af024d1dc44caa9a4c67f7d25f1001
5
5
  SHA512:
6
- metadata.gz: f3301fc9f7018156a6d6a96fb9e3228635e62c9cefb0da2dca10ded230d8135feea23893078e833a763406c5b58b8952c097d10d2446a2965ae81ef7ea081f4b
7
- data.tar.gz: 479bf195804c7b8a39c7cb82f18d5284f92a00bd4444620b94887487615eb4fcc57d4e6a619d55ff98a977b73ef0315d6d8c8495ebbd527cdc12a389b8a27b28
6
+ metadata.gz: fef41b400fac0f1a5630912c8dd28beac3741e5e90d22c60c20dc2bb9c7b5dba266a5ddaaf9a53fbf30f66c854a3a97dad8d61a96e3acc96edcf9bc41c5b0634
7
+ data.tar.gz: a45d7897f703eb52fb94e2d8e9375f9031f9ab2a5ef1c1f465d401a630a5f1831ca73819fee7c445d46bdad120687c64248d12e33874de4de74056e0d6bc8286
@@ -10,19 +10,16 @@ jobs:
10
10
 
11
11
  - uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: "3.0"
14
13
  bundler-cache: true
15
14
 
16
- - name: Run the default task
17
- run: |
18
- gem install bundler -v 2.2.15
19
- bundle install
20
- bundle exec rubocop
15
+ - name: Run rubocop
16
+ run: bundle exec rubocop -f github
17
+
21
18
  test:
22
19
  runs-on: ubuntu-latest
23
20
  strategy:
24
21
  matrix:
25
- ruby: ["3.0", "3.1", "3.2", "3.3"]
22
+ ruby: ["3.1", "3.2", "3.3"]
26
23
  steps:
27
24
  - uses: actions/checkout@v2
28
25
 
@@ -43,6 +40,7 @@ jobs:
43
40
 
44
41
  - name: Run tests
45
42
  run: bundle exec rspec
43
+
46
44
  publish:
47
45
  runs-on: ubuntu-latest
48
46
  needs:
@@ -54,7 +52,6 @@ jobs:
54
52
 
55
53
  - uses: ruby/setup-ruby@v1
56
54
  with:
57
- ruby-version: "3.0"
58
55
  bundler-cache: true
59
56
 
60
57
  - name: Build gem
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.0
2
+ TargetRubyVersion: 3.1
3
3
  NewCops: enable
4
4
  SuggestExtensions: false
5
5
 
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.0.6
1
+ ruby 3.1.5
data/Gemfile.lock CHANGED
@@ -1,9 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grumlin (1.2.0)
5
- async-pool (~> 0.4.0)
4
+ grumlin (1.3.0)
5
+ async (~> 2.11.0)
6
+ async-http (~> 0.66.0)
7
+ async-io (~> 1.43.0)
8
+ async-pool (~> 0.6.0)
6
9
  async-websocket (~> 0.26.0)
10
+ console (~> 1.25.0)
7
11
  ibsciss-middleware (~> 0.4.0)
8
12
  oj (~> 3.16.0)
9
13
  retryable (~> 3.0.0)
@@ -23,30 +27,31 @@ GEM
23
27
  mutex_m
24
28
  tzinfo (~> 2.0)
25
29
  ast (2.4.2)
26
- async (1.31.0)
27
- console (~> 1.10)
28
- nio4r (~> 2.3)
30
+ async (2.11.0)
31
+ console (~> 1.25, >= 1.25.2)
32
+ fiber-annotation
33
+ io-event (~> 1.5, >= 1.5.1)
29
34
  timers (~> 4.1)
30
- async-http (0.61.0)
31
- async (>= 1.25)
32
- async-io (>= 1.28)
33
- async-pool (>= 0.2)
34
- protocol-http (~> 0.25.0)
35
- protocol-http1 (~> 0.16.0)
36
- protocol-http2 (~> 0.15.0)
35
+ async-http (0.66.3)
36
+ async (>= 2.10.2)
37
+ async-pool (>= 0.6.1)
38
+ io-endpoint (~> 0.10, >= 0.10.3)
39
+ io-stream (~> 0.4)
40
+ protocol-http (~> 0.26.0)
41
+ protocol-http1 (~> 0.19.0)
42
+ protocol-http2 (~> 0.17.0)
37
43
  traces (>= 0.10.0)
38
- async-io (1.38.1)
44
+ async-io (1.43.2)
39
45
  async
40
- async-pool (0.4.0)
46
+ async-pool (0.6.1)
41
47
  async (>= 1.25)
42
48
  async-rspec (1.17.0)
43
49
  rspec (~> 3.0)
44
50
  rspec-files (~> 1.0)
45
51
  rspec-memory (~> 1.0)
46
- async-websocket (0.26.0)
52
+ async-websocket (0.26.1)
47
53
  async-http (~> 0.54)
48
- async-io (~> 1.23)
49
- protocol-rack (~> 0.1)
54
+ protocol-rack (~> 0.5)
50
55
  protocol-websocket (~> 0.11)
51
56
  backport (1.2.0)
52
57
  base64 (0.2.0)
@@ -56,9 +61,10 @@ GEM
56
61
  childprocess (4.1.0)
57
62
  concurrent-ruby (1.2.2)
58
63
  connection_pool (2.4.1)
59
- console (1.23.3)
64
+ console (1.25.2)
60
65
  fiber-annotation
61
- fiber-local
66
+ fiber-local (~> 1.1)
67
+ json
62
68
  dead_end (4.0.0)
63
69
  diff-lcs (1.5.0)
64
70
  docile (1.4.0)
@@ -68,11 +74,16 @@ GEM
68
74
  factory_bot (6.4.5)
69
75
  activesupport (>= 5.0.0)
70
76
  fiber-annotation (0.2.0)
71
- fiber-local (1.0.0)
77
+ fiber-local (1.1.0)
78
+ fiber-storage
79
+ fiber-storage (0.1.0)
72
80
  i18n (1.14.1)
73
81
  concurrent-ruby (~> 1.0)
74
- ibsciss-middleware (0.4.2)
82
+ ibsciss-middleware (0.4.3)
75
83
  iniparse (1.5.0)
84
+ io-endpoint (0.10.3)
85
+ io-event (1.5.1)
86
+ io-stream (0.4.0)
76
87
  jaro_winkler (1.5.6)
77
88
  json (2.7.1)
78
89
  kramdown (2.4.0)
@@ -84,7 +95,6 @@ GEM
84
95
  mini_portile2 (2.8.5)
85
96
  minitest (5.20.0)
86
97
  mutex_m (0.2.0)
87
- nio4r (2.7.0)
88
98
  nokogiri (1.16.0)
89
99
  mini_portile2 (~> 2.8.2)
90
100
  racc (~> 1.4)
@@ -100,20 +110,20 @@ GEM
100
110
  parser (3.2.2.4)
101
111
  ast (~> 2.4.1)
102
112
  racc
103
- protocol-hpack (1.4.2)
104
- protocol-http (0.25.0)
105
- protocol-http1 (0.16.1)
113
+ protocol-hpack (1.4.3)
114
+ protocol-http (0.26.5)
115
+ protocol-http1 (0.19.1)
106
116
  protocol-http (~> 0.22)
107
- protocol-http2 (0.15.1)
117
+ protocol-http2 (0.17.0)
108
118
  protocol-hpack (~> 1.4)
109
119
  protocol-http (~> 0.18)
110
- protocol-rack (0.4.1)
120
+ protocol-rack (0.5.1)
111
121
  protocol-http (~> 0.23)
112
122
  rack (>= 1.0)
113
123
  protocol-websocket (0.12.1)
114
124
  protocol-http (~> 0.2)
115
125
  racc (1.7.3)
116
- rack (3.0.8)
126
+ rack (3.0.11)
117
127
  rainbow (3.1.1)
118
128
  rake (13.1.0)
119
129
  rbs (2.8.4)
@@ -196,7 +206,7 @@ GEM
196
206
  concurrent-ruby (~> 1.0)
197
207
  unicode-display_width (2.5.0)
198
208
  yard (0.9.34)
199
- zeitwerk (2.6.12)
209
+ zeitwerk (2.6.14)
200
210
 
201
211
  PLATFORMS
202
212
  ruby
data/README.md CHANGED
@@ -27,7 +27,7 @@ event loop.
27
27
 
28
28
  ## Dependencies
29
29
 
30
- Grumlin works with ruby >= 3.0, but it's recommended to use 3.1 due to [zlib warnings](https://github.com/socketry/async-websocket/issues/42).
30
+ Grumlin works with ruby >= 3.1.
31
31
 
32
32
  ## Install
33
33
 
data/grumlin.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.homepage = "https://github.com/babbel/grumlin"
18
18
  spec.license = "MIT"
19
- spec.required_ruby_version = Gem::Requirement.new(">= 3.0")
19
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.1")
20
20
 
21
21
  spec.metadata["homepage_uri"] = spec.homepage
22
22
  spec.metadata["source_code_uri"] = "https://github.com/babbel/grumlin"
@@ -28,8 +28,12 @@ Gem::Specification.new do |spec|
28
28
  end
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- spec.add_dependency "async-pool", "~> 0.4.0"
31
+ spec.add_dependency "async", "~> 2.11.0"
32
+ spec.add_dependency "async-http", "~> 0.66.0"
33
+ spec.add_dependency "async-io", "~> 1.43.0"
34
+ spec.add_dependency "async-pool", "~> 0.6.0"
32
35
  spec.add_dependency "async-websocket", "~> 0.26.0"
36
+ spec.add_dependency "console", "~> 1.25.0"
33
37
  spec.add_dependency "ibsciss-middleware", "~> 0.4.0"
34
38
  spec.add_dependency "oj", "~> 3.16.0"
35
39
  spec.add_dependency "retryable", "~> 3.0.0"
@@ -38,8 +38,6 @@ class Grumlin::Client
38
38
  end
39
39
  end
40
40
 
41
- include Console
42
-
43
41
  # Client is not reusable. Once closed should be recreated.
44
42
  def initialize(url, parent: Async::Task.current, **client_options)
45
43
  @url = url
@@ -62,7 +60,7 @@ class Grumlin::Client
62
60
  rescue Async::Stop, Async::TimeoutError, StandardError
63
61
  close(check_requests: false)
64
62
  end
65
- logger.debug(self, "Connected")
63
+ Console.debug(self, "Connected")
66
64
  end
67
65
 
68
66
  # Before calling close the user must ensure that:
@@ -85,7 +83,7 @@ class Grumlin::Client
85
83
 
86
84
  raise Grumlin::ResourceLeakError, "Request list is not empty: #{@request_dispatcher.requests}" if check_requests
87
85
  ensure
88
- logger.debug(self, "Closed")
86
+ Console.debug(self, "Closed")
89
87
  end
90
88
 
91
89
  def connected?
@@ -22,7 +22,7 @@ class Grumlin::Config
22
22
  @pool_size = 10
23
23
  @client_concurrency = 5
24
24
  @provider = :tinkergraph
25
- @client_factory = ->(url, parent) { Grumlin::Client.new(url, parent: parent) }
25
+ @client_factory = ->(url, parent) { Grumlin::Client.new(url, parent:) }
26
26
  end
27
27
 
28
28
  def middlewares
@@ -3,13 +3,11 @@
3
3
  class Grumlin::DummyTransaction < Grumlin::Transaction
4
4
  attr_reader :uuid
5
5
 
6
- include Console
7
-
8
6
  def initialize(traversal_start_class, middlewares:, pool:)
9
7
  super
10
8
  @session_id = nil
11
9
 
12
- logger.info(self) do
10
+ Console.info(self) do
13
11
  "#{Grumlin.config.provider} does not support transactions. commit and rollback are ignored, data will be saved"
14
12
  end
15
13
  end
@@ -19,11 +19,11 @@ class Grumlin::Repository::ErrorHandlingStrategy
19
19
  @mode == :retry
20
20
  end
21
21
 
22
- def apply!(&block)
22
+ def apply!(&)
23
23
  return yield if raise?
24
- return ignore_errors!(&block) if ignore?
24
+ return ignore_errors!(&) if ignore?
25
25
 
26
- retry_errors!(&block)
26
+ retry_errors!(&)
27
27
  end
28
28
 
29
29
  private
@@ -34,7 +34,7 @@ class Grumlin::Repository::ErrorHandlingStrategy
34
34
  # ignore errors
35
35
  end
36
36
 
37
- def retry_errors!(&block)
38
- Retryable.retryable(**@params, &block)
37
+ def retry_errors!(&)
38
+ Retryable.retryable(**@params, &)
39
39
  end
40
40
  end
@@ -42,7 +42,7 @@ module Grumlin::Repository::InstanceMethods # rubocop:disable Metrics/ModuleLeng
42
42
 
43
43
  return if traversal.count.next.zero?
44
44
 
45
- drop_in_batches(traversal, batch_size: batch_size)
45
+ drop_in_batches(traversal, batch_size:)
46
46
 
47
47
  Console.logger.info(self) { "drop_in_batches: finished." }
48
48
  end
@@ -123,17 +123,17 @@ module Grumlin::Repository::InstanceMethods # rubocop:disable Metrics/ModuleLeng
123
123
 
124
124
  private
125
125
 
126
- def with_upsert_error_handling(on_failure, params, &block)
126
+ def with_upsert_error_handling(on_failure, params, &)
127
127
  if params.any?
128
128
  Grumlin::Repository::ErrorHandlingStrategy.new(mode: on_failure, **UPSERT_RETRY_PARAMS.merge(params))
129
129
  else
130
130
  DEFAULT_ERROR_HANDLING_STRATEGY
131
- end.apply!(&block)
131
+ end.apply!(&)
132
132
  end
133
133
 
134
- def with_upsert_retry(retry_params, &block)
134
+ def with_upsert_retry(retry_params, &)
135
135
  retry_params = UPSERT_RETRY_PARAMS.merge(retry_params)
136
- Retryable.retryable(**retry_params, &block)
136
+ Retryable.retryable(**retry_params, &)
137
137
  end
138
138
 
139
139
  def cleanup_properties(create_properties, update_properties, *props_to_cleanup)
@@ -23,7 +23,7 @@ class Grumlin::RequestDispatcher
23
23
  raise RequestAlreadyAddedError if @requests.include?(request[:requestId])
24
24
 
25
25
  Async::Channel.new.tap do |channel|
26
- @requests[request[:requestId]] = { request: request, result: [], channel: channel }
26
+ @requests[request[:requestId]] = { request:, result: [], channel: }
27
27
  end
28
28
  end
29
29
 
@@ -35,7 +35,7 @@ class Grumlin::Shortcuts::Storage
35
35
  sc = step_class
36
36
 
37
37
  shortcut_methods_module.define_method(name) do |*args, **params|
38
- next sc.new(name, args: args, params: params, previous_step: self, pool: pool)
38
+ next sc.new(name, args:, params:, previous_step: self, pool:)
39
39
  end
40
40
  extend_traversal_classes(shortcut) unless shortcut.lazy?
41
41
  end
@@ -47,7 +47,7 @@ class Grumlin::Shortcuts::Storage
47
47
  end
48
48
 
49
49
  def g(middlewares: Grumlin.default_middlewares)
50
- traversal_start_class.new(pool: Grumlin.default_pool, middlewares: middlewares)
50
+ traversal_start_class.new(pool: Grumlin.default_pool, middlewares:)
51
51
  end
52
52
 
53
53
  def __
@@ -21,7 +21,7 @@ module Grumlin::Shortcuts
21
21
 
22
22
  raise ArgumentError, "either shortcut or block must be passed" if [shortcut, block].count(&:nil?) != 1
23
23
 
24
- shortcuts.add(name, shortcut || Grumlin::Shortcut.new(name, lazy: lazy, &block))
24
+ shortcuts.add(name, shortcut || Grumlin::Shortcut.new(name, lazy:, &block))
25
25
  end
26
26
 
27
27
  def shortcuts_from(other_shortcuts)
@@ -26,7 +26,7 @@ class Grumlin::ShortcutsApplyer
26
26
  args = step.args.map { |arg| call(arg) }
27
27
 
28
28
  shortcut = shortcuts[step.name]
29
- next result << Grumlin::StepData.new(step.name, args: args, params: step.params) unless shortcut&.lazy?
29
+ next result << Grumlin::StepData.new(step.name, args:, params: step.params) unless shortcut&.lazy?
30
30
 
31
31
  t = shortcuts.__
32
32
  step = shortcut.apply(t, *args, **step.params)
data/lib/grumlin/step.rb CHANGED
@@ -6,7 +6,7 @@ class Grumlin::Step < Grumlin::Steppable
6
6
  # TODO: replace pool, session_id and middlewares with a context?
7
7
  def initialize(name, args: [], params: {}, previous_step: nil, pool: nil, session_id: nil, # rubocop:disable Metrics/ParameterLists
8
8
  middlewares: Grumlin.default_middlewares)
9
- super(pool: pool, session_id: session_id, middlewares: middlewares)
9
+ super(pool:, session_id:, middlewares:)
10
10
 
11
11
  @name = name.to_sym
12
12
  @args = args # TODO: add recursive validation: only json types or Step
@@ -55,7 +55,7 @@ class Grumlin::Step < Grumlin::Steppable
55
55
  end
56
56
 
57
57
  def bytecode(no_return: false)
58
- Grumlin::StepsSerializers::Bytecode.new(steps, no_return: no_return)
58
+ Grumlin::StepsSerializers::Bytecode.new(steps, no_return:)
59
59
  end
60
60
 
61
61
  def next
@@ -85,7 +85,7 @@ class Grumlin::Step < Grumlin::Steppable
85
85
 
86
86
  def send_query(need_results:)
87
87
  @middlewares.call(traversal: self,
88
- need_results: need_results,
88
+ need_results:,
89
89
  session_id: @session_id,
90
90
  pool: @pool)
91
91
  end
@@ -23,13 +23,13 @@ class Grumlin::Steppable
23
23
 
24
24
  ALL_STEPS.each do |step|
25
25
  define_method step do |*args, **params|
26
- shortcuts.step_class.new(step, args: args, params: params, previous_step: self,
26
+ shortcuts.step_class.new(step, args:, params:, previous_step: self,
27
27
  session_id: @session_id, pool: @pool, middlewares: @middlewares)
28
28
  end
29
29
  end
30
30
 
31
31
  def step(name, *args, **params)
32
- shortcuts.step_class.new(name, args: args, params: params, previous_step: self,
32
+ shortcuts.step_class.new(name, args:, params:, previous_step: self,
33
33
  session_id: @session_id, pool: @pool, middlewares: @middlewares)
34
34
  end
35
35
 
data/lib/grumlin/steps.rb CHANGED
@@ -24,11 +24,9 @@ class Grumlin::Steps
24
24
  end
25
25
 
26
26
  def add(name, args: [], params: {}, to: :end)
27
- if CONFIGURATION_STEPS.include?(name) || name.to_sym == :tx
28
- return add_configuration_step(name, args: args, params: params, to: to)
29
- end
27
+ return add_configuration_step(name, args:, params:, to:) if CONFIGURATION_STEPS.include?(name) || name.to_sym == :tx
30
28
 
31
- Grumlin::StepData.new(name, args: cast_arguments(args), params: params).tap do |step|
29
+ Grumlin::StepData.new(name, args: cast_arguments(args), params:).tap do |step|
32
30
  next @steps << step if to == :end
33
31
  next @steps.unshift(step) if to == :begin
34
32
 
@@ -62,7 +60,7 @@ class Grumlin::Steps
62
60
  def add_configuration_step(name, args: [], params: {}, to: :end)
63
61
  raise ArgumentError, "cannot use configuration steps after start step was used" if @steps.any? && to == :end
64
62
 
65
- Grumlin::StepData.new(name, args: cast_arguments(args), params: params).tap do |step|
63
+ Grumlin::StepData.new(name, args: cast_arguments(args), params:).tap do |step|
66
64
  next @configuration_steps << step if to == :end
67
65
  next @configuration_steps.unshift(step) if to == :begin
68
66
 
@@ -3,8 +3,6 @@
3
3
  class Grumlin::Transaction
4
4
  attr_reader :session_id, :pool
5
5
 
6
- include Console
7
-
8
6
  COMMIT = Grumlin::Repository.new.g.step(:tx, :commit)
9
7
  ROLLBACK = Grumlin::Repository.new.g.step(:tx, :rollback)
10
8
 
@@ -4,8 +4,6 @@ class Grumlin::Transport
4
4
  # A transport based on https://github.com/socketry/async
5
5
  # and https://github.com/socketry/async-websocket
6
6
 
7
- include Console
8
-
9
7
  attr_reader :url
10
8
 
11
9
  # Transport is not reusable. Once closed should be recreated.
@@ -26,7 +24,7 @@ class Grumlin::Transport
26
24
  raise AlreadyConnectedError if connected?
27
25
 
28
26
  @connection = Async::WebSocket::Client.connect(Async::HTTP::Endpoint.parse(@url), **@client_options)
29
- logger.debug(self) { "Connected to #{@url}." }
27
+ Console.debug(self) { "Connected to #{@url}." }
30
28
 
31
29
  @response_task = @parent.async { run_response_task }
32
30
 
@@ -88,7 +86,7 @@ class Grumlin::Transport
88
86
  def with_guard
89
87
  yield
90
88
  rescue Async::Stop, Async::TimeoutError, StandardError => e
91
- logger.debug(self) { "Guard error, closing." }
89
+ Console.debug(self) { "Guard error, closing." }
92
90
  begin
93
91
  @response_channel.exception(e)
94
92
  rescue Async::Channel::ChannelClosedError
@@ -12,7 +12,7 @@ class Grumlin::TraversalStart < Grumlin::Steppable
12
12
  # Pool should have size of 1 when working with session
13
13
  pool = Async::Pool::Controller.new(Grumlin::Client::PoolResource, limit: 1)
14
14
 
15
- transaction = tx_class.new(self.class, pool: pool, middlewares: @middlewares)
15
+ transaction = tx_class.new(self.class, pool:, middlewares: @middlewares)
16
16
  return transaction unless block_given?
17
17
 
18
18
  result = nil
@@ -2,6 +2,6 @@
2
2
 
3
3
  class Grumlin::TraversalStrategies::OptionsStrategy < Grumlin::TypedValue
4
4
  def initialize(value)
5
- super(type: "OptionsStrategy", value: value)
5
+ super(type: "OptionsStrategy", value:)
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Grumlin
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
metadata CHANGED
@@ -1,29 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grumlin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Sinyavskiy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-02 00:00:00.000000000 Z
11
+ date: 2024-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: async
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.11.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.11.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: async-http
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.66.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.66.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: async-io
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.43.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.43.0
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: async-pool
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
59
  - - "~>"
18
60
  - !ruby/object:Gem::Version
19
- version: 0.4.0
61
+ version: 0.6.0
20
62
  type: :runtime
21
63
  prerelease: false
22
64
  version_requirements: !ruby/object:Gem::Requirement
23
65
  requirements:
24
66
  - - "~>"
25
67
  - !ruby/object:Gem::Version
26
- version: 0.4.0
68
+ version: 0.6.0
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: async-websocket
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +80,20 @@ dependencies:
38
80
  - - "~>"
39
81
  - !ruby/object:Gem::Version
40
82
  version: 0.26.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: console
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.25.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.25.0
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: ibsciss-middleware
43
99
  requirement: !ruby/object:Gem::Requirement
@@ -213,14 +269,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
269
  requirements:
214
270
  - - ">="
215
271
  - !ruby/object:Gem::Version
216
- version: '3.0'
272
+ version: '3.1'
217
273
  required_rubygems_version: !ruby/object:Gem::Requirement
218
274
  requirements:
219
275
  - - ">="
220
276
  - !ruby/object:Gem::Version
221
277
  version: '0'
222
278
  requirements: []
223
- rubygems_version: 3.2.33
279
+ rubygems_version: 3.3.27
224
280
  signing_key:
225
281
  specification_version: 4
226
282
  summary: Gremlin graph traversal language DSL and client for Ruby.