shinycolors 0.2.0 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/shinycolors.rb +2 -0
 - data/lib/shinycolors/idol.rb +52 -22
 - data/lib/shinycolors/unit.rb +28 -9
 - data/lib/shinycolors/version.rb +3 -1
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b4ca290bfd88521be3afbf4e5a663352c5eb1a248cf282f73eaa986bd1e96ed7
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 90b3d3312787e27a31dcb31701a8052f2022d549f7aaf7fc1b889dec3a753b32
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bcc2f621e5fc48f4bf814cdfb9cb788a7fe2e5a8a6dea5b9f7b9dfa5257496bc3a527f382dab56c8ccf40f2752ab2b43d04f6d37f307cfeec64255372c4516bf
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 040263b42c68ee81ced35435287235b97d88d5cbe5e89abbdf5beb5592ba6a4625ffa7049d00b77332d2609933569ebd0b491e2b7c058d18983aa0aa63839bcf
         
     | 
    
        data/lib/shinycolors.rb
    CHANGED
    
    
    
        data/lib/shinycolors/idol.rb
    CHANGED
    
    | 
         @@ -1,56 +1,86 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'yaml'
         
     | 
| 
       2 
4 
     | 
    
         
             
            require 'active_support/core_ext/hash'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require './lib/shinycolors/unit'
         
     | 
| 
       3 
6 
     | 
    
         | 
| 
       4 
7 
     | 
    
         
             
            module ShinyColors
         
     | 
| 
       5 
8 
     | 
    
         
             
              class Idol
         
     | 
| 
       6 
9 
     | 
    
         
             
                class NotFoundError < StandardError; end
         
     | 
| 
       7 
