Class: Bparity::Boundary::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/bparity/boundary.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDefinition

Returns a new instance of Definition.



44
45
46
47
48
49
# File 'lib/bparity/boundary.rb', line 44

def initialize
  @subjects = {}
  @externals = {}
  @canonicalization = {}
  @formal_config = {}
end

Instance Attribute Details

#canonicalizationObject (readonly)

Returns the value of attribute canonicalization.



42
43
44
# File 'lib/bparity/boundary.rb', line 42

def canonicalization
  @canonicalization
end

#driver_configObject (readonly)

Returns the value of attribute driver_config.



42
43
44
# File 'lib/bparity/boundary.rb', line 42

def driver_config
  @driver_config
end

#externalsObject (readonly)

Returns the value of attribute externals.



42
43
44
# File 'lib/bparity/boundary.rb', line 42

def externals
  @externals
end

#formal_configObject (readonly)

Returns the value of attribute formal_config.



42
43
44
# File 'lib/bparity/boundary.rb', line 42

def formal_config
  @formal_config
end

#subjectsObject (readonly)

Returns the value of attribute subjects.



42
43
44
# File 'lib/bparity/boundary.rb', line 42

def subjects
  @subjects
end

Instance Method Details

#canonicalizeObject



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

def canonicalize(&)
  CanonicalizationDsl.new(canonicalization).instance_eval(&)
end

#driver(name, **options) ⇒ Object



67
68
69
# File 'lib/bparity/boundary.rb', line 67

def driver(name, **options)
  @driver_config = { name: name.to_sym, **options }
end

#external(name, &block) ⇒ Object



57
58
59
60
61
# File 'lib/bparity/boundary.rb', line 57

def external(name, &block)
  item = External.new(name: name)
  item.instance_eval(&block) if block
  externals[name] = item
end

#formalObject



71
72
73
# File 'lib/bparity/boundary.rb', line 71

def formal(&)
  FormalDsl.new(formal_config).instance_eval(&)
end

#observe(name, &block) ⇒ Object



51
52
53
54
55
# File 'lib/bparity/boundary.rb', line 51

def observe(name, &block)
  subject = Subject.new(name: name)
  subject.instance_eval(&block) if block
  subjects[name] = subject
end