Class: Jcsv::Dimensions
- Inherits:
-
Object
- Object
- Jcsv::Dimensions
- Defined in:
- lib/dimensions.rb
Instance Attribute Summary collapse
-
#dimensions ⇒ Object
readonly
Returns the value of attribute dimensions.
-
#dimensions_names ⇒ Object
readonly
Returns the value of attribute dimensions_names.
-
#rank ⇒ Object
readonly
Returns the value of attribute rank.
Instance Method Summary collapse
-
#[](name) ⇒ Object
————————————————————————————.
-
#[]=(dim_name, label) ⇒ Object
————————————————————————————.
-
#add_label(dim_name, label) ⇒ Object
————————————————————————————.
-
#dimension(name) ⇒ Object
————————————————————————————.
-
#each ⇒ Object
————————————————————————————.
-
#initialize(dimensions_names) ⇒ Dimensions
constructor
———————————————————————————— dimensions is an array of column names that will be used as dimensions ————————————————————————————.
-
#labels(dim_name) ⇒ Object
————————————————————————————.
-
#length(dim_name) ⇒ Object
(also: #size)
————————————————————————————.
-
#shape ⇒ Object
————————————————————————————.
Constructor Details
#initialize(dimensions_names) ⇒ Dimensions
dimensions is an array of column names that will be used as dimensions
178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/dimensions.rb', line 178 def initialize(dimensions_names) @dimensions_names = dimensions_names @rank = @dimensions_names.size @dimensions = Hash.new @dimensions_names.each do |dim_name| @dimensions[dim_name] = Dimension.new(dim_name) end end |
Instance Attribute Details
#dimensions ⇒ Object (readonly)
Returns the value of attribute dimensions.
171 172 173 |
# File 'lib/dimensions.rb', line 171 def dimensions @dimensions end |
#dimensions_names ⇒ Object (readonly)
Returns the value of attribute dimensions_names.
170 171 172 |
# File 'lib/dimensions.rb', line 170 def dimensions_names @dimensions_names end |
#rank ⇒ Object (readonly)
Returns the value of attribute rank.
172 173 174 |
# File 'lib/dimensions.rb', line 172 def rank @rank end |
Instance Method Details
#[](name) ⇒ Object
258 259 260 |
# File 'lib/dimensions.rb', line 258 def[](name) @dimensions[name] end |
#[]=(dim_name, label) ⇒ Object
242 243 244 |
# File 'lib/dimensions.rb', line 242 def[]=(dim_name, label) add_label(dim_name, label) end |
#add_label(dim_name, label) ⇒ Object
226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/dimensions.rb', line 226 def add_label(dim_name, label) should_reset = @dimensions[dim_name].add_label(label) @dimensions[dim_name].reset if should_reset (@dimensions_names.index(dim_name)...@dimensions_names.size).each do |i| name = @dimensions_names[i] @dimensions[name].reset end if should_reset end |
#dimension(name) ⇒ Object
250 251 252 |
# File 'lib/dimensions.rb', line 250 def dimension(name) @dimensions[name] end |
#each ⇒ Object
266 267 268 269 270 271 272 |
# File 'lib/dimensions.rb', line 266 def each @dimensions_names.each do |name| yield @dimensions[name] end end |
#labels(dim_name) ⇒ Object
204 205 206 |
# File 'lib/dimensions.rb', line 204 def labels(dim_name) @dimensions[dim_name].labels end |
#length(dim_name) ⇒ Object Also known as: size
194 195 196 |
# File 'lib/dimensions.rb', line 194 def length(dim_name) @dimensions[dim_name].labels.size end |
#shape ⇒ Object
212 213 214 215 216 217 218 219 220 |
# File 'lib/dimensions.rb', line 212 def shape sh = Array.new @dimensions_names.each do |dim_name| sh << length(dim_name) end sh end |