Class: Everywhere::Builders::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/everywhere/builders/base.rb

Overview

What the three platform builders (Android, Ios, Desktop) genuinely share. Deliberately thin: stage, preflight!, stamp! and collect are structurally parallel across the three but mean different things on each platform, so they stay where they are. Only identity (name, bundle id), the environment reader and the stage marker live here.

Direct Known Subclasses

Android, Desktop, Ios

Constant Summary collapse

STAGE_MARKER =

Marks which template a work dir was staged from. A gem upgrade can add, rename or delete template files, and staging merges rather than wipes (see #stage), so a stale Kotlin file from an older template would keep compiling in. Version mismatch = wipe once, then merge as usual.

".everywhere-template"

Instance Method Summary collapse

Constructor Details

#initialize(config:, root:, target: nil, template_dir: nil) ⇒ Base

target is a build target like "ios-arm64" or "android-arm64"; the desktop builder has none, and everything below reads it as nil.



21
22
23
24
25
26
# File 'lib/everywhere/builders/base.rb', line 21

def initialize(config:, root:, target: nil, template_dir: nil)
  @config = config
  @root = root
  @target = target
  @template_dir = template_dir
end