Sha256: 4206ca14619f577499ce54c5067523713e3e8e337df7de1452f82c01ae09b562

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

module RubbishCode
    module DataListObserver
        def notify(data)
            raise 'not implemented'
        end
    end

    module DataListNotifier
        attr_accessor :data_list_observers

        def notify
            raise 'not implemented'
        end
    end

    class DataList 
        attr_accessor :list
        attr_private_accessor :selected_objects
        def initialize(list:)
            self.data_list_observers = []
            self.list = list
        end

        def select(index)
            selected_objects << index
        end

        def get_selected_objects
            (0...list.size)
                .filter { |x| selected_objects.include? x }
        end

        def get_names
            raise "Метод не реализован"
        end

        def get_data
            raise "Метод не реализован"
        end
    end

    class DataList
        include DataListNotifier

        def notify
            data_list_observers.each { |observer|
                observer.notify(self.get_data)
            }
        end

        def add_observer(observer)
            self.data_list_observers << observer
        end

        def remove_observer(observer)
            self.data_list_observers.delete(observer) 
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
Web_rubbish_code-1.0.2 lib/source/data_list.rb
Web_rubbish_code-1.0.1 lib/source/data_list.rb
Web_rubbish_code-1.0.0 lib/source/data_list.rb