Module: Kernel

Defined in:
lib/carat/timer.rb,
lib/carat/ref.rb,
lib/carat/nack.rb,
lib/carat-dev/misc/1.rb,
lib/carat-dev/main/toplevel.rb,
lib/carat-dev/blankslate/blankslate.rb,
lib/carat-dev/association/association.rb,
lib/carat-dev/conditional/conditionals.rb,
lib/carat-dev/conditional/conditionals.rb

Overview

I was thinking of allowing for a multi block scenario.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.blank_slate_method_addedObject



33
# File 'lib/carat-dev/blankslate/blankslate.rb', line 33

alias_method :blank_slate_method_added, :method_added

.method_added(name) ⇒ Object



34
35
36
37
38
# File 'lib/carat-dev/blankslate/blankslate.rb', line 34

def method_added(name)
  blank_slate_method_added(name)
  return if self != Kernel
  Builder::BlankSlate.hide(name)
end

Instance Method Details

#>>(associate) ⇒ Object



20
21
22
# File 'lib/carat-dev/association/association.rb', line 20

def >>( associate )
  Association.new( self, associate )
end

#_else(&block) ⇒ Object



34
35
36
# File 'lib/carat-dev/conditional/conditionals.rb', line 34

def _else(&block)
  @condition.call(block) if @condition
end

#_if(exp, &block) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/carat-dev/conditional/conditionals.rb', line 18

def _if(exp, &block)
  else_block = callcc { |cont|
    @condition = cont
    return exp.true?(&block)
  }
  @condition = nil
  exp.false?(&else_block)
end

#_unless(exp, &block) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/carat-dev/conditional/conditionals.rb', line 26

def _unless(exp, &block)
  else_block = callcc { |cont|
    @condition = cont
    return exp.false?(&block)
  }
  @condition = nil
  exp.true?(&else_block)
end

#iff(*exp_blks) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/carat-dev/conditional/conditionals.rb', line 64

def iff( *exp_blks )
  r = nil
  exp_blks.each_with_index{ |e,i| 
    if i % 2 == 0
      r = e.true?(&exp_blks[i+1]); break if e
    end
  }
  r
end

#nack(err = nil, *data, &ctrl) ⇒ Object



97
98
99
# File 'lib/carat/nack.rb', line 97

def nack(err=nil, *data, &ctrl)
  NackClass.new(err, *data, &ctrl)
end

#ref(x) ⇒ Object



28
29
30
# File 'lib/carat/ref.rb', line 28

def ref(x)
  Ref.new(x)
end

#timed {|timer| ... } ⇒ Object

Yields:

  • (timer)


94
95
96
97
98
# File 'lib/carat/timer.rb', line 94

def timed
  timer = Timer.new
  yield(timer)
  return timer.total_time
end

#toplevelObject

perhaps just call this top() ?



26
27
28
# File 'lib/carat-dev/main/toplevel.rb', line 26

def toplevel()
  TopLevelClass.instance
end

#unles(*exp_blks) ⇒ Object



73
74
75
76
77
78
79
80
81
# File 'lib/carat-dev/conditional/conditionals.rb', line 73

def unles( *exp_blks )
  r = nil
  exp_blks.each_with_index{ |e,i| 
    if i % 2 == 0
      r = e.false?(&exp_blks[i+1]); break if ! e
    end
  }
  r
end