Sha256: 74a9895e345a6dfc97332233efadad49767ebd6dc50a840ef5e043cde0dc2af9

Contents?: true

Size: 1.88 KB

Versions: 56

Compression:

Stored size: 1.88 KB

Contents

module Vedeu

  module Templating

    # Provide helpers to be used with your Vedeu templates.
    #
    module Helpers

      include Vedeu::View

      # @param value [String] The HTML/CSS colour.
      # @param block [Proc]
      # @raise [Vedeu::Error::RequiresBlock]
      # @return [Vedeu::Views::Stream]
      def background(value, &block)
        define_stream(background: value, &block)
      end
      alias_method :bg, :background

      # @param attributes [Hash]
      # @option attributes foreground [String] The HTML/CSS foreground
      #   colour.
      # @option attributes background [String] The HTML/CSS background
      #   colour.
      # @param block [Proc]
      # @raise [Vedeu::Error::RequiresBlock]
      # @return [Vedeu::Views::Stream]
      def colour(attributes = {}, &block)
        define_stream(attributes, &block)
      end

      # @param value [String] The HTML/CSS colour.
      # @param block [Proc]
      # @raise [Vedeu::Error::RequiresBlock]
      # @return [Vedeu::Views::Stream]
      def foreground(value, &block)
        define_stream(foreground: value, &block)
      end
      alias_method :fg, :foreground

      # @param value [Symbol]
      # @param block [Proc]
      # @return [Vedeu::Views::Stream]
      def style(value, &block)
        define_stream(style: value, &block)
      end

      private

      # @see Vedeu::Templating::Helpers#colour
      def define_stream(attributes = {}, &block)
        fail Vedeu::Error::RequiresBlock unless block_given?

        encode(
          Vedeu::Views::Stream.build(
            colour: Vedeu::Colours::Colour.new(attributes),
            style:  Vedeu::Presentation::Style.new(attributes[:style]),
            value:  block.call))
      end

      # @param data [String]
      # @return [String]
      def encode(data)
        Vedeu::Templating::Encoder.process(data)
      end

    end # Helpers

  end # Templating

end # Vedeu

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
vedeu-0.6.57 lib/vedeu/templating/helpers.rb
vedeu-0.6.56 lib/vedeu/templating/helpers.rb
vedeu-0.6.54 lib/vedeu/templating/helpers.rb
vedeu-0.6.53 lib/vedeu/templating/helpers.rb
vedeu-0.6.52 lib/vedeu/templating/helpers.rb
vedeu-0.6.51 lib/vedeu/templating/helpers.rb
vedeu-0.6.50 lib/vedeu/templating/helpers.rb
vedeu-0.6.49 lib/vedeu/templating/helpers.rb
vedeu-0.6.48 lib/vedeu/templating/helpers.rb
vedeu-0.6.47 lib/vedeu/templating/helpers.rb
vedeu-0.6.46 lib/vedeu/templating/helpers.rb
vedeu-0.6.45 lib/vedeu/templating/helpers.rb
vedeu-0.6.44 lib/vedeu/templating/helpers.rb
vedeu-0.6.43 lib/vedeu/templating/helpers.rb
vedeu-0.6.42 lib/vedeu/templating/helpers.rb
vedeu-0.6.41 lib/vedeu/templating/helpers.rb
vedeu-0.6.40 lib/vedeu/templating/helpers.rb
vedeu-0.6.39 lib/vedeu/templating/helpers.rb
vedeu-0.6.38 lib/vedeu/templating/helpers.rb
vedeu-0.6.37 lib/vedeu/templating/helpers.rb