Sha256: a7edae45928f4cce24c49f15ae25938a4524f71212dacf66c3234f7a84e2eabe

Contents?: true

Size: 800 Bytes

Versions: 2

Compression:

Stored size: 800 Bytes

Contents

# frozen_string_literal: true

module MicroMicro
  module Collections
    class PropertiesCollection < BaseCollection
      # @return [Array<String>]
      def names
        @names ||= map(&:name).uniq.sort
      end

      # @return [MicroMicro::Collections::PropertiesCollection]
      def plain_text_properties
        self.class.new(select(&:plain_text_property?))
      end

      # @return [Hash{Symbol => Array<String, Hash>}]
      def to_h
        group_by(&:name).symbolize_keys.deep_transform_values(&:value)
      end

      # @return [MicroMicro::Collections::PropertiesCollection]
      def url_properties
        self.class.new(select(&:url_property?))
      end

      # @return [Array<String, Hash>]
      def values
        @values ||= map(&:value).uniq
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
micromicro-2.0.1 lib/micro_micro/collections/properties_collection.rb
micromicro-2.0.0 lib/micro_micro/collections/properties_collection.rb