Sha256: 6de6989f4f8543c6e5ab55024c1538463012d6b52f3fa2b23a2bbd5b6f15a57b

Contents?: true

Size: 1.22 KB

Versions: 33

Compression:

Stored size: 1.22 KB

Contents

module Templater
  module Actions
    class Action
  
      attr_accessor :generator, :name, :source, :destination, :options
  
      def source=(source)
        unless source.blank?
          @source = ::File.expand_path(source, generator.source_root)
        end
      end
      
      def destination=(destination)
        unless destination.blank?
          @destination = ::File.expand_path(convert_encoded_instructions(destination), generator.destination_root)
        end
      end
    
      # Returns the destination path relative to Dir.pwd. This is useful for prettier output in interfaces
      # where the destination root is Dir.pwd.
      #
      # === Returns
      # String:: The destination relative to Dir.pwd
      def relative_destination
        @destination.relative_path_from(@generator.destination_root)
      end
      
      protected
      
      def callback(name)
        @generator.send(@options[name], self) if @options[name]
      end
      
      def convert_encoded_instructions(filename)
        filename.gsub(/%.*?%/) do |string|
          instruction = string.match(/%(.*?)%/)[1]
          @generator.respond_to?(instruction) ? @generator.send(instruction) : string
        end
      end
      
    end
  end
end

Version data entries

33 entries across 32 versions & 3 rubygems

Version Path
middleman-0.13.1 lib/middleman/vendor/gems/ruby/1.8/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.13.1 lib/middleman/vendor/gems/ruby/1.9.1/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.12.2 lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.12.1 lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
ginst-2009.12.8 vendor/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.12.0.pre3 lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.12.0.pre2 lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.12.0.pre lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
ginst-2009.11.24 vendor/gems/templater-1.0.0/lib/templater/actions/action.rb
ginst-2009.11.23 vendor/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.10.17 vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.10.16 vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.10.15 vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
middleman-0.10.14 vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb
ginst-2.0.1 vendor/gems/templater-1.0.0/lib/templater/actions/action.rb
ginst-2.0.0 vendor/gems/templater-1.0.0/lib/templater/actions/action.rb
templater-1.0.0 lib/templater/actions/action.rb
templater-0.3.3 lib/templater/actions/action.rb
templater-0.3.0 lib/templater/actions/action.rb
templater-0.3.4 lib/templater/actions/action.rb