Sha256: f2abb216fe6c329b79d04e730efb6ec80bfcaf094445eb1cac27535caf494789
Contents?: true
Size: 1.08 KB
Versions: 9
Compression:
Stored size: 1.08 KB
Contents
# encoding: UTF-8 require 'hashie' require_relative './enum' # # A class to model the number of times an expectation should be respected. # @author:: Nayyara Samuel (mailto: nayyara.samuel@opower.com) # module MockServer::Model # Enum for boolean values since Ruby does not have this by default class Boolean < Enum def allowed_values [true, false] end end # Model for times class class Times < Hashie::Dash include Hashie::Extensions::MethodAccess include Hashie::Extensions::IgnoreUndeclared include Hashie::Extensions::Coercion property :remaining_times, default: 0 property :unlimited, default: false coerce_key :unlimited, Boolean end # DSL methods related to times module DSL def unlimited Times.new(unlimited: true) end def once Times.new(remaining_times: 1) end def exactly(num) Times.new(remaining_times: num) end def at_least(num) Times.new(remaining_times: num, unlimited: true) end def times(&_) obj = once yield obj if block_given? obj end end end
Version data entries
9 entries across 9 versions & 1 rubygems