Module: Beni::BuildConfig
- Defined in:
- lib/beni/build_config.rb,
sig/beni/build_config.rbs
Overview
Generates the consumer's editable mruby build config: a verbatim
copy of the staged mruby source's own build_config/default.rb —
the configured version's upstream default. Exposed as
rake beni:config by Beni::Tasks; the generated file belongs to
the consuming project and seeds further customization.
Class Method Summary collapse
-
.generate(dest, mruby_dir:, version:) ⇒ Object
Copy the staged source's default config to
dest, creating missing parent directories. -
.staged_default_config(mruby_dir, version) ⇒ Object
The staged source's upstream default config path, verified to be +version+'s: the
.beni-versionmarkerVendor::Tarball#preparestamps must match, so a stale tree never seeds a config for the wrong release. - .staged_version(mruby_dir) ⇒ Object
Instance Method Summary collapse
Class Method Details
.generate(dest, mruby_dir:, version:) ⇒ Object
Copy the staged source's default config to dest, creating
missing parent directories. Requires +version+'s mruby source
staged under mruby_dir and refuses to clobber an existing
(likely hand-tuned) config. Returns dest.
18 19 20 21 22 23 24 25 |
# File 'lib/beni/build_config.rb', line 18 def generate(dest, mruby_dir:, version:) raise Error, "[beni] #{dest} already exists — delete it first to regenerate" if File.exist?(dest) source = staged_default_config(mruby_dir, version) FileUtils.mkdir_p(File.dirname(dest)) FileUtils.cp(source, dest) dest end |
.staged_default_config(mruby_dir, version) ⇒ Object
The staged source's upstream default config path, verified to be
+version+'s: the .beni-version marker Vendor::Tarball#prepare
stamps must match, so a stale tree never seeds a config for the
wrong release.
31 32 33 34 35 36 37 38 |
# File 'lib/beni/build_config.rb', line 31 def staged_default_config(mruby_dir, version) source = File.join(mruby_dir, "build_config", "default.rb") return source if staged_version(mruby_dir) == version && File.exist?(source) raise Error, "[beni] mruby #{version}'s source is not staged at #{mruby_dir} — " \ "run `rake beni:vendor:setup` first" end |
.staged_version(mruby_dir) ⇒ Object
40 41 42 43 |
# File 'lib/beni/build_config.rb', line 40 def staged_version(mruby_dir) marker = File.join(mruby_dir, Vendor::Tarball::VERSION_MARKER) File.read(marker).strip if File.exist?(marker) end |
Instance Method Details
#self?.generate ⇒ String
3 |
# File 'sig/beni/build_config.rbs', line 3
def self?.generate: (String dest, mruby_dir: String, version: String) -> String
|
#self?.staged_default_config ⇒ String
5 |
# File 'sig/beni/build_config.rbs', line 5
def self?.staged_default_config: (String mruby_dir, String version) -> String
|
#self?.staged_version ⇒ String?
7 |
# File 'sig/beni/build_config.rbs', line 7
def self?.staged_version: (String mruby_dir) -> String?
|