dagger_ruby 0.1.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfc23973d2dde6e9c8843fc21857992abacd569144f24cc12f5242ce45535c58
4
- data.tar.gz: d3bee65d4fea6d9c273a8b35d2b0522184498db206a42c60f1da550fd8f74770
3
+ metadata.gz: 9bb342a6b2f94fd6077e596faed26989210cbd80f77b1dc98d960a38296e701e
4
+ data.tar.gz: ee43c34f786d43639538ffefae5bc0554c983071b6411ac9a9031d0193c763c8
5
5
  SHA512:
6
- metadata.gz: '0854808f4c8af428eefd82c5fabcf6ac882e88bedd74103c3e34b653dd0c4b8f8f7282f82aadd012c8e0fa60f35a41a2d588ecdf23c3a877323964ae1592c505'
7
- data.tar.gz: 9b8220aa64717475766209d52eff04fb9c5ee134cb343d8f5869e4654d1d41165884768593aa22a827aef958a085e422f2818557b59a8a6a670de5b9a84e1e22
6
+ metadata.gz: 7272a0f5320e74fb5b329f8d8928c4061bba358fe1bf0a1f91234546504b9695fd9858a42642cb916ff2dae94ab6ad1251d61452ef9e0ca7fc6da863fc64d734
7
+ data.tar.gz: 3e860fb3f81ccadae92fafa0ada49e0b6609829b2cca3305b8c1af3d964adac54362950a0d643a0698fad70132c0f5af9c8ecfe21f8816a6882b407b1c280562
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0] - 2024-12-19
9
+
10
+ ### Fixed
11
+
12
+ - Removed unwanted Gemfile dependencies
13
+ - Rubocop
14
+
8
15
  ## [0.1.0] - 2024-12-19
9
16
 
10
17
  ### Added
data/dagger_ruby.gemspec CHANGED
@@ -5,38 +5,43 @@ require_relative "lib/dagger_ruby/version"
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "dagger_ruby"
7
7
  spec.version = DaggerRuby::VERSION
8
- spec.authors = [ "Gaurav Tiwari" ]
9
- spec.email = [ "gaurav@gauravtiwari.co.uk" ]
10
-
11
- spec.summary = "A Ruby SDK for Dagger"
12
- spec.description = "A Ruby SDK for Dagger that provides a simple interface to build and deploy applications"
13
- spec.homepage = "https://github.com/boring-build/dagger-ruby"
8
+ spec.authors = ["Gaurav Tiwari", "Claude Sonnet 4 + GPT-4"]
9
+ spec.email = ["gaurav@gauravtiwari.co.uk"]
10
+
11
+ spec.summary = "A Ruby SDK for Dagger - build powerful CI/CD pipelines using Ruby"
12
+ # rubocop:disable Layout/LineLength
13
+ spec.description = "DaggerRuby provides a fluent, idiomatic Ruby interface to Dagger's container-based CI/CD engine. " \
14
+ "Define build pipelines programmatically with Ruby instead of YAML. " \
15
+ "Features lazy execution, caching, secrets, and service orchestration."
16
+ # rubocop:enable Layout/LineLength
17
+ spec.homepage = "https://github.com/boringcache/dagger_ruby"
14
18
  spec.license = "MIT"
15
19
  spec.required_ruby_version = ">= 3.1.0"
16
20
 
17
21
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
22
 
19
23
  spec.metadata["homepage_uri"] = spec.homepage
20
- spec.metadata["source_code_uri"] = "https://github.com/boring-build/dagger-ruby"
21
- spec.metadata["changelog_uri"] = "https://github.com/boring-build/dagger-ruby/blob/main/CHANGELOG.md"
24
+ spec.metadata["source_code_uri"] = "https://github.com/boringcache/dagger_ruby"
25
+ spec.metadata["changelog_uri"] = "https://github.com/boringcache/dagger_ruby/blob/main/CHANGELOG.md"
22
26
 
23
27
  # Specify which files should be added to the gem when it is released.
24
28
  spec.files = Dir.glob(%w[
25
- lib/**/*
26
- *.gemspec
27
- LICENSE*
28
- CHANGELOG*
29
- README*
30
- .yardopts
31
- ]).reject { |f| File.directory?(f) }
29
+ lib/**/*
30
+ *.gemspec
31
+ LICENSE*
32
+ CHANGELOG*
33
+ README*
34
+ .yardopts
35
+ ]).reject { |f| File.directory?(f) }
32
36
 
33
37
  spec.bindir = "exe"
34
38
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
35
- spec.require_paths = [ "lib" ]
39
+ spec.require_paths = ["lib"]
36
40
 
37
41
  # Core dependencies - using only Ruby stdlib
38
- spec.add_dependency "json", "~> 2.6"
39
42
  spec.add_dependency "base64", "~> 0.1"
43
+ spec.add_dependency "json", "~> 2.6"
44
+ spec.add_dependency "logger", "~> 1.4"
40
45
 
41
46
  # Development dependencies are managed in Gemfile
42
47
  spec.metadata["rubygems_mfa_required"] = "true"
@@ -14,13 +14,12 @@ module DaggerRuby
14
14
  "cacheVolume"
15
15
  end
16
16
 
17
-
18
17
  def key
19
18
  get_scalar("key")
20
19
  end
21
20
 
22
21
  def sync
23
- get_scalar("id") # Force execution by getting ID
22
+ get_scalar("id") # Force execution by getting ID
24
23
  self
25
24
  end
26
25
  end
@@ -22,11 +22,12 @@ module DaggerRuby
22
22
  def initialize(config: nil)
23
23
  @config = config || Config.new
24
24
 
25
- port = ENV["DAGGER_SESSION_PORT"]
26
- @session_token = ENV["DAGGER_SESSION_TOKEN"]
25
+ port = ENV.fetch("DAGGER_SESSION_PORT", nil)
26
+ @session_token = ENV.fetch("DAGGER_SESSION_TOKEN", nil)
27
27
 
28
28
  unless port && @session_token
29
- raise ConnectionError, "This script must be run within a Dagger session.\nRun with: dagger run ruby script.rb [args...]"
29
+ raise ConnectionError,
30
+ "This script must be run within a Dagger session.\nRun with: dagger run ruby script.rb [args...]"
30
31
  end
31
32
 
32
33
  @endpoint = "http://127.0.0.1:#{port}/query"
@@ -41,18 +42,18 @@ module DaggerRuby
41
42
 
42
43
  begin
43
44
  execute_query("query { container { id } }")
44
- rescue => e
45
+ rescue StandardError => e
45
46
  raise ConnectionError, "Failed to connect to Dagger engine: #{e.message}"
46
47
  end
47
48
  end
48
49
 
49
50
  def container(opts = {})
50
51
  query = QueryBuilder.new
51
- if opts[:platform]
52
- query = query.chain_operation("container", { "platform" => opts[:platform] })
53
- else
54
- query = query.chain_operation("container")
55
- end
52
+ query = if opts[:platform]
53
+ query.chain_operation("container", { "platform" => opts[:platform] })
54
+ else
55
+ query.chain_operation("container")
56
+ end
56
57
  Container.new(query, self)
57
58
  end
58
59
 
@@ -82,10 +83,19 @@ module DaggerRuby
82
83
  args = { "url" => url }
83
84
  args["keepGitDir"] = opts[:keep_git_dir] if opts.key?(:keep_git_dir)
84
85
  args["sshKnownHosts"] = opts[:ssh_known_hosts] if opts[:ssh_known_hosts]
85
- args["sshAuthSocket"] = opts[:ssh_auth_socket].is_a?(DaggerObject) ? opts[:ssh_auth_socket].id : opts[:ssh_auth_socket] if opts[:ssh_auth_socket]
86
+ if opts[:ssh_auth_socket]
87
+ args["sshAuthSocket"] =
88
+ opts[:ssh_auth_socket].is_a?(DaggerObject) ? opts[:ssh_auth_socket].id : opts[:ssh_auth_socket]
89
+ end
86
90
  args["httpAuthUsername"] = opts[:http_auth_username] if opts[:http_auth_username]
