Sha256: 131965abfe5f6f820928b964cddf0a0954c94362355b349619c3a4e1bf5f51b0
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
# frozen_string_literal: true require_relative 'data_table' class DataList #private_class_method :new attr_writer :list def initialize(objects) #self.sel_objects = [] self.list = objects #self.objects_list @observers = [] end def add_observer(observer) @observers.append(observer) end def remove_observer(observer) @observers.delete(observer) end def notify @observers.each { |observer| observer.on_datalist_changed(get_data) } end # def select(number) # #raise ArgumentError, "arg 'number' not Integer" if number.class != Integer # sel_objects.append(number) # end def select_elem(number) self.sel_object = number end # очистить массив выборки # def clear_select # self.sel_objects = [] # end # def get_selected # return [] if sel_objects.empty? # list_id=[] # sel_objects.each do |i| # list_id.append(list[i].id) # end # list_id # end def selected_id list[sel_object].id end def get_data index_id=0 dt = list.inject([]) do |res, object| row=[index_id] row.append(*table_fields(object)) index_id+=1 res<<row end DataTable.new(dt) end def replace_objects(objects) self.list = objects.dup notify end protected def get_names end def table_fields(object) [] end private attr_accessor :sel_object attr_reader :list end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rafmycat-1.0.1 | lib/source/data/data_list.rb |
rafmycat-1.0.0 | lib/source/data/data_list.rb |