e2b 0.2.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.
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module E2B
4
+ class DefaultBuildLogger
5
+ DEFAULT_LEVEL = "info"
6
+ LEVEL_ORDER = {
7
+ "debug" => 0,
8
+ "info" => 1,
9
+ "warn" => 2,
10
+ "error" => 3
11
+ }.freeze
12
+
13
+ def initialize(min_level: nil, io: $stdout)
14
+ @min_level = min_level || DEFAULT_LEVEL
15
+ @io = io
16
+ @start_time = nil
17
+ end
18
+
19
+ def logger(log_entry)
20
+ case log_entry
21
+ when Models::TemplateLogEntryStart
22
+ @start_time = Time.now
23
+ when Models::TemplateLogEntryEnd
24
+ @start_time = nil
25
+ else
26
+ return if LEVEL_ORDER.fetch(log_entry.level, LEVEL_ORDER[DEFAULT_LEVEL]) < LEVEL_ORDER[@min_level]
27
+
28
+ @io.puts(format_log_line(log_entry))
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def format_log_line(log_entry)
35
+ elapsed = if @start_time
36
+ format("%0.1fs", Time.now - @start_time).ljust(5)
37
+ else
38
+ "0.0s ".ljust(5)
39
+ end
40
+ timestamp = log_entry.timestamp&.strftime("%H:%M:%S")
41
+ level = log_entry.level.upcase.ljust(5)
42
+ "#{elapsed} | #{timestamp} #{level} #{log_entry.message}"
43
+ end
44
+ end
45
+
46
+ class << self
47
+ def default_build_logger(min_level: nil, io: $stdout)
48
+ build_logger = DefaultBuildLogger.new(min_level: min_level, io: io)
49
+ build_logger.method(:logger).to_proc
50
+ end
51
+ end
52
+ end
data/lib/e2b/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module E2B
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/e2b.rb CHANGED
@@ -7,17 +7,30 @@
7
7
  require_relative "e2b/version"
8
8
  require_relative "e2b/errors"
9
9
  require_relative "e2b/configuration"
10
+ require_relative "e2b/sandbox_helpers"
11
+ require_relative "e2b/ready_cmd"
12
+ require_relative "e2b/dockerfile_parser"
13
+ require_relative "e2b/template_logger"
10
14
 
11
15
  # API layer
12
16
  require_relative "e2b/api/http_client"
17
+ require_relative "e2b/paginator"
13
18
 
14
19
  # Models
20
+ require_relative "e2b/models/build_info"
21
+ require_relative "e2b/models/build_status_reason"
15
22
  require_relative "e2b/models/sandbox_info"
23
+ require_relative "e2b/models/snapshot_info"
24
+ require_relative "e2b/models/template_build_status_response"
25
+ require_relative "e2b/models/template_log_entry"
26
+ require_relative "e2b/models/template_tag"
27
+ require_relative "e2b/models/template_tag_info"
16
28
  require_relative "e2b/models/process_result"
17
29
  require_relative "e2b/models/entry_info"
18
30
 
19
31
  # Services
20
32
  require_relative "e2b/services/base_service"
33
+ require_relative "e2b/services/live_streamable"
21
34
  require_relative "e2b/services/command_handle"
22
35
  require_relative "e2b/services/commands"
23
36
  require_relative "e2b/services/filesystem"
@@ -28,6 +41,7 @@ require_relative "e2b/services/git"
28
41
  # Core classes
29
42
  require_relative "e2b/sandbox"
30
43
  require_relative "e2b/client"
44
+ require_relative "e2b/template"
31
45
 
32
46
  # E2B SDK for Ruby
33
47
  #
@@ -58,6 +72,8 @@ require_relative "e2b/client"
58
72
  #
59
73
  # @see https://e2b.dev/docs E2B Documentation
60
74
  module E2B
75
+ ALL_TRAFFIC = "0.0.0.0/0"
76
+
61
77
  class << self
62
78
  # @return [Configuration, nil] Global configuration
63
79
  attr_accessor :configuration
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: e2b
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tao Luo
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-03-12 00:00:00.000000000 Z
10
+ date: 2026-03-13 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: faraday
@@ -43,6 +43,34 @@ dependencies:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
45
  version: '1.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: base64
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.2'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.2'
60
+ - !ruby/object:Gem::Dependency
61
+ name: ostruct
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.6'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.6'
46
74
  - !ruby/object:Gem::Dependency
47
75
  name: rake
48
76
  requirement: !ruby/object:Gem::Requirement
@@ -101,18 +129,32 @@ files:
101
129
  - lib/e2b/api/http_client.rb
102
130
  - lib/e2b/client.rb
103
131
  - lib/e2b/configuration.rb
132
+ - lib/e2b/dockerfile_parser.rb
104
133
  - lib/e2b/errors.rb
134
+ - lib/e2b/models/build_info.rb
135
+ - lib/e2b/models/build_status_reason.rb
105
136
  - lib/e2b/models/entry_info.rb
106
137
  - lib/e2b/models/process_result.rb
107
138
  - lib/e2b/models/sandbox_info.rb
139
+ - lib/e2b/models/snapshot_info.rb
140
+ - lib/e2b/models/template_build_status_response.rb
141
+ - lib/e2b/models/template_log_entry.rb
142
+ - lib/e2b/models/template_tag.rb
143
+ - lib/e2b/models/template_tag_info.rb
144
+ - lib/e2b/paginator.rb
145
+ - lib/e2b/ready_cmd.rb
108
146
  - lib/e2b/sandbox.rb
147
+ - lib/e2b/sandbox_helpers.rb
109
148
  - lib/e2b/services/base_service.rb
110
149
  - lib/e2b/services/command_handle.rb
111
150
  - lib/e2b/services/commands.rb
112
151
  - lib/e2b/services/filesystem.rb
113
152
  - lib/e2b/services/git.rb
153
+ - lib/e2b/services/live_streamable.rb
114
154
  - lib/e2b/services/pty.rb
115
155
  - lib/e2b/services/watch_handle.rb
156
+ - lib/e2b/template.rb
157
+ - lib/e2b/template_logger.rb
116
158
  - lib/e2b/version.rb
117
159
  homepage: https://github.com/ya-luotao/e2b-ruby
118
160
  licenses: