class ShinyColors::Unit

Attributes

color[R]
key_name[R]
name[R]
name_jp[R]

Public Class Methods

all() click to toggle source
# File lib/shinycolors/unit.rb, line 19
def all
  data.map do |key, values|
    values.delete(:idols)
    values[:key_name] = key
    new(**values)
  end
end
data() click to toggle source
# File lib/shinycolors/unit.rb, line 44
def data
  YAML.load_file('./data/idol.yml').deep_symbolize_keys!
end
find(name) click to toggle source
# File lib/shinycolors/unit.rb, line 31
def find(name)
  h = data[name]
  raise(NotFoundError) if h.nil?

  h.delete(:idols)
  h[:key_name] = name
  new(**h)
end
names() click to toggle source
# File lib/shinycolors/unit.rb, line 27
def names
  data.keys
end
new(name:, name_jp:, color:, key_name:) click to toggle source
# File lib/shinycolors/unit.rb, line 9
def initialize(name:, name_jp:, color:, key_name:)
  @name = name
  @name_jp = name_jp
  @color = color
  @key_name = key_name
end
sample() click to toggle source
# File lib/shinycolors/unit.rb, line 40
def sample
  all.sample
end

Public Instance Methods

display() click to toggle source
# File lib/shinycolors/unit.rb, line 53
    def display
      puts <<~TEXT
                  名前: #{name}
        名前(カタカナ): #{name_jp}
        ユニットカラー: #{color}
      TEXT
    end
idols() click to toggle source
# File lib/shinycolors/unit.rb, line 49
def idols
  Unit.data[key_name][:idols].keys.map { |key_name| Idol.find(key_name) }
end