Class: BDDSM::Describe
- Inherits:
-
Object
- Object
- BDDSM::Describe
- Defined in:
- lib/bddsm/describe.rb
Instance Attribute Summary collapse
-
#memoized_lets ⇒ Object
readonly
Returns the value of attribute memoized_lets.
Instance Method Summary collapse
-
#initialize(title, &block) ⇒ Describe
constructor
A new instance of Describe.
- #it ⇒ Object
- #let(name) ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(title, &block) ⇒ Describe
Returns a new instance of Describe.
5 6 7 8 9 |
# File 'lib/bddsm/describe.rb', line 5 def initialize(title, &block) @title = title @block = block @memoized_lets = {} end |
Instance Attribute Details
#memoized_lets ⇒ Object (readonly)
Returns the value of attribute memoized_lets.
3 4 5 |
# File 'lib/bddsm/describe.rb', line 3 def memoized_lets @memoized_lets end |
Instance Method Details
#it ⇒ Object
15 16 17 |
# File 'lib/bddsm/describe.rb', line 15 def it(&) Execution.new(describe: self, &).run end |
#let(name) ⇒ Object
19 20 21 22 23 |
# File 'lib/bddsm/describe.rb', line 19 def let(name, &) singleton_class.instance_eval { attr_accessor name.to_sym } unless respond_to?(name.to_sym) @memoized_lets[name] = instance_exec(&) instance_variable_set("@#{name}", @memoized_lets[name]) end |
#run ⇒ Object
11 12 13 |
# File 'lib/bddsm/describe.rb', line 11 def run instance_eval(&@block) end |