Sha256: e2743c19a63403339fba3b9e2cada2a7b7773e5e765c90a897d5c8b8c5c1bb55

Contents?: true

Size: 1.53 KB

Versions: 4

Compression:

Stored size: 1.53 KB

Contents

# encoding: utf-8

require "inflecto"
require "ice_nine"

require_relative "assertion/dsl/caller"
require_relative "assertion/dsl/attribute"
require_relative "assertion/dsl/attributes"
require_relative "assertion/dsl/inversion"
require_relative "assertion/dsl/builder"

require_relative "assertion/invalid_error"
require_relative "assertion/translator"
require_relative "assertion/state"
require_relative "assertion/base"
require_relative "assertion/inversion"
require_relative "assertion/inverter"
require_relative "assertion/guard"

# The module declares:
#
# * assertions about objects
# * guards (validations) for objects
#
# @example Assertion
#   # config/locales/en.yml
#   # ---
#   # en:
#   #   assertion:
#   #     is_adult:
#   #       truthy: "%{name} is an adult (age %{age})"
#   #       falsey: "%{name} is a child (age %{age})"
#
#   IsAdult = Assertion.about :name, :age do
#     age >= 18
#   end
#
#   joe = OpenStruct.new(name: 'Joe', age: 13)
#   IsAdult[joe.to_h].validate!
#   # => #<Assertion::InvalidError @messages=["Joe is a child (age 13)"]>
#
#   jane = OpenStruct.new(name: 'Jane', age: 22)
#   IsAdult.not[jane.to_h].validate!
#   # => #<Assertion::InvalidError @messages=["Jane is an adult (age 22)"]
#
# @example Guard
#   AdultOnly = Assertion.guards :user do
#     IsAdult[user.to_h]
#   end
#
#   AdultOnly[joe]
#   # => #<Assertion::InvalidError @messages=["Joe is a child (age 13)"]>
#   AdultOnly[jane]
#   # => #<OpenStruct @name="Jane", @age=22>
#
# @api public
#
module Assertion

  extend DSL::Builder

end # module Assertion

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
assertion-0.2.5 lib/assertion.rb
assertion-0.2.4 lib/assertion.rb
assertion-0.2.3 lib/assertion.rb
assertion-0.2.2 lib/assertion.rb