dag_me 0.4.1 → 0.4.2

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: 535847d509f0a7d65eb13927c894086c021addbc89017257bec5a41af5c0a547
4
- data.tar.gz: 3c50f1a759fdbfb225897ee76cf1753073a2b24d1e3b6fa32f9c312b7cd3a7ae
3
+ metadata.gz: 315af993cc34ae379f332dd02f4000562cf48085367a5807d711a564222c84c8
4
+ data.tar.gz: 037e69f2e9b9ece91340c0445c6a29ba68daaf43088a59cf6315ffa1c03dfd2b
5
5
  SHA512:
6
- metadata.gz: fdfb3514a36b5b892296b87113f04151881823f8102337f061425640252673b23e2ab3169cbaa2153dba09aedda4ce2fdf1b585b2f085e85492c100cc458db45
7
- data.tar.gz: 489c29e4aaa52a208ca00f1df5766ef784e2e5e40597b155c3e8adc9ea60cef83a520318fc7957a12c534db4f036d1e903918295c0185f13eb3d99232fb5e987
6
+ metadata.gz: 8f7e8e4eaa02964bea7ad772989ce878bff46d3275d5e6b69858fa5d3901439d9a808628012c3c6c724153ab4fc9e8fed4458c9bbb34cf153adb3fb7d5e0c891
7
+ data.tar.gz: 0ab38c6617793a3e48586e9e5bd58969e2a96980d13736ef90d864141b93816e8241bef552f4cf3f242c95150b40634491489e79f80e202e4a6a705c9fabb080
@@ -54,8 +54,8 @@ module DagMe
54
54
  # towards `to`, seeded by the condition the block builds on the edge
55
55
  # table. Returns the CTE table and its definition.
56
56
  def reach_cte(name, from:, to:)
57
- edge = Arel::Table.new(config.edge_table)
58
- cte = Arel::Table.new(name)
57
+ edge = config.edge_class.arel_table
58
+ cte = DagMe.arel_table(name)
59
59
  conn = model.connection
60
60
  base = edge.project(*to.zip(pk_columns).map { |c, pk| edge[c].as(conn.quote_column_name(pk)) })
61
61
  .where(yield(edge))
data/lib/dag_me/model.rb CHANGED
@@ -80,7 +80,7 @@ module DagMe
80
80
 
81
81
  # Nodes with no edge row in the given role (child -> roots, parent -> leaves).
82
82
  def dag_nodes_without(config, role)
83
- edge = Arel::Table.new(config.edge_table)
83
+ edge = config.edge_class.arel_table
84
84
  conds = config.node_pk_columns.zip(config.public_send(role))
85
85
  .map { |pk, edge_col| edge[edge_col].eq(arel_table[pk]) }.inject(:and)
86
86
  where.not(edge.project(1).where(conds).exists)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DagMe
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
  end
data/lib/dag_me.rb CHANGED
@@ -10,6 +10,15 @@ require 'dag_me/railtie' if defined?(Rails)
10
10
  module DagMe
11
11
  extend ActiveSupport::Autoload
12
12
 
13
+ # Rails main (8.2) made Arel::Table.new keyword-only.
14
+ KEYWORD_AREL_TABLE = Arel::Table.instance_method(:initialize).parameters.none? do |type, _name|
15
+ %i[req opt].include?(type)
16
+ end
17
+
18
+ def self.arel_table(name)
19
+ KEYWORD_AREL_TABLE ? Arel::Table.new(name: name) : Arel::Table.new(name)
20
+ end
21
+
13
22
  autoload :Configuration
14
23
  autoload :DDL
15
24
  autoload :Graph
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dag_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih