Module: Beni::BuildConfig
- Defined in:
- lib/beni/build_config.rb
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-versionmarker Vendor::Tarball#prepare stamps must match, so a stale tree never seeds a config for the wrong release. - .staged_version(mruby_dir) ⇒ Object
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 |