Sha256: 5ac464321147ed2293edba6a4b5f325c4aa2e6cc70fc07009789d2353b45e773

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

pp caller
module Coupler
  module Models
    class Project < Sequel::Model
      include CommonModel
      one_to_many :resources
      one_to_many :scenarios

      def local_database(&block)
        Sequel.connect(local_connection_string, {
          :loggers => [Coupler::Logger.instance],
          :max_connections => 50,
          :pool_timeout => 60
        }, &block)
      end

      private
        def local_connection_string
          Coupler.connection_string("project_#{id}")
        end

        def before_validation
          super
          self.slug ||= name.downcase.gsub(/\s+/, "_")   if name
        end

        def validate
          super
          validates_presence :name
          validates_unique :name, :slug
        end

        def after_destroy
          super
          FileUtils.rm(Dir[Coupler.db_path("project_#{id}")+".*"], :force => true)
          resources_dataset.each { |r| r.delete_versions_on_destroy = self.delete_versions_on_destroy; r.destroy }
          scenarios_dataset.each { |s| s.delete_versions_on_destroy = self.delete_versions_on_destroy; s.destroy }
        end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coupler-0.0.7-java lib/coupler/models/project.rb