Class: YNelson::ZzPoint
- Inherits:
-
Object
- Object
- YNelson::ZzPoint
- Defined in:
- lib/y_nelson/zz_point.rb
Overview
A pointer to a Zz object. A glorified variable, basically.
Instance Attribute Summary collapse
-
#zz ⇒ Object
Returns the value of attribute zz.
Instance Method Summary collapse
-
#along(dimension = default_dimension) ⇒ Object
Quasi-delegation to zz.
- #bud_negward(value = nil, along: default_dimension) ⇒ Object
- #bud_posward(value = nil, along: default_dimension) ⇒ Object (also: #bud)
- #default_dimension ⇒ Object
-
#initialize(zz: nil) ⇒ ZzPoint
constructor
Initialization has one optional argument :zz – zz object at which the point should be initialized.
- #negward(along: default_dimension) ⇒ Object (also: #n)
- #negward_neighbor(along: default_dimension) ⇒ Object (also: #N)
- #posward(along: default_dimension) ⇒ Object (also: #p)
- #posward_neighbor(along: default_dimension) ⇒ Object (also: #P)
- #rank(along: default_dimension) ⇒ Object
- #redefine_negward_neighbor(neighbor, along: default_dimension) ⇒ Object (also: #N!)
- #redefine_posward_neighbor(neighbor, along: default_dimension) ⇒ Object (also: #P!)
- #rewind_negward(along: default_dimension) ⇒ Object
- #rewind_negward!(along: default_dimension) ⇒ Object
-
#rewind_posward(along: default_dimension) ⇒ Object
Rewinders.
-
#rewind_posward!(along: default_dimension) ⇒ Object
Simple unconditional rewind.
- #step_negward(along: default_dimension) ⇒ Object (also: #n!)
-
#step_posward(along: default_dimension) ⇒ Object
(also: #step, #p!)
Walkers.
Constructor Details
#initialize(zz: nil) ⇒ ZzPoint
Initialization has one optional argument :zz – zz object at which the point should be initialized.
11 12 13 |
# File 'lib/y_nelson/zz_point.rb', line 11 def initialize( zz: nil ) @zz = zz end |
Instance Attribute Details
#zz ⇒ Object
Returns the value of attribute zz.
6 7 8 |
# File 'lib/y_nelson/zz_point.rb', line 6 def zz @zz end |
Instance Method Details
#along(dimension = default_dimension) ⇒ Object
Quasi-delegation to zz
29 30 31 |
# File 'lib/y_nelson/zz_point.rb', line 29 def along dimension=default_dimension zz.along dimension end |
#bud_negward(value = nil, along: default_dimension) ⇒ Object
68 69 70 |
# File 'lib/y_nelson/zz_point.rb', line 68 def bud_negward( value=nil, along: default_dimension ) negward( along: along ).bud value end |
#bud_posward(value = nil, along: default_dimension) ⇒ Object Also known as: bud
63 64 65 |
# File 'lib/y_nelson/zz_point.rb', line 63 def bud_posward( value=nil, along: default_dimension ) posward( along: along ).bud value end |
#default_dimension ⇒ Object
25 |
# File 'lib/y_nelson/zz_point.rb', line 25 def default_dimension; YNelson.primary_dimension end |
#negward(along: default_dimension) ⇒ Object Also known as: n
38 39 40 |
# File 'lib/y_nelson/zz_point.rb', line 38 def negward( along: default_dimension ) along( along ).negward_side end |
#negward_neighbor(along: default_dimension) ⇒ Object Also known as: N
48 49 50 |
# File 'lib/y_nelson/zz_point.rb', line 48 def negward_neighbor( along: default_dimension ) negward( along: along ).neighbor end |
#posward(along: default_dimension) ⇒ Object Also known as: p
33 34 35 |
# File 'lib/y_nelson/zz_point.rb', line 33 def posward( along: default_dimension ) along( along ).posward end |
#posward_neighbor(along: default_dimension) ⇒ Object Also known as: P
43 44 45 |
# File 'lib/y_nelson/zz_point.rb', line 43 def posward_neighbor( along: default_dimension ) posward( along: along ).neighbor end |
#rank(along: default_dimension) ⇒ Object
72 73 74 |
# File 'lib/y_nelson/zz_point.rb', line 72 def rank( along: default_dimension ) zz.get_rank along: along end |
#redefine_negward_neighbor(neighbor, along: default_dimension) ⇒ Object Also known as: N!
58 59 60 |
# File 'lib/y_nelson/zz_point.rb', line 58 def redefine_negward_neighbor( neighbor, along: default_dimension ) negward( along: along ) << neighbor end |
#redefine_posward_neighbor(neighbor, along: default_dimension) ⇒ Object Also known as: P!
53 54 55 |
# File 'lib/y_nelson/zz_point.rb', line 53 def redefine_posward_neighbor( neighbor, along: default_dimension ) posward( along: along ) << neighbor end |
#rewind_negward(along: default_dimension) ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/y_nelson/zz_point.rb', line 110 def rewind_negward( along: default_dimension ) origin = zz if block_given? then loop { yield zz return :end unless negward_neighbor( along: along ).is_a_zz? return :loop if negward_neighbor( along: along ) == origin step_negward along: along } else Enumerator.new { |y| loop { y << zz break :end unless negward_neighbor( along: along ).is_a_zz? break :loop if negward_neighbor( along: along ) == origin step_negward along: along } } end end |
#rewind_negward!(along: default_dimension) ⇒ Object
133 134 135 |
# File 'lib/y_nelson/zz_point.rb', line 133 def rewind_negward!( along: default_dimension ) rewind_negward( along: along ) {} end |
#rewind_posward(along: default_dimension) ⇒ Object
Rewinders
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/y_nelson/zz_point.rb', line 93 def rewind_posward( along: default_dimension ) origin = zz if block_given? then loop { yield zz return :end unless posward_neighbor( along: along ).is_a_zz? return :loop if posward_neighbor( along: along ) == origin step_posward along: along } else # no block given, returns enumerator Enumerator.new { |y| loop { y << zz break :end unless posward_neighbor( along: along ).is_a_zz? break :loop if posward_neighbor( along: along ) == origin step_posward along: along } } end end |
#rewind_posward!(along: default_dimension) ⇒ Object
Simple unconditional rewind.
129 130 131 |
# File 'lib/y_nelson/zz_point.rb', line 129 def rewind_posward!( along: default_dimension ) rewind_posward( along: along ) {} # implemented using empty block end |
#step_negward(along: default_dimension) ⇒ Object Also known as: n!
85 86 87 88 |
# File 'lib/y_nelson/zz_point.rb', line 85 def step_negward( along: default_dimension ) neighbor = negward_neighbor along: along if neighbor.is_a_zz? then @zz = neighbor else false end end |
#step_posward(along: default_dimension) ⇒ Object Also known as: step, p!
Walkers
78 79 80 81 |
# File 'lib/y_nelson/zz_point.rb', line 78 def step_posward( along: default_dimension ) neighbor = posward_neighbor along: along if neighbor.is_a_zz? then @zz = neighbor else false end end |