Sha256: 2fda8d9328310784d4461c2c022b15ae9f4a7088b4dd89a4d226649bea98ffa1

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

module Deface
  module DSL
    class Context
      def initialize(name)
        @name = name
        @options = {}
      end

      def create_override
        options = {
          :name => @name, 
          :virtual_path => @virtual_path,
        }.merge(@action || {}).merge(@source || {}).merge(@options)

        Deface::Override.new(options)
      end

      def virtual_path(name)
        @virtual_path = name
      end

      Deface::Override.actions.each do |action_name|
        define_method(action_name) do |selector|
          if @action.present?
            Rails.logger.error "\e[1;32mDeface: [WARNING]\e[0m Multiple action methods have been called. The last one will be used."
          end

          @action = { action_name => selector }
        end
      end

      Deface::Override.sources.each do |source_name|
        define_method(source_name) do |value|
          if @source.present?
            Rails.logger.error "\e[1;32mDeface: [WARNING]\e[0m Multiple source methods have been called. The last one will be used."
          end

          @source = { source_name => value }
        end
      end

      def original(markup)
        @options[:original] = markup
      end

      def closing_selector(selector)
        @options[:closing_selector] = selector
      end

      def sequence(value)
        @options[:sequence] = value
      end

      def attributes(values)
        @options[:attributes] = values
      end

      def enabled
        @options[:disabled] = false
      end

      def disabled
        @options[:disabled] = true
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
deface-0.9.1 lib/deface/dsl/context.rb
deface-0.9.0 lib/deface/dsl/context.rb