class Webruby::Config

Attributes

append_file[RW]
build_dir[RW]
cflags[RW]
compile_mode[RW]
entrypoint[RW]
ldflags[RW]
loading_mode[RW]
output_name[RW]
selected_gemboxes[RW]
selected_gems[RW]
source_processor[RW]
static_libs[RW]

Public Class Methods

new() click to toggle source
# File lib/webruby/config.rb, line 7
def initialize
  @entrypoint = 'app/app.rb'
  @build_dir = 'build'
  @selected_gemboxes = ['default']
  @selected_gems = []
  @compile_mode = 'debug'   # debug or release
  @loading_mode = 2
  @output_name = 'webruby.js'
  @source_processor = :mrubymix
  @cflags = %w(-Wall -Werror-implicit-function-declaration -Wno-warn-absolute-paths) + [optimization_flag]
  @ldflags = []
  @static_libs = []
end

Public Instance Methods

gem(g) click to toggle source
# File lib/webruby/config.rb, line 26
def gem(g)
  selected_gems << g
end
gem_lines() click to toggle source
# File lib/webruby/config.rb, line 38
def gem_lines
  generate_conf_lines(selected_gems, 'gem')
end
gembox(gb) click to toggle source
# File lib/webruby/config.rb, line 30
def gembox(gb)
  selected_gemboxes << gb
end
gembox_lines() click to toggle source
# File lib/webruby/config.rb, line 34
def gembox_lines
  generate_conf_lines(selected_gemboxes, 'gembox')
end
optimization_flag() click to toggle source
# File lib/webruby/config.rb, line 21
def optimization_flag
  return compile_mode if compile_mode.start_with? "-"
  compile_mode == "release" ? "-O2" : "-O0"
end

Private Instance Methods

format_gem(gem) click to toggle source
# File lib/webruby/config.rb, line 48
def format_gem(gem)
  return gem if gem.is_a?(Hash)
  "'#{gem}'"
end
generate_conf_lines(arr, option) click to toggle source
# File lib/webruby/config.rb, line 43
def generate_conf_lines(arr, option)
  arr.map { |i| "conf.#{option}(#{format_gem(i)})"
  }.inject { |a, b| "#{a}\n  #{b}" }
end