Class: Vedeu::Dimension
- Inherits:
-
Object
- Object
- Vedeu::Dimension
- Defined in:
- lib/vedeu/geometry/dimension.rb
Overview
A Dimension is either the height or width of an entity.
Instance Attribute Summary collapse
- #d ⇒ Fixnum|NilClass readonly protected
- #d_dn ⇒ Fixnum|NilClass readonly protected
- #default ⇒ Fixnum|NilClass readonly protected
- #dn ⇒ Fixnum|NilClass readonly protected
Class Method Summary collapse
Instance Method Summary collapse
- #_d ⇒ Fixnum private
- #_dn ⇒ Fixnum private
- #centred? ⇒ Boolean private
- #centred_d ⇒ Fixnum private
- #centred_dn ⇒ Fixnum private
- #d1 ⇒ Fixnum
- #d2 ⇒ Fixnum
- #defaults ⇒ Hash<Symbol => Boolean> private
- #dimension ⇒ Array<Fixnum> private
-
#initialize(attributes = {}) ⇒ Vedeu::Dimension
constructor
Returns a new instance of Vedeu::Dimension.
- #length ⇒ Fixnum|NilClass private
- #length? ⇒ Boolean private
- #maximised? ⇒ Boolean private
- #options ⇒ Hash<Symbol => Boolean> private
- #pair ⇒ Array<Fixnum>
Constructor Details
#initialize(attributes = {}) ⇒ Vedeu::Dimension
Returns a new instance of Vedeu::Dimension.
21 22 23 24 25 26 27 |
# File 'lib/vedeu/geometry/dimension.rb', line 21 def initialize(attributes = {}) @d = attributes[:d] @dn = attributes[:dn] @d_dn = attributes[:d_dn] @default = attributes[:default] = attributes.fetch(:options, {}) end |
Instance Attribute Details
#d ⇒ Fixnum|NilClass (readonly, protected)
48 49 50 |
# File 'lib/vedeu/geometry/dimension.rb', line 48 def d @d end |
#d_dn ⇒ Fixnum|NilClass (readonly, protected)
56 57 58 |
# File 'lib/vedeu/geometry/dimension.rb', line 56 def d_dn @d_dn end |
#default ⇒ Fixnum|NilClass (readonly, protected)
60 61 62 |
# File 'lib/vedeu/geometry/dimension.rb', line 60 def default @default end |
#dn ⇒ Fixnum|NilClass (readonly, protected)
52 53 54 |
# File 'lib/vedeu/geometry/dimension.rb', line 52 def dn @dn end |
Class Method Details
.pair(attributes = {}) ⇒ Array<Fixnum>
8 9 10 |
# File 'lib/vedeu/geometry/dimension.rb', line 8 def self.pair(attributes = {}) new(attributes).pair end |
Instance Method Details
#_d ⇒ Fixnum (private)
113 114 115 |
# File 'lib/vedeu/geometry/dimension.rb', line 113 def _d d || 1 end |
#_dn ⇒ Fixnum (private)
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/vedeu/geometry/dimension.rb', line 118 def _dn if dn dn elsif d.nil? && d_dn d_dn elsif d && d_dn (d + d_dn) - 1 else default end end |
#centred? ⇒ Boolean (private)
98 99 100 |
# File 'lib/vedeu/geometry/dimension.rb', line 98 def centred? [:centred] end |
#centred_d ⇒ Fixnum (private)
103 104 105 |
# File 'lib/vedeu/geometry/dimension.rb', line 103 def centred_d (default / 2) - (length / 2) end |
#centred_dn ⇒ Fixnum (private)
108 109 110 |
# File 'lib/vedeu/geometry/dimension.rb', line 108 def centred_dn (default / 2) + (length / 2) end |
#d1 ⇒ Fixnum
30 31 32 |
# File 'lib/vedeu/geometry/dimension.rb', line 30 def d1 dimension.first < 1 ? 1 : dimension.first end |
#d2 ⇒ Fixnum
35 36 37 |
# File 'lib/vedeu/geometry/dimension.rb', line 35 def d2 dimension.last end |
#defaults ⇒ Hash<Symbol => Boolean> (private)
145 146 147 148 149 150 |
# File 'lib/vedeu/geometry/dimension.rb', line 145 def defaults { centred: false, maximised: false, } end |
#dimension ⇒ Array<Fixnum> (private)
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/vedeu/geometry/dimension.rb', line 65 def dimension @dimension = if maximised? [1, default] elsif centred? && length? [centred_d, centred_dn] else [_d, _dn] end end |
#length ⇒ Fixnum|NilClass (private)
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/vedeu/geometry/dimension.rb', line 84 def length if d && dn (d..dn).size elsif d_dn d_dn elsif default default end end |
#length? ⇒ Boolean (private)
79 80 81 |
# File 'lib/vedeu/geometry/dimension.rb', line 79 def length? default && length end |
#maximised? ⇒ Boolean (private)
135 136 137 |
# File 'lib/vedeu/geometry/dimension.rb', line 135 def maximised? [:maximised] end |
#options ⇒ Hash<Symbol => Boolean> (private)
140 141 142 |
# File 'lib/vedeu/geometry/dimension.rb', line 140 def defaults.merge!() end |
#pair ⇒ Array<Fixnum>
40 41 42 |
# File 'lib/vedeu/geometry/dimension.rb', line 40 def pair dimension end |