class JobSpec::Role
Public Class Methods
add_expectations(role_expectations)
click to toggle source
# File lib/job_spec/role.rb, line 12 def self.add_expectations(role_expectations) role_expectations.each do |role_expectation| role = @definitions[role_expectation[:name]] role_expectation[:expectations].each do |e| role.expected(e[:expectation], e[:description]) end end nil end
definition(name, &block)
click to toggle source
# File lib/job_spec/role.rb, line 3 def self.definition(name, &block) @definitions ||= {} @definitions[name] = new(name, &block) end
definitions()
click to toggle source
# File lib/job_spec/role.rb, line 8 def self.definitions @definitions.values end
new(name, &block)
click to toggle source
# File lib/job_spec/role.rb, line 23 def initialize(name, &block) @name = name @expectations = [] instance_eval(&block) if block_given? end
Public Instance Methods
description(description = nil)
click to toggle source
# File lib/job_spec/role.rb, line 33 def description(description = nil) @description = @description || description end
expectations()
click to toggle source
# File lib/job_spec/role.rb, line 49 def expectations @expectations end
expected(expectation, description = nil)
click to toggle source
# File lib/job_spec/role.rb, line 45 def expected(expectation, description = nil) @expectations << { expectation: expectation, description: description, group: nil } end
include(role_expectations, as:)
click to toggle source
# File lib/job_spec/role.rb, line 41 def include(role_expectations, as:) @expectations.concat(role_expectations.to_a.map { |expectation| expectation.merge(group: as) }) end
name()
click to toggle source
# File lib/job_spec/role.rb, line 29 def name @name end
salary(range = nil)
click to toggle source
# File lib/job_spec/role.rb, line 37 def salary(range = nil) @salary = @salary || range end