Sha256: 6a59c9fb921b23df1e4f2f3a43e74abb120ea6f90f2dfd55b8aca9c5d4022962

Contents?: true

Size: 1.18 KB

Versions: 32

Compression:

Stored size: 1.18 KB

Contents

module GridGenerator
  class FaceParser
    COLOURS = { 
      'w' => '#ffffff',
      'y' => '#ffff00',
      'b' => '#0000ff',
      'g' => '#00ff00',
      'r' => '#ff0000',
      'o' => '#ffb000',
      'gr' => '#808080',
      'br' => '#804000',
      's' => '#8080ff',
      'l' => '#80ff80',
      'p' => '#800080', 
      'pi' => '#ff8080',
      'fu' => "#f0f0f0", # face up
      'ff' => "#d0d0d0", # face front
      'fr' => "#b0b0b0"  # face right
    } 
  
    OPACITY = {
      full: 1,
      faded: 0.4
    }
  
    def initialize(string)
      @string = string
    end

    def single?
      !@string.include?("\\n")
    end
  
    attr_reader :string

    def parse
      if single?
        parse_char(string)
      else
        parse_array(string)
      end
    end
  
    def parse_char(char)
      if char == '-'
        nil
      else
        colour = COLOURS[char.downcase]
        opacity = OPACITY[(/[[:upper:]]/.match(char) ? :full : :faded)]
        { colour: colour, opacity: opacity }
      end
    end

    def parse_array(str)
      str.split(/\\n/).map do |line|
        line.split(',').map(&:strip).map do |col|
          parse_char(col)
        end
      end 
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
grid_generator-0.2.24 lib/grid_generator/face_parser.rb
grid_generator-0.2.23 lib/grid_generator/face_parser.rb
grid_generator-0.2.22 lib/grid_generator/face_parser.rb
grid_generator-0.2.21 lib/grid_generator/face_parser.rb
grid_generator-0.2.20 lib/grid_generator/face_parser.rb
grid_generator-0.2.19 lib/grid_generator/face_parser.rb
grid_generator-0.2.18 lib/grid_generator/face_parser.rb
grid_generator-0.2.17 lib/grid_generator/face_parser.rb
grid_generator-0.2.16 lib/grid_generator/face_parser.rb
grid_generator-0.2.15 lib/grid_generator/face_parser.rb
grid_generator-0.2.14 lib/grid_generator/face_parser.rb
grid_generator-0.2.13 lib/grid_generator/face_parser.rb
grid_generator-0.2.12 lib/grid_generator/face_parser.rb
grid_generator-0.2.11 lib/grid_generator/face_parser.rb
grid_generator-0.2.10 lib/grid_generator/face_parser.rb
grid_generator-0.2.9 lib/grid_generator/face_parser.rb
grid_generator-0.2.8 lib/grid_generator/face_parser.rb
grid_generator-0.2.7 lib/grid_generator/face_parser.rb
grid_generator-0.2.6 lib/grid_generator/face_parser.rb
grid_generator-0.2.5 lib/grid_generator/face_parser.rb