class Prospectus::ItemDSL
DSL for wrapping eval of item files
Public Class Methods
new(item, params)
click to toggle source
# File lib/prospectus/item.rb, line 50 def initialize(item, params) @item = item @options = params end
Public Instance Methods
actual(&block)
click to toggle source
# File lib/prospectus/item.rb, line 67 def actual(&block) state(:@actual, &block) end
deps(&block)
click to toggle source
# File lib/prospectus/item.rb, line 71 def deps(&block) dsl = ListDSL.new(@item.list, @options) dsl.instance_eval(&block) end
expected(&block)
click to toggle source
# File lib/prospectus/item.rb, line 63 def expected(&block) state(:@expected, &block) end
name(value)
click to toggle source
# File lib/prospectus/item.rb, line 55 def name(value) @item.instance_variable_set(:@name, value) end
noop()
click to toggle source
# File lib/prospectus/item.rb, line 59 def noop @item.noop end
Private Instance Methods
state(name, &block)
click to toggle source
# File lib/prospectus/item.rb, line 78 def state(name, &block) state = Prospectus::State.from_block(@options, &block) @item.instance_variable_set(name, state) rescue => e # rubocop:disable Style/RescueStandardError raise("Failed to set #{name} state for #{@item.name}: #{e.message}") end