Class: Data_list
- Inherits:
-
Object
- Object
- Data_list
- Includes:
- Deep_dup
- Defined in:
- lib/models/data_list/data_list.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#count ⇒ Object
Returns the value of attribute count.
-
#data ⇒ Object
writeonly
data setter.
-
#index ⇒ Object
Returns the value of attribute index.
Instance Method Summary collapse
- #add_observer(observer) ⇒ Object
-
#clear_selected ⇒ Object
clear selected.
-
#deselect(number) ⇒ Object
deselect.
-
#get_data ⇒ Object
get_data.
-
#get_names ⇒ Object
get names (abstract).
-
#get_selected ⇒ Object
get selected ids.
-
#initialize(elements) ⇒ Data_list
constructor
constructor.
- #notify ⇒ Object
-
#retrieve_data ⇒ Object
pattern-method.
-
#select(number) ⇒ Object
select element id by number.
Methods included from Deep_dup
Constructor Details
#initialize(elements) ⇒ Data_list
constructor
9 10 11 12 13 14 |
# File 'lib/models/data_list/data_list.rb', line 9 def initialize(elements) self.data = elements self.selected = [] self.index = 1 self.observers = [] end |
Instance Attribute Details
#count ⇒ Object
Returns the value of attribute count.
6 7 8 |
# File 'lib/models/data_list/data_list.rb', line 6 def count @count end |
#data=(data) ⇒ Object
data setter
65 66 67 68 69 70 71 |
# File 'lib/models/data_list/data_list.rb', line 65 def data=(data) @data = {} data.each do |element| @data[index] = deep_dup(element) self.index += 1 end end |
#index ⇒ Object
Returns the value of attribute index.
6 7 8 |
# File 'lib/models/data_list/data_list.rb', line 6 def index @index end |
Instance Method Details
#add_observer(observer) ⇒ Object
80 81 82 |
# File 'lib/models/data_list/data_list.rb', line 80 def add_observer(observer) self.observers << observer end |
#clear_selected ⇒ Object
clear selected
37 38 39 |
# File 'lib/models/data_list/data_list.rb', line 37 def clear_selected self.selected = [] end |
#deselect(number) ⇒ Object
deselect
32 33 34 |
# File 'lib/models/data_list/data_list.rb', line 32 def deselect(number) self.selected.delete(number) if self.selected.include?(number) end |
#get_data ⇒ Object
get_data
55 56 57 58 59 60 61 62 |
# File 'lib/models/data_list/data_list.rb', line 55 def get_data() result = [] self.data.each do |key, value| row = build_row(key, value) result.append(row) end result end |
#get_names ⇒ Object
get names (abstract)
50 51 52 |
# File 'lib/models/data_list/data_list.rb', line 50 def get_names raise NotImplementedError, "Not implemented" end |
#get_selected ⇒ Object
get selected ids
23 24 25 26 27 28 29 |
# File 'lib/models/data_list/data_list.rb', line 23 def get_selected ids = [] self.selected.each do |key| ids << self.data[key].id end ids end |
#notify ⇒ Object
73 74 75 76 77 78 |
# File 'lib/models/data_list/data_list.rb', line 73 def notify observers.each do |observer| observer.set_table_params(self.get_names, self.count) observer.set_table_data(self.retrieve_data) end end |
#retrieve_data ⇒ Object
pattern-method
42 43 44 45 46 47 |
# File 'lib/models/data_list/data_list.rb', line 42 def retrieve_data() result = [] result << self.get_names result.concat(self.get_data) Data_table.new(result) end |
#select(number) ⇒ Object
select element id by number
17 18 19 20 |
# File 'lib/models/data_list/data_list.rb', line 17 def select(number) raise IndexError, "Index out of bounds" unless self.valid_index?(number) self.selected << number unless self.selected.include?(number) end |