Sha256: b68295a985c05be7113db15533201bc27256dc1ed82c08238d79eda87bdf4390

Contents?: true

Size: 1.2 KB

Versions: 11

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

require 'ehbrs_ruby_utils/bga/game'
require 'ehbrs_ruby_utils/bga/parsers/table'
require 'ehbrs_ruby_utils/bga/parsers/table/options'
require 'ehbrs_ruby_utils/bga/urls'
require 'eac_ruby_utils/core_ext'

module EhbrsRubyUtils
  module Bga
    class Table
      include ::EhbrsRubyUtils::Bga::Urls
      enable_simple_cache
      common_constructor :data

      SET_ITEMS = %i[options players].freeze

      ([:id] + ::EhbrsRubyUtils::Bga::Parsers::Table.fields.map(&:name) - SET_ITEMS)
        .each do |field|
        define_method field do
          data.fetch(field)
        end
      end

      # @return [Boolean]
      def game_conceded?
        game_conceded
      end

      # @return [Addressable::URI]
      def url
        table_url(id)
      end

      private

      # @return [EhbrsRubyUtils::Bga::Game]
      def game_uncached
        ::EhbrsRubyUtils::Bga::Game.new(game_code)
      end

      SET_ITEMS.each do |item|
        define_method "#{item}_uncached" do
          data.fetch(item).map do |item_data|
            self.class.const_get(item.to_s.singularize.camelize).new(self, item_data)
          end
        end
      end

      require_sub __FILE__
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ehbrs_ruby_utils-0.38.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.37.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.36.1 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.36.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.35.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.33.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.32.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.31.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.30.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.29.0 lib/ehbrs_ruby_utils/bga/table.rb
ehbrs_ruby_utils-0.28.0 lib/ehbrs_ruby_utils/bga/table.rb