Module: Noaidi

Defined in:
lib/noaidi.rb,
lib/noaidi/dsl.rb,
lib/noaidi/fun.rb,
lib/noaidi/module.rb,
lib/noaidi/matcher.rb,
lib/noaidi/version.rb,
lib/noaidi/matchmaker.rb,
lib/noaidi/idioms/match.rb

Defined Under Namespace

Modules: DSL, Idioms Classes: Fun, Matcher, Matchmaker, Module

Constant Summary collapse

ReturnContractViolation =
Class.new(StandardError)
NoBlockGiven =
Class.new(StandardError)
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.compile_match(&block) ⇒ Object



6
7
8
# File 'lib/noaidi/matchmaker.rb', line 6

def self.compile_match(&block)
  Matchmaker.new(block)
end

.match(value, &block) ⇒ Object



2
3
4
# File 'lib/noaidi/matchmaker.rb', line 2

def self.match(value, &block)
  compile_match(&block).call(value)
end

.module(&block) ⇒ Object



10
11
12
13
14
# File 'lib/noaidi.rb', line 10

def self.module(&block)
  Noaidi::Module.new.tap do |mod|
    mod.instance_eval(&block)
  end
end