Module: Yuimaru

Defined in:
lib/yuimaru.rb,
lib/yuimaru/message.rb,
lib/yuimaru/version.rb,
lib/yuimaru/sequence.rb,
lib/yuimaru/dsl/default.rb,
lib/yuimaru/sequence/diagram.rb

Defined Under Namespace

Modules: Dsl Classes: Message, Sequence

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_envObject

Returns the value of attribute default_env.



8
9
10
# File 'lib/yuimaru.rb', line 8

def default_env
  @default_env
end

Class Method Details

.load_sequence(path, env: default_env) ⇒ Object



22
23
24
25
# File 'lib/yuimaru.rb', line 22

def load_sequence(path, env: default_env)
  seq = File.read(path)
  sequence(seq)
end

.method_missing(name) ⇒ Object



27
28
29
30
31
# File 'lib/yuimaru.rb', line 27

def method_missing(name, *)
  return super if /\A_+\z/ !~ name

  current << []
end

.sequence(seq, env: default_env) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/yuimaru.rb', line 10

def sequence(seq, env: default_env)
  add = -> (v) { current << v if v.is_a?(Yuimaru::Message) }
  trace_var(:$_, add)

  eval(seq, env)

  Sequence.new(current)
ensure
  untrace_var(:$_, add)
  reset
end