Sha256: f2d283d6180c9af72f84833be8d1dac599ed2fea3be6aec53213ee8845a7a596

Contents?: true

Size: 1.76 KB

Versions: 3

Compression:

Stored size: 1.76 KB

Contents

require "#{File.dirname(__FILE__)}/shell"

module Alchemy
  class Seeder

    extend Shell

    class << self

      # This seed builds the necessary page structure for alchemy in your database.
      # Run the alchemy:db:seed rake task to seed your database.
      def seed!
        create_default_site
        create_root_page
      end

    private

      def desc(message)
        puts "\n#{message}"
        puts "#{'-' * message.length}\n"
      end

      def todo(todo)
        add_todo todo
      end

      def add_todo(todo)
        todos << todo
      end

      def todos
        @@todos ||= []
      end

      def display_todos
        if todos.length > 0
          log "\nTODOS:", :message
          log "------\n", :message
          todos.each_with_index do |todo, i|
            log "\n#{i+1}. ", :message
            log todo, :message
          end
        end
      end

    protected

      def create_default_site
        desc "Creating default site"
        if Alchemy::Site.count == 0
          site = Alchemy::Site.new(
            name: 'Default Site',
            host: '*'
          )
          if Alchemy::Language.any?
            site.languages = Alchemy::Language.all
          end
          site.save!
          log "Created default site with default language."
        else
          log "Default site was already present.", :skip
        end
      end

      def create_root_page
        desc "Creating root page"
        root = Alchemy::Page.find_or_initialize_by_name(
          :name => 'Root',
          :do_not_sweep => true
        )
        if root.new_record?
          if root.save!
            log "Created page #{root.name}."
          end
        else
          log "Page #{root.name} was already present.", :skip
        end
      end

    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
alchemy_cms-2.6.3 lib/alchemy/seeder.rb
alchemy_cms-2.6.2.1 lib/alchemy/seeder.rb
alchemy_cms-2.6.2 lib/alchemy/seeder.rb