Sha256: fc345e268907dc77bb64a231b6aa32bb873cf67074b2655aa3026825ca51e5cf

Contents?: true

Size: 793 Bytes

Versions: 2

Compression:

Stored size: 793 Bytes

Contents

module Nineteen
  module Eighty
    module Two
      class Spectrum
        CHARACTERS = YAML.load_file File.join File.dirname(__FILE__), '..', '..', '..', '..', 'config', 'characters.yml'

        def self.[] *text
        #  require "pry" ; binding.pry
          a = []
          text.each do |t|
            a += Spectrum.linify(t.chars.map { |c| Spectrum.get(c) })
          end

          a
        end

        def self.get key
          key = ' ' unless CHARACTERS[key]
          CHARACTERS[key].map { |b| Spectrum.bits(b) }
        end

        def self.bits number
          (0..7).map do |i|
            number[i]
          end.reverse
        end

        def self.linify *list
          Matrix.columns(list.first).to_a.map { |l| l.flatten }
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nineteen-eighty-two-0.1.5 lib/nineteen/eighty/two/spectrum.rb
nineteen-eighty-two-0.1.4 lib/nineteen/eighty/two/spectrum.rb