Sha256: fdcdea7d87feb74b98e9c13c0b4cd63d6515ba861eb408fa2e2074b2c7105417

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

module Maglove
  module Widgets
    class Container < Base
      def identifier
        "container"
      end

      def defaults
        {
          animate: "none",
          parallax_effect: "none",
          border_radius: "",
          border_width: "",
          border_style: "",
          border_color: "transparent",
          style: "default",
          min_height: "",
          max_height: "",
          overflow_y: ""
        }
      end

      def container_options
        result = { class: container_classes, style: container_styles }
        result["data-parallax-style"] = @options[:parallax_effect] if !@options[:parallax_effect].empty? and @options[:parallax_effect] != "none"
        result
      end

      def image_options
        { class: "one-container-image", style: image_styles }
      end

      def container_classes
        classes = ["one-container"]
        classes.push("animate #{@options[:animate]}") if @options[:animate] != "none"
        classes.push("container-#{@options[:style]}") unless @options[:style].empty?
        classes.push("container-parallax") if !@options[:parallax_effect].empty? and @options[:parallax_effect] != "none"
        classes.join(" ")
      end

      def container_styles
        style_string @options, :border, :border_radius, :border_width, :border_style, :border_color, :min_height
      end

      def image_styles
        style_string @options, :max_height, :overflow_y
      end

      def template(&block)
        haml_tag :section, container_options do
          haml_tag :div, image_options do
            yield if block
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
maglove-widgets-2.0.3 lib/maglove/widgets/container.rb
maglove-widgets-2.0.2 lib/maglove/widgets/container.rb