10 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                def initialize(name:, cv:, age:,  
     | 
| 
      
 11 
     | 
    
         
            +
                def initialize(name:, cv:, age:, blood_type:, birthday:, zodiac_sign:, dominant_hand:,
         
     | 
| 
      
 12 
     | 
    
         
            +
                               birthplace:, hobby:, special_skills:, nickname_key:, nickname_kana:, key_name:)
         
     | 
| 
       9 
13 
     | 
    
         
             
                  @name = name
         
     | 
| 
       10 
14 
     | 
    
         
             
                  @cv = cv
         
     | 
| 
       11 
15 
     | 
    
         
             
                  @age = age
         
     | 
| 
       12 
     | 
    
         
            -
                  @ 
     | 
| 
      
 16 
     | 
    
         
            +
                  @blood_type = blood_type
         
     | 
| 
       13 
17 
     | 
    
         
             
                  @birthday = birthday
         
     | 
| 
       14 
     | 
    
         
            -
                  @ 
     | 
| 
      
 18 
     | 
    
         
            +
                  @zodiac_sign = zodiac_sign
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @dominant_hand = dominant_hand
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @birthplace = birthplace
         
     | 
| 
      
 21 
     | 
    
         
            +
                  @hobby = hobby
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @special_skills = special_skills
         
     | 
| 
      
 23 
     | 
    
         
            +
                  @nickname_key = nickname_key
         
     | 
| 
      
 24 
     | 
    
         
            +
                  @nickname_kana = nickname_kana
         
     | 
| 
      
 25 
     | 
    
         
            +
                  @key_name = key_name
         
     | 
| 
       15 
26 
     | 
    
         
             
                end
         
     | 
| 
       16 
27 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
                attr_reader :name, :cv, :age, : 
     | 
| 
      
 28 
     | 
    
         
            +
                attr_reader :name, :cv, :age, :blood_type, :birthday, :zodiac_sign, :dominant_hand,
         
     | 
| 
      
 29 
     | 
    
         
            +
                            :birthplace, :hobby, :special_skills, :nickname_key, :nickname_kana, :key_name
         
     | 
| 
       18 
30 
     | 
    
         | 
| 
       19 
31 
     | 
    
         
             
                class << self
         
     | 
| 
       20 
32 
     | 
    
         
             
                  def all
         
     | 
| 
       21 
     | 
    
         
            -
                     
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                    end.deep_symbolize_keys!
         
     | 
| 
      
 33 
     | 
    
         
            +
                    data.map do |key, values|
         
     | 
| 
      
 34 
     | 
    
         
            +
                      values[:key_name] = key
         
     | 
| 
      
 35 
     | 
    
         
            +
                      new(**values)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
       26 
37 
     | 
    
         
             
                  end
         
     | 
| 
       27 
38 
     | 
    
         | 
| 
       28 
39 
     | 
    
         
             
                  def names
         
     | 
| 
       29 
     | 
    
         
            -
                     
     | 
| 
      
 40 
     | 
    
         
            +
                    data.keys
         
     | 
| 
       30 
41 
     | 
    
         
             
                  end
         
     | 
| 
       31 
42 
     | 
    
         | 
| 
       32 
43 
     | 
    
         
             
                  def nicknames
         
     | 
| 
       33 
     | 
    
         
            -
                     
     | 
| 
       34 
     | 
    
         
            -
                      values[: 
     | 
| 
      
 44 
     | 
    
         
            +
                    data.each_with_object({}) do |(fullname, values), result|
         
     | 
| 
      
 45 
     | 
    
         
            +
                      values[:nickname_key]&.each { |nickname| result.merge!({ nickname => fullname }) }
         
     | 
| 
       35 
46 
     | 
    
         
             
                    end
         
     | 
| 
       36 
47 
     | 
    
         
             
                  end
         
     | 
| 
       37 
48 
     | 
    
         | 
| 
       38 
49 
     | 
    
         
             
                  def find(name)
         
     | 
| 
       39 
     | 
    
         
            -
                    h =  
     | 
| 
      
 50 
     | 
    
         
            +
                    h = data[name]
         
     | 
| 
       40 
51 
     | 
    
         
             
                    raise(NotFoundError) if h.nil?
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    h[:key_name] = name
         
     | 
| 
       41 
54 
     | 
    
         
             
                    new(**h)
         
     | 
| 
       42 
55 
     | 
    
         
             
                  end
         
     | 
| 
       43 
56 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
                  def  
     | 
| 
       45 
     | 
    
         
            -
                     
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 57 
     | 
    
         
            +
                  def sample
         
     | 
| 
      
 58 
     | 
    
         
            +
                    all.sample
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  private
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  def data
         
     | 
| 
      
 64 
     | 
    
         
            +
                    return @data unless @data.nil?
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                    @data = YAML.load_file('./data/idol.yml').each_with_object({}) do |(_, values), result|
         
     | 
| 
      
 67 
     | 
    
         
            +
                      result.merge!(values['idols'])
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end.deep_symbolize_keys!
         
     | 
| 
       53 
69 
     | 
    
         
             
                  end
         
     | 
| 
       54 
70 
     | 
    
         
             
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                def ==(other)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  key_name == other.key_name
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                def nickname
         
     | 
| 
      
 77 
     | 
    
         
            +
                  nickname_kana
         
     | 
| 
      
 78 
     | 
    
         
            +
                end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                def unit_name
         
     | 
| 
      
 81 
     | 
    
         
            +
                  Unit.all.select do |unit|
         
     | 
| 
      
 82 
     | 
    
         
            +
                    unit.idols.include?(self)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  end.first.name
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
       55 
85 
     | 
    
         
             
              end
         
     | 
| 
       56 
86 
     | 
    
         
             
            end
         
     | 
    
        data/lib/shinycolors/unit.rb
    CHANGED
    
    | 
         @@ -1,34 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'yaml'
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
5 
     | 
    
         
             
            module ShinyColors
         
     | 
| 
       4 
6 
     | 
    
         
             
              class Unit
         
     | 
| 
       5 
7 
     | 
    
         
             
                class NotFoundError < StandardError; end
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                def initialize(name:, name_jp:, color:,  
     | 
| 
      
 9 
     | 
    
         
            +
                def initialize(name:, name_jp:, color:, key_name:)
         
     | 
| 
       8 
10 
     | 
    
         
             
                  @name = name
         
     | 
| 
       9 
11 
     | 
    
         
             
                  @name_jp = name_jp
         
     | 
| 
       10 
12 
     | 
    
         
             
                  @color = color
         
     | 
| 
       11 
     | 
    
         
            -
                  @ 
     | 
| 
      
 13 
     | 
    
         
            +
                  @key_name = key_name
         
     | 
| 
       12 
14 
     | 
    
         
             
                end
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                attr_reader :name, :name_jp, :color, : 
     | 
| 
      
 16 
     | 
    
         
            +
                attr_reader :name, :name_jp, :color, :key_name
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
18 
     | 
    
         
             
                class << self
         
     | 
| 
       17 
19 
     | 
    
         
             
                  def all
         
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                    data.map do |key, values|
         
     | 
| 
      
 21 
     | 
    
         
            +
                      values.delete(:idols)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      values[:key_name] = key
         
     | 
| 
      
 23 
     | 
    
         
            +
                      new(**values)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
       21 
25 
     | 
    
         
             
                  end
         
     | 
| 
       22 
26 
     | 
    
         | 
| 
       23 
27 
     | 
    
         
             
                  def names
         
     | 
| 
       24 
     | 
    
         
            -
                     
     | 
| 
      
 28 
     | 
    
         
            +
                    data.keys
         
     | 
| 
       25 
29 
     | 
    
         
             
                  end
         
     | 
| 
       26 
30 
     | 
    
         | 
| 
       27 
31 
     | 
    
         
             
                  def find(name)
         
     | 
| 
       28 
     | 
    
         
            -
                    h =  
     | 
| 
       29 
     | 
    
         
            -
                    raise( 
     | 
| 
      
 32 
     | 
    
         
            +
                    h = data[name]
         
     | 
| 
      
 33 
     | 
    
         
            +
                    raise(NotFoundError) if h.nil?
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    h.delete(:idols)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    h[:key_name] = name
         
     | 
| 
       30 
37 
     | 
    
         
             
                    new(**h)
         
     | 
| 
       31 
38 
     | 
    
         
             
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  def sample
         
     | 
| 
      
 41 
     | 
    
         
            +
                    all.sample
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  def data
         
     | 
| 
      
 45 
     | 
    
         
            +
                    YAML.load_file('./data/idol.yml').deep_symbolize_keys!
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                def idols
         
     | 
| 
      
 50 
     | 
    
         
            +
                  Unit.data[key_name][:idols].keys.map { |key_name| Idol.find(key_name) }
         
     | 
| 
       32 
51 
     | 
    
         
             
                end
         
     | 
| 
       33 
52 
     | 
    
         
             
              end
         
     | 
| 
       34 
53 
     | 
    
         
             
            end
         
     | 
    
        data/lib/shinycolors/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: shinycolors
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - iavivai
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-06-01 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: 'shinycolorsは「アイドルマスター シャイニーカラーズ」の情報をRubyで扱えるようにするためのgemです。
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
         @@ -37,7 +37,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       37 
37 
     | 
    
         
             
              requirements:
         
     | 
| 
       38 
38 
     | 
    
         
             
              - - ">="
         
     | 
| 
       39 
39 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                  version: 2. 
     | 
| 
      
 40 
     | 
    
         
            +
                  version: 2.5.0
         
     | 
| 
       41 
41 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       42 
42 
     | 
    
         
             
              requirements:
         
     | 
| 
       43 
43 
     | 
    
         
             
              - - ">="
         
     |