Module: Prebake
- Defined in:
- lib/prebake.rb,
lib/prebake/glibc.rb,
lib/prebake/hooks.rb,
lib/prebake/logger.rb,
lib/prebake/platform.rb,
lib/prebake/cache_key.rb,
lib/prebake/extractor.rb,
lib/prebake/backends/s3.rb,
lib/prebake/backends/base.rb,
lib/prebake/backends/http.rb,
lib/prebake/elf_inspector.rb,
lib/prebake/async_publisher.rb,
lib/prebake/backends/gemstash.rb,
lib/prebake/ext_builder_patch.rb,
lib/prebake/extension_validator.rb,
lib/prebake/backends/http_client.rb,
lib/prebake/platform_gem_builder.rb
Defined Under Namespace
Modules: AsyncPublisher, Backends, CacheKey, ElfInspector, ExtBuilderPatch, ExtensionValidator, Extractor, Glibc, Hooks, Logger, Platform
Classes: Error, PlatformGemBuilder
Constant Summary
collapse
- RUBY_ABI_VERSION =
major.minor only - ABI is stable across patch versions
"#{RbConfig::CONFIG['MAJOR']}.#{RbConfig::CONFIG['MINOR']}".freeze
- DEFAULT_HTTP_URL =
"https://gems.prebake.in"
Class Method Summary
collapse
Class Method Details
.backend ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/prebake.rb', line 30
def self.backend
return @backend if defined?(@backend_loaded)
@backend_mutex.synchronize do
return @backend if defined?(@backend_loaded)
@backend_loaded = true
@backend = load_backend
end
rescue Error => e
Logger.warn "Backend initialization failed: #{e.message}. Plugin disabled for this session."
@backend = nil
end
|
.backend=(backend) ⇒ Object
44
45
46
47
|
# File 'lib/prebake.rb', line 44
def self.backend=(backend)
@backend_loaded = true
@backend = backend
end
|
.backend_type ⇒ Object
68
69
70
|
# File 'lib/prebake.rb', line 68
def self.backend_type
ENV.fetch("PREBAKE_BACKEND", "http")
end
|
.enabled? ⇒ Boolean
14
15
16
|
# File 'lib/prebake.rb', line 14
def self.enabled?
ENV.fetch("PREBAKE_ENABLED", "true") != "false"
end
|
.max_glibc ⇒ Object
26
27
28
|
# File 'lib/prebake.rb', line 26
def self.max_glibc
ENV.fetch("PREBAKE_MAX_GLIBC", nil)
end
|
.push_enabled? ⇒ Boolean
18
19
20
|
# File 'lib/prebake.rb', line 18
def self.push_enabled?
enabled? && ENV.fetch("PREBAKE_PUSH_ENABLED", "false") == "true"
end
|
.reset! ⇒ Object
49
50
51
52
|
# File 'lib/prebake.rb', line 49
def self.reset!
remove_instance_variable(:@backend_loaded) if defined?(@backend_loaded)
remove_instance_variable(:@backend) if defined?(@backend)
end
|
.setup! ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/prebake.rb', line 54
def self.setup!
return unless enabled?
require_relative "prebake/ext_builder_patch"
Gem::Ext::Builder.prepend(ExtBuilderPatch)
require_relative "prebake/hooks"
Hooks.register!
Logger.info "Plugin active (backend: #{backend_type})"
rescue StandardError => e
Logger.warn "Failed to initialize: #{e.message}"
end
|
.skip_portability_check? ⇒ Boolean
22
23
24
|
# File 'lib/prebake.rb', line 22
def self.skip_portability_check?
ENV.fetch("PREBAKE_SKIP_PORTABILITY_CHECK", "false") == "true"
end
|