87
- args["httpAuthToken"] = opts[:http_auth_token].is_a?(DaggerObject) ? opts[:http_auth_token].id : opts[:http_auth_token] if opts[:http_auth_token]
88
- args["httpAuthHeader"] = opts[:http_auth_header].is_a?(DaggerObject) ? opts[:http_auth_header].id : opts[:http_auth_header] if opts[:http_auth_header]
91
+ if opts[:http_auth_token]
92
+ args["httpAuthToken"] =
93
+ opts[:http_auth_token].is_a?(DaggerObject) ? opts[:http_auth_token].id : opts[:http_auth_token]
94
+ end
95
+ if opts[:http_auth_header]
96
+ args["httpAuthHeader"] =
97
+ opts[:http_auth_header].is_a?(DaggerObject) ? opts[:http_auth_header].id : opts[:http_auth_header]
98
+ end
89
99
 
90
100
  query = QueryBuilder.new
91
101
  query = query.chain_operation("git", args)
@@ -96,7 +106,10 @@ module DaggerRuby
96
106
  args = { "url" => url }
97
107
  args["name"] = opts[:name] if opts[:name]
98
108
  args["permissions"] = opts[:permissions] if opts[:permissions]
99
- args["authHeader"] = opts[:auth_header].is_a?(DaggerObject) ? opts[:auth_header].id : opts[:auth_header] if opts[:auth_header]
109
+ if opts[:auth_header]
110
+ args["authHeader"] =
111
+ opts[:auth_header].is_a?(DaggerObject) ? opts[:auth_header].id : opts[:auth_header]
112
+ end
100
113
 
101
114
  query = QueryBuilder.new
102
115
  query = query.chain_operation("http", args)
@@ -109,8 +122,7 @@ module DaggerRuby
109
122
  Secret.new(query, self)
110
123
  end
111
124
 
112
- def close
113
- end
125
+ def close; end
114
126
 
115
127
  def execute_query(query)
116
128
  http = Net::HTTP.new(@uri.host, @uri.port)
@@ -140,17 +152,11 @@ module DaggerRuby
140
152
  raise GraphQLError, "Invalid JSON response from server"
141
153
  end
142
154
 
143
- if parsed_body.nil?
144
- raise GraphQLError, "Empty response from server"
145
- end
155
+ raise GraphQLError, "Empty response from server" if parsed_body.nil?
146
156
 
147
- if parsed_body["errors"]
148
- raise GraphQLError, parsed_body["errors"].map { |e| e["message"] }.join(", ")
149
- end
157
+ raise GraphQLError, parsed_body["errors"].map { |e| e["message"] }.join(", ") if parsed_body["errors"]
150
158
 
151
- if parsed_body["data"].nil?
152
- raise GraphQLError, "No data in response"
153
- end
159
+ raise GraphQLError, "No data in response" if parsed_body["data"].nil?
154
160
 
155
161
  parsed_body["data"]
156
162
  when 400
@@ -14,7 +14,6 @@ module DaggerRuby
14
14
  "container"
15
15
  end
16
16
 
17
-
18
17
  def from(address)
19
18
  chain_operation("from", { "address" => address })
20
19
  end
@@ -107,7 +106,7 @@ module DaggerRuby
107
106
  chain_operation("withUser", { "name" => name })
108
107
  end
109
108
 
110
- def with_registry_auth(address, username, secret)
109
+ def with_registry_auth(_address, _username, _secret)
111
110
  puts "⚠️ Registry auth temporarily disabled due to GraphQL formatting issues"
112
111
  self
113
112
  end
@@ -119,7 +118,7 @@ module DaggerRuby
119
118
  def with_service_binding(alias_name, service)
120
119
  args = {
121
120
  "alias" => alias_name,
122
- "service" => service.is_a?(DaggerObject) ? service.id : service
121
+ "service" => service.is_a?(DaggerObject) ? service.id : service,
123
122
  }
124
123
  chain_operation("withServiceBinding", args)
125
124
  end
@@ -128,7 +127,10 @@ module DaggerRuby
128
127
  args = {}
129
128
  args["args"] = opts[:args] if opts[:args]
130
129
  args["useEntrypoint"] = opts[:use_entrypoint] if opts.key?(:use_entrypoint)
131
- args["experimentalPrivilegedNesting"] = opts[:experimental_privileged_nesting] if opts.key?(:experimental_privileged_nesting)
130
+ if opts.key?(:experimental_privileged_nesting)
131
+ args["experimentalPrivilegedNesting"] =
132
+ opts[:experimental_privileged_nesting]
133
+ end
132
134
  args["insecureRootCapabilities"] = opts[:insecure_root_capabilities] if opts.key?(:insecure_root_capabilities)
133
135
  args["expand"] = opts[:expand] if opts.key?(:expand)
134
136
  args["noInit"] = opts[:no_init] if opts.key?(:no_init)
@@ -144,7 +146,7 @@ module DaggerRuby
144
146
  args["buildArgs"] = opts[:build_args] if opts[:build_args]
145
147
 
146
148
  if opts[:secrets]
147
- raise NotImplementedError, "Build secrets are not yet supported. Use with_mounted_secret instead."
149
+ raise NotImplementedError, "Build secrets are not yet supported. Use with_mounted_secret instead."
148
150
  end
149
151
 
150
152
  args["noInit"] = opts[:no_init] if opts.key?(:no_init)
@@ -152,8 +154,6 @@ module DaggerRuby
152
154
  chain_operation("build", args)
153
155
  end
154
156
 
155
-
156
-
157
157
  def import(source, opts = {})
158
158
  args = { "source" => source.is_a?(DaggerObject) ? source.id : source }
159
159
  args["tag"] = opts[:tag] if opts[:tag]
@@ -164,7 +164,10 @@ module DaggerRuby
164
164
  def terminal(opts = {})
165
165
  args = {}
166
166
  args["cmd"] = opts[:cmd] if opts[:cmd]
167
- args["experimentalPrivilegedNesting"] = opts[:experimental_privileged_nesting] if opts.key?(:experimental_privileged_nesting)
167
+ if opts.key?(:experimental_privileged_nesting)
168
+ args["experimentalPrivilegedNesting"] =
169
+ opts[:experimental_privileged_nesting]
170
+ end
168
171
  args["insecureRootCapabilities"] = opts[:insecure_root_capabilities] if opts.key?(:insecure_root_capabilities)
169
172
 
170
173
  if args.empty?
@@ -234,7 +237,6 @@ module DaggerRuby
234
237
  chain_operation("withoutExposedPort", args)
235
238
  end
236
239
 
237
-
238
240
  def directory(path, opts = {})
239
241
  args = { "path" => path }
240
242
  args["expand"] = opts[:expand] if opts.key?(:expand)
@@ -247,7 +249,6 @@ module DaggerRuby
247
249
  get_object("file", File, args)
248
250
  end
249
251
 
250
-
251
252
  def stdout
252
253
  get_scalar("stdout")
253
254
  end
@@ -355,7 +356,7 @@ module DaggerRuby
355
356
  end
356
357
 
357
358
  def sync
358
- get_scalar("id") # Force execution by getting ID
359
+ get_scalar("id") # Force execution by getting ID
359
360
  self
360
361
  end
361
362
 
@@ -378,10 +379,10 @@ module DaggerRuby
378
379
  when NilClass
379
380
  "null"
380
381
  when Array
381
- "[#{value.map { |v| format_value(v) }.join(', ')}]"
382
+ "[#{value.map { |v| format_value(v) }.join(", ")}]"
382
383
  when Hash
383
384
  formatted_pairs = value.map { |k, v| "#{k}: #{format_value(v)}" }
