Sha256: 140019874121ec284b55601d3405679b8f08651887279edb20efe091d9bf5839

Contents?: true

Size: 1.76 KB

Versions: 4

Compression:

Stored size: 1.76 KB

Contents

module Vedeu

  # A Cell represents a single square of the terminal.
  #
  class Cell

    # @!attribute [r] background
    # @return [NilClass|String]
    attr_reader :background

    # @!attribute [r] foreground
    # @return [NilClass|String]
    attr_reader :foreground

    # @!attribute [r] style
    # @return [NilClass|Array<Symbol|String>|Symbol|String]
    attr_reader :style

    # @!attribute [r] value
    # @return [NilClass|String]
    attr_reader :value

    # @!attribute [r] x
    # @return [NilClass|Fixnum]
    attr_reader :x

    # @!attribute [r] y
    # @return [NilClass|Fixnum]
    attr_reader :y

    # Returns a new instance of Vedeu::Cell.
    #
    # @param attributes [Hash<Symbol => Array<Symbol|String>, Fixnum, String, Symbol]
    # @option attributes background [NilClass|String]
    # @option attributes foreground [NilClass|String]
    # @option attributes style [NilClass|Array<Symbol|String>|Symbol|String]
    # @option attributes value [NilClass|String]
    # @option attributes x [NilClass|Fixnum]
    # @option attributes y [NilClass|Fixnum]
    # @return [Vedeu::Cell]
    def initialize(attributes = {})
      @background = attributes[:background]
      @foreground = attributes[:foreground]
      @style      = attributes[:style]
      @value      = attributes[:value]
      @x          = attributes[:x]
      @y          = attributes[:y]
    end

    # @param other [Vedeu::Cell]
    # @return [Boolean]
    def eql?(other)
      self.class == other.class      &&
      background == other.background &&
      foreground == other.foreground &&
      style      == other.style      &&
      value      == other.value      &&
      x          == other.x          &&
      y          == other.y
    end
    alias_method :==, :eql?

  end # Cell

end # Vedeu

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.4.13 lib/vedeu/models/cell.rb
vedeu-0.4.12 lib/vedeu/models/cell.rb
vedeu-0.4.11 lib/vedeu/models/cell.rb
vedeu-0.4.10 lib/vedeu/models/cell.rb