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