384
- "{ #{formatted_pairs.join(', ')} }"
385
+ "{ #{formatted_pairs.join(", ")} }"
385
386
  when DaggerObject
386
387
  value.id
387
388
  else
@@ -52,11 +52,11 @@ module DaggerRuby
52
52
  klass.new(new_query, @client)
53
53
  end
54
54
 
55
- def get_object_array(field, klass, args = {})
55
+ def get_object_array(field, klass, _args = {})
56
56
  query = @query_builder.build_query_with_selection(field)
57
57
 
58
58
  array_field = query.selections.find { |s| s.field == field }
59
- array_field.select("id") if array_field
59
+ array_field&.select("id")
60
60
 
61
61
  result = @client.execute(query)
62
62
  ids = extract_array_from_result(result, field)
@@ -111,9 +111,15 @@ module DaggerRuby
111
111
 
112
112
  def terminal(opts = {})
113
113
  args = {}
114
- args["container"] = opts[:container].is_a?(DaggerObject) ? opts[:container].id : opts[:container] if opts[:container]
114
+ if opts[:container]
115
+ args["container"] =
116
+ opts[:container].is_a?(DaggerObject) ? opts[:container].id : opts[:container]
117
+ end
115
118
  args["cmd"] = opts[:cmd] if opts[:cmd]
116
- args["experimentalPrivilegedNesting"] = opts[:experimental_privileged_nesting] if opts.key?(:experimental_privileged_nesting)
119
+ if opts.key?(:experimental_privileged_nesting)
120
+ args["experimentalPrivilegedNesting"] =
121
+ opts[:experimental_privileged_nesting]
122
+ end
117
123
  args["insecureRootCapabilities"] = opts[:insecure_root_capabilities] if opts.key?(:insecure_root_capabilities)
118
124
 
119
125
  if args.empty?
@@ -152,10 +158,10 @@ module DaggerRuby
152
158
  when NilClass
153
159
  "null"
154
160
  when Array
155
- "[#{value.map { |v| format_value(v) }.join(', ')}]"
161
+ "[#{value.map { |v| format_value(v) }.join(", ")}]"
156
162
  when Hash
157
163
  formatted_pairs = value.map { |k, v| "#{k}: #{format_value(v)}" }
158
- "{ #{formatted_pairs.join(', ')} }"
164
+ "{ #{formatted_pairs.join(", ")} }"
159
165
  when DaggerObject
160
166
  value.id
161
167
  else
@@ -75,10 +75,10 @@ module DaggerRuby
75
75
  when NilClass
76
76
  "null"
77
77
  when Array
78
- "[#{value.map { |v| format_value(v) }.join(', ')}]"
78
+ "[#{value.map { |v| format_value(v) }.join(", ")}]"
79
79
  when Hash
80
80
  formatted_pairs = value.map { |k, v| "#{k}: #{format_value(v)}" }
81
- "{ #{formatted_pairs.join(', ')} }"
81
+ "{ #{formatted_pairs.join(", ")} }"
82
82
  when DaggerObject
83
83
  value.id
84
84
  else
@@ -15,7 +15,7 @@ module DaggerRuby
15
15
 
16
16
  def chain_operation(field, args = {})
17
17
  new_query = QueryBuilder.new(@root_field)
18
- new_query.instance_variable_set(:@operation_chain, @operation_chain + [ { field: field, args: args } ])
18
+ new_query.instance_variable_set(:@operation_chain, @operation_chain + [{ field: field, args: args }])
19
19
  new_query.instance_variable_set(:@variables, @variables.dup)
20
20
  new_query
21
21
  end
@@ -66,11 +66,11 @@ module DaggerRuby
66
66
 
67
67
  if @operation_chain.length > 1
68
68
  result << " { "
69
- @operation_chain[1..-1].each do |op|
69
+ @operation_chain[1..].each do |op|
70
70
  result << "#{op[:field]}#{format_arguments(op[:args])} { "
71
71
  end
