Module: RubyModKit

Extended by:
CoreExt::Eval, CoreExt::Load
Defined in:
lib/ruby_mod_kit.rb,
lib/ruby_mod_kit/cli.rb,
lib/ruby_mod_kit/memo.rb,
lib/ruby_mod_kit/node.rb,
lib/ruby_mod_kit/config.rb,
lib/ruby_mod_kit/feature.rb,
lib/ruby_mod_kit/mission.rb,
lib/ruby_mod_kit/version.rb,
lib/ruby_mod_kit/memo_pad.rb,
lib/ruby_mod_kit/corrector.rb,
lib/ruby_mod_kit/node/wrap.rb,
lib/ruby_mod_kit/generation.rb,
lib/ruby_mod_kit/offset_diff.rb,
lib/ruby_mod_kit/feature/type.rb,
lib/ruby_mod_kit/core_ext/eval.rb,
lib/ruby_mod_kit/core_ext/load.rb,
lib/ruby_mod_kit/node/def_node.rb,
lib/ruby_mod_kit/memo/ivar_memo.rb,
lib/ruby_mod_kit/node/base_node.rb,
lib/ruby_mod_kit/node/call_node.rb,
lib/ruby_mod_kit/node/begin_node.rb,
lib/ruby_mod_kit/feature/overload.rb,
lib/ruby_mod_kit/memo/method_memo.rb,
lib/ruby_mod_kit/memo/offset_memo.rb,
lib/ruby_mod_kit/node/symbol_node.rb,
lib/ruby_mod_kit/corrector_manager.rb,
lib/ruby_mod_kit/feature/type/yard.rb,
lib/ruby_mod_kit/node/program_node.rb,
lib/ruby_mod_kit/node/untyped_node.rb,
lib/ruby_mod_kit/memo/overload_memo.rb,
lib/ruby_mod_kit/memo/parameter_memo.rb,
lib/ruby_mod_kit/node/parameter_node.rb,
lib/ruby_mod_kit/memo/def_parent_memo.rb,
lib/ruby_mod_kit/node/def_parent_node.rb,
lib/ruby_mod_kit/node/statements_node.rb,
lib/ruby_mod_kit/feature/type/rbs_inline.rb,
lib/ruby_mod_kit/feature/type/check/arguments.rb,
lib/ruby_mod_kit/feature/type/type_attr_mission.rb,
lib/ruby_mod_kit/feature/overload/overload_mission.rb,
lib/ruby_mod_kit/feature/instance_variable_parameter.rb,
lib/ruby_mod_kit/feature/type/yard/type_return_mission.rb,
lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb,
lib/ruby_mod_kit/feature/type/yard/type_parameter_mission.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb,
lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb,
lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rb,
lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb,
lib/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rb,
lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb,
lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb

Overview

rbs_inline: enabled

Defined Under Namespace

Modules: CoreExt, Memo, Node Classes: CLI, Config, Corrector, CorrectorManager, Error, Feature, Generation, MemoPad, Mission, OffsetDiff, SyntaxError

Constant Summary collapse

VERSION =

: String

"0.0.6"

Constants included from CoreExt::Load

CoreExt::Load::LOADABLE_EXTS

Class Method Summary collapse

Methods included from CoreExt::Load

load, load_path, loaded_features, require, require_path

Methods included from CoreExt::Eval

eval

Class Method Details

.execute_file(file, *args, output: nil, config: nil) ⇒ void

This method returns an undefined value.

Parameters:

  • file (String)
  • args (String)
  • output (String, nil) (defaults to: nil)
  • config (Config, nil) (defaults to: nil)

rbs:

  • file: String

  • *args: String

  • output: String | nil

  • config: Config | nil

  • return: void



27
28
29
30
31
32
33
34
# File 'lib/ruby_mod_kit.rb', line 27

def execute_file(file, *args, output: nil, config: nil)
  rb_script = transpile_file(file, output: output, config: config)
  if output
    execute_rb_file(output, *args)
  else
    execute_rb(rb_script, *args)
  end
end

.execute_rb(rb_script, *args) ⇒ void

This method returns an undefined value.

Parameters:

  • rb_script (String)
  • args (String)

rbs:

  • rb_script: String

  • *args: String

  • return: void



91
92
93
94
# File 'lib/ruby_mod_kit.rb', line 91

def execute_rb(rb_script, *args)
  ARGV.replace(args)
  eval(rb_script, TOPLEVEL_BINDING) # rubocop:disable Security/Eval
end

.execute_rb_file(file, *args) ⇒ void

This method returns an undefined value.

Parameters:

  • file (String)
  • args (String)

rbs:

  • file: String

  • *args: String

  • return: void



73
74
75
# File 'lib/ruby_mod_kit.rb', line 73

def execute_rb_file(file, *args)
  system(RbConfig.ruby, file, *args)
end

.rb_path(path) ⇒ String

Parameters:

  • path (String)

Returns:

  • (String)

rbs:

  • path: String

  • return: String



81
82
83
# File 'lib/ruby_mod_kit.rb', line 81

def rb_path(path)
  path.sub(/(?:\.rbm)?$/, ".rb")
end

.transpile(src, filename: nil, config: nil) ⇒ String

Parameters:

  • src (String)
  • filename (String, nil) (defaults to: nil)
  • config (Config, nil) (defaults to: nil)

Returns:

  • (String)

rbs:

  • src: String

  • filename: String | nil

  • config: Config | nil

  • return: String



63
64
65
# File 'lib/ruby_mod_kit.rb', line 63

def transpile(src, filename: nil, config: nil)
  Generation.resolve(src, filename: filename, config: config).script
end

.transpile_file(file, output: nil, config: nil) ⇒ String

Parameters:

  • file (String)
  • output (String, IO, nil) (defaults to: nil)
  • config (Config, nil) (defaults to: nil)

Returns:

  • (String)

rbs:

  • file: String

  • output: String | IO | nil

  • config: Config | nil

  • return: String



44
45
46
47
48
49
50
51
52
53
# File 'lib/ruby_mod_kit.rb', line 44

def transpile_file(file, output: nil, config: nil)
  rb_script = transpile(File.read(file), filename: file, config: config)
  case output
  when IO
    output.write(rb_script)
  when String
    File.write(output, rb_script)
  end
  rb_script
end

.unify_type(type) ⇒ String

Parameters:

  • type (String)

Returns:

  • (String)

rbs:

  • type: String

  • return: String



100
101
102
# File 'lib/ruby_mod_kit.rb', line 100

def unify_type(type)
  type[/\A\(([^()]*)\)\z/, 1] || type
end