Sha256: 0ea842231bb0fe41759646b0b6a68dd82d1805a3fbd0dac5b1862079dc225771

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

module Vedeu

  module Presentation

    # Provides colour related presentation behaviour.
    #
    module Colour

      include Vedeu::Repositories::Parent
      include Vedeu::Presentation::Colour::Background
      include Vedeu::Presentation::Colour::Foreground

      # @return [Vedeu::Colours::Colour]
      def colour
        @_colour ||= if @colour
                       Vedeu::Colours::Colour.coerce(@colour)

                     elsif self.is_a?(Vedeu::Views::Char) && name
                       Vedeu::Colours::Colour.coerce(interface.colour)

                     elsif self.respond_to?(:named_parent) && name
                       Vedeu::Colours::Colour.coerce(named_parent.colour)

                     elsif parent && present?(parent.colour)
                       Vedeu::Colours::Colour.coerce(parent.colour)

                     else
                       Vedeu::Colours::Colour.new

                     end
      end

      # Allows the setting of the model's colour by coercing the given
      # value into a Vedeu::Colours::Colour.
      #
      # @return [Vedeu::Colours::Colour]
      def colour=(value)
        @_colour = @colour = Vedeu::Colours::Colour.coerce(value)
      end

    end # Colour

  end # Presentation

end # Vedeu

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vedeu-0.7.4 lib/vedeu/presentation/colour.rb
vedeu-0.7.3 lib/vedeu/presentation/colour.rb
vedeu-0.7.2 lib/vedeu/presentation/colour.rb
vedeu-0.7.1 lib/vedeu/presentation/colour.rb
vedeu-0.7.0 lib/vedeu/presentation/colour.rb