data_conduit 0.1.0 → 0.1.1

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: 72aab70fe54dcf66a97433914a5ded7f8c05887b591f2a211b1dac3798e9f539
4
- data.tar.gz: 1d5f6bead14baca0f3ecfd0cb33a708887aad75684d57e4eae4ea204c5f29169
3
+ metadata.gz: c125b095523f09acda8fb4589dab9993008dcaa667e539c1a1a4f4cae6a096f0
4
+ data.tar.gz: 703d7ef118c6fe0379ca6130383165816b78f5ba348a117404f2fcdb83774f16
5
5
  SHA512:
6
- metadata.gz: 046cbe44b22de14283106fe214b9f42f2b5e5191222f2e1e195a985b824f8410195f81787557c5b6ae68949c24a2806f978d526c7713dd291cc0ab50ccc1334a
7
- data.tar.gz: 2f461e3aa46d3441b4325fc316e0d197d8db7a7b6ffe22d2162f32d440ef405b059e4efbfdc4ee30d88ba2b6929a36c55727673f3c40eeec6ac8f04f9542f8ba
6
+ metadata.gz: f3459d151a16cdc55b12fe6712a1178ec77ddd20642a9f2d72043c1773b8b08d95e5f8d56decf8debf24f8657f1c74dad748eb83d09122af04f23350b254e5bc
7
+ data.tar.gz: 3014c4adb4f9f2f7ba8e03ab70e669b1e616da8e6031d5dc5fe364b3c921dc47c6ff0b5378fd90d057ce6ddff09dcfba4b84ea83c1e932e751410bf8b687c017
@@ -87,7 +87,9 @@ module DataConduit
87
87
  end
88
88
 
89
89
  def send_query(sql)
90
- JSON.parse(RestClient.post("#{server}/v1/statement", sql, headers).body)
90
+ base_url = server.end_with?("/") ? server.chop : server
91
+ endpoint = "#{base_url}/v1/statement"
92
+ JSON.parse(RestClient.post(endpoint, sql, headers).body)
91
93
  rescue JSON::ParserError => e
92
94
  raise DataConduit::Error, "Failed to parse JSON response: #{e.message}"
93
95
  rescue RestClient::ExceptionWithResponse => e
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "sequel"
4
+ require "date"
5
+ require "active_support"
6
+ require "active_support/time"
7
+
8
+ module TrinoDateLiteral
9
+ ISO_TS = "%F %T.%6N" # => "YYYY-MM-DD hh:mm:ss.ffffff"
10
+
11
+ def literal_date(value)
12
+ "DATE '#{value.iso8601}'"
13
+ end
14
+
15
+ def literal_datetime(value) = timestamp_literal(value)
16
+ def literal_time(value) = timestamp_literal(value)
17
+
18
+ private
19
+
20
+ def timestamp_literal(value)
21
+ "TIMESTAMP '#{value.strftime(ISO_TS)}'"
22
+ end
23
+ end
24
+
25
+ Sequel::Dataset.prepend(TrinoDateLiteral)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DataConduit
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/data_conduit.rb CHANGED
@@ -4,6 +4,7 @@ require_relative "data_conduit/version"
4
4
  require_relative "data_conduit/data_warehouse_repository"
5
5
  require_relative "data_conduit/repository_factory"
6
6
  require_relative "data_conduit/adapters/trino_repository"
7
+ require_relative "data_conduit/infrastructure/sequel/trino_date_literal"
7
8
 
8
9
  # Register default adapters
9
10
  DataConduit::RepositoryFactory.register(:trino, DataConduit::Adapters::TrinoRepository)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_conduit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinicius Dittgen
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-19 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rest-client
@@ -135,6 +135,20 @@ dependencies:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
137
  version: '3.18'
138
+ - !ruby/object:Gem::Dependency
139
+ name: activesupport
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '7.0'
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '7.0'
138
152
  - !ruby/object:Gem::Dependency
139
153
  name: sequel
140
154
  requirement: !ruby/object:Gem::Requirement
@@ -161,6 +175,7 @@ files:
161
175
  - lib/data_conduit.rb
162
176
  - lib/data_conduit/adapters/trino_repository.rb
163
177
  - lib/data_conduit/data_warehouse_repository.rb
178
+ - lib/data_conduit/infrastructure/sequel/trino_date_literal.rb
164
179
  - lib/data_conduit/repository_factory.rb
165
180
  - lib/data_conduit/version.rb
166
181
  homepage: https://github.com/powerhome/power-tools
@@ -185,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
200
  - !ruby/object:Gem::Version
186
201
  version: '0'
187
202
  requirements: []
188
- rubygems_version: 3.6.2
203
+ rubygems_version: 3.6.7
189
204
  specification_version: 4
190
205
  summary: A Ruby connector for data warehouses
191
206
  test_files: []