Sha256: 2acec89898f590ae912f1e33377f88554e88b7c014dc01ba4e22656d64c3fa52
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
require 'forwardable' module Parliament class Response include Enumerable extend Forwardable attr_reader :nodes def_delegators :@nodes, :size, :each, :select, :map, :select!, :map!, :count, :length, :[], :empty? def initialize(nodes) @nodes = nodes end def filter(*types) filtered_objects = Array.new(types.size) { [] } unless types.empty? @nodes.each do |node| type_index = types.index(node.type) filtered_objects[type_index] << node unless type_index.nil? end end result = build_responses(filtered_objects) types.size == 1 ? result.first : result end def build_responses(filtered_objects) result = [] filtered_objects.each do |objects| result << Parliament::Response.new(objects) end result end def sort_by(*parameters) Parliament::Utils.sort_by({ list: @nodes, parameters: parameters }) end def reverse_sort_by(*parameters) Parliament::Utils.reverse_sort_by({ list: @nodes, parameters: parameters }) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
parliament-ruby-0.5.19 | lib/parliament/response.rb |
parliament-ruby-0.5.18 | lib/parliament/response.rb |