72
72
  result << field
73
- result << " }" * @operation_chain.length
73
+ result << (" }" * @operation_chain.length)
74
74
  else
75
75
  result << " { #{field} }"
76
76
  end
@@ -81,7 +81,7 @@ module DaggerRuby
81
81
  def format_arguments(args)
82
82
  return "" if args.empty?
83
83
 
84
- "(#{args.map { |key, value| "#{key}: #{format_value(value)}" }.join(', ')})"
84
+ "(#{args.map { |key, value| "#{key}: #{format_value(value)}" }.join(", ")})"
85
85
  end
86
86
 
87
87
  def format_value(value)
@@ -97,12 +97,12 @@ module DaggerRuby
97
97
  when NilClass
98
98
  "null"
99
99
  when Array
100
- "[#{value.map { |v| format_value(v) }.join(', ')}]"
100
+ "[#{value.map { |v| format_value(v) }.join(", ")}]"
101
101
  when Hash
102
102
  if value[:type] && value[:value]
103
103
  value[:value].to_s
104
104
  else
105
- "{#{value.map { |k, v| "#{k}: #{format_value(v)}" }.join(', ')}}"
105
+ "{#{value.map { |k, v| "#{k}: #{format_value(v)}" }.join(", ")}}"
106
106
  end
107
107
  else
108
108
  value.to_s
@@ -110,15 +110,15 @@ module DaggerRuby
110
110
  end
111
111
 
112
112
  def escape_string(str)
