Sha256: e3b3b90da7c6af29df48bd7a7a2c2ae146432071156daf40f4e168a5af6f81e8

Contents?: true

Size: 726 Bytes

Versions: 1

Compression:

Stored size: 726 Bytes

Contents

# frozen_string_literal: true
require_relative 'kktix_api'
require_relative 'event'

module KktixEvent
  # Single organization on KKTIX
  class Organization
    attr_reader :slug, :name, :uri, :events

    def initialize(organization_data, slug: nil)
      update_info(organization_data, slug)
    end

    def self.find(slug = nil)
      events = KktixEvent::KktixApi.events(slug: slug)
      new(events, slug: slug)
    end

    private

    def update_info(events, slug)
      unless slug.nil?
        author = events.first[:author]
        @slug = slug
        @name = author[:name]
        @uri = author[:uri]
      end
      @events = events.map do |event_data|
        Event.new(event_data)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kktix_api-1.0.0 lib/kktix-api/organization.rb