Sha256: 5b2e8855a25ae3b935656ae3eb5096b0f85299933bc2a6b531739d8a4e4d88e8

Contents?: true

Size: 1006 Bytes

Versions: 1

Compression:

Stored size: 1006 Bytes

Contents

require_relative 'project'
require_relative 'server'

module Backsum
  class Project
    
    def self.dsl(*args, &block)
      Dsl.new(*args, &block).instance
    end
    
    class Dsl
      attr_accessor :instance

      def initialize(content = nil, filename = nil, lineno = 0, &block)
        self.instance = Project.new
        self.instance.name = File.basename(filename, ".rb") if filename
        
        instance_eval(content, filename, lineno) if content
        instance_eval(&block) if block
      end
      
      def name(name)
        self.instance.name = name
      end
      
      def server(*args, &block)
        server = Server::Dsl.new(*args, &block).instance
        self.instance.servers << server
      end
      
      def keep_days(days)
        self.instance.keep_days = days
      end
      
      def keep_weeks(weeks)
        self.instance.keep_weeks = weeks
      end
      
      def backup_to(path)
        self.instance.backup_to = path
      end
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
backsum-0.0.1 lib/backsum/project_dsl.rb