113
- str.gsub(/["\\\n\r\t]/) do |c|
114
- case c
115
- when '"' then '\\"'
116
- when "\\" then "\\\\"
117
- when "\n" then '\\n'
118
- when "\r" then '\\r'
119
- when "\t" then '\\t'
120
- end
121
- end
113
+ escape_map = {
114
+ '"' => '\\"',
115
+ "\\" => "\\\\",
116
+ "\n" => '\\n',
117
+ "\r" => '\\r',
118
+ "\t" => '\\t',
119
+ }
120
+
121
+ str.gsub(/["\\\n\r\t]/) { |c| escape_map[c] }
122
122
  end
123
123
  end
124
124
  end
@@ -46,11 +46,11 @@ module DaggerRuby
46
46
  args = {}
47
47
  args["kill"] = opts[:kill] if opts.key?(:kill)
48
48
 
49
- if args.empty?
50
- query = @query_builder.build_query_with_selection("stop")
51
- else
52
- query = @query_builder.build_query_with_selection("stop(#{format_arguments(args)})")
53
- end
49
+ query = if args.empty?
50
+ @query_builder.build_query_with_selection("stop")
51
+ else
52
+ @query_builder.build_query_with_selection("stop(#{format_arguments(args)})")
53
+ end
54
54
 
55
55
  result = @client.execute(query)
56
56
  extract_value_from_result(result, "stop")
@@ -61,11 +61,11 @@ module DaggerRuby
61
61
  args["ports"] = opts[:ports] if opts[:ports]
62
62
  args["random"] = opts[:random] if opts.key?(:random)
63
63
 
64
- if args.empty?
65
- query = @query_builder.build_query_with_selection("up")
66
- else
67
- query = @query_builder.build_query_with_selection("up(#{format_arguments(args)})")
68
- end
64
+ query = if args.empty?
65
+ @query_builder.build_query_with_selection("up")
66
+ else
67
+ @query_builder.build_query_with_selection("up(#{format_arguments(args)})")
68
+ end
69
69
 
70
70
  result = @client.execute(query)
71
71
  extract_value_from_result(result, "up")
@@ -99,10 +99,10 @@ module DaggerRuby
99
99
  when NilClass
100
100
  "null"
101
101
  when Array
102
- "[#{value.map { |v| format_value(v) }.join(', ')}]"
102
+ "[#{value.map { |v| format_value(v) }.join(", ")}]"
103
103
  when Hash
104
104
  formatted_pairs = value.map { |k, v| "#{k}: #{format_value(v)}" }
105
- "{ #{formatted_pairs.join(', ')} }"
105
+ "{ #{formatted_pairs.join(", ")} }"
106
106
  when DaggerObject
107
107
  value.id
108
108
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaggerRuby
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/dagger_ruby.rb CHANGED
@@ -25,14 +25,14 @@ module DaggerRuby
25
25
  require "open3"
26
26
 
27
27
  # Get the current script and its arguments
28
- script = $0
28
+ script = $PROGRAM_NAME
29
29
  args = ARGV
30
30
 
31
31
  # Construct the command that dagger should run
32
- ruby_cmd = [ "ruby", script, *args ].join(" ")
32
+ ruby_cmd = ["ruby", script, *args].join(" ")
33
33
 
34
34
  # Run dagger with our command
35
- cmd = [ "dagger", "run", ruby_cmd ].join(" ")
35
+ cmd = ["dagger", "run", ruby_cmd].join(" ")
36
36
 
37
37
  # Execute the command
38
38
  exec(cmd)
metadata CHANGED
@@ -1,14 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dagger_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gaurav Tiwari
8
+ - Claude Sonnet 4 + GPT-4
8
9
  bindir: exe
9
10
  cert_chain: []
10
11
  date: 1980-01-02 00:00:00.000000000 Z
11
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: base64
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
12
27
  - !ruby/object:Gem::Dependency
13
28
  name: json
14
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,21 +39,22 @@ dependencies:
24
39
  - !ruby/object:Gem::Version
25
40
  version: '2.6'
26
41
  - !ruby/object:Gem::Dependency
27
- name: base64
42
+ name: logger
28
43
  requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
45
  - - "~>"
31
46
  - !ruby/object:Gem::Version
32
- version: '0.1'
47
+ version: '1.4'
33
48
  type: :runtime
34
49
  prerelease: false
35
50
  version_requirements: !ruby/object:Gem::Requirement
36
51
  requirements:
37
52
  - - "~>"
38
53
  - !ruby/object:Gem::Version
39
- version: '0.1'
40
- description: A Ruby SDK for Dagger that provides a simple interface to build and deploy
41
- applications
54
+ version: '1.4'
55
+ description: DaggerRuby provides a fluent, idiomatic Ruby interface to Dagger's container-based
56
+ CI/CD engine. Define build pipelines programmatically with Ruby instead of YAML.
57
+ Features lazy execution, caching, secrets, and service orchestration.
42
58
  email:
43
59
  - gaurav@gauravtiwari.co.uk
44
60
  executables: []
@@ -64,14 +80,14 @@ files:
64
80
  - lib/dagger_ruby/secret.rb
65
81
  - lib/dagger_ruby/service.rb
66
82
  - lib/dagger_ruby/version.rb
67
- homepage: https://github.com/boring-build/dagger-ruby
83
+ homepage: https://github.com/boringcache/dagger_ruby
68
84
  licenses:
69
85
  - MIT
70
86
  metadata:
71
87
  allowed_push_host: https://rubygems.org
72
- homepage_uri: https://github.com/boring-build/dagger-ruby
73
- source_code_uri: https://github.com/boring-build/dagger-ruby
74
- changelog_uri: https://github.com/boring-build/dagger-ruby/blob/main/CHANGELOG.md
88
+ homepage_uri: https://github.com/boringcache/dagger_ruby
89
+ source_code_uri: https://github.com/boringcache/dagger_ruby
90
+ changelog_uri: https://github.com/boringcache/dagger_ruby/blob/main/CHANGELOG.md
75
91
  rubygems_mfa_required: 'true'
76
92
  rdoc_options: []
77
93
  require_paths:
@@ -89,5 +105,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
105
  requirements: []
90
106
  rubygems_version: 3.6.9
91
107
  specification_version: 4
92
- summary: A Ruby SDK for Dagger
108
+ summary: A Ruby SDK for Dagger - build powerful CI/CD pipelines using Ruby
93
109
  test_files: []