Sha256: 5a6e7d3f11b90d9483912bf2f7d3903ca86e531b63dbb7e3972cd6a04fed81ec

Contents?: true

Size: 1.9 KB

Versions: 2

Compression:

Stored size: 1.9 KB

Contents

require 'rack'
#require 'rack/attack'
require 'rack/blogengine'
require 'yaml'

module Rack
  module Blogengine
    class CommandLineInterface
      def method_missing(name, *args)
        puts "Command #{name} not available"
        print "Available Commands are: \n\n"
        self.class.instance_methods(false).each do |method|
          print "\t #{method}\n" unless method == :method_missing
        end
        print "\n"
      end

      # Method to run the cli command
      # @param [String] target
      def run(target)

        unless target.empty?
          if target.include?("/") 
              target = target.dup
              target["/"] = ""
          end

          if Dir.exists?("#{target}")
            system("cd #{target}")

            $targetfolder = "#{Dir.pwd}/#{target}"
            config = YAML::load(::File.open("#{$targetfolder}/config.yml"))
            app = Rack::Builder.new do
              use Rack::CommonLogger
              use Rack::ShowExceptions

              map "/assets" do
                run Rack::Directory.new("#{$targetfolder}/assets")
              end
              use Rack::Lint
              run Rack::Blogengine::Application
            end

            
            port = config["Port"];
            server = config["Server"];
            Rack::Server.start( :app => app, :Port => port, :server => server )
          else
            puts "Target is not a folder!"
          end
        else 
          puts "Specify a targetfolder!"
        end
      end

      # Command to generate the folder skeleton
      # @param [String] folder
      def generate(folder)
        puts "Generating folder skeleton"
        system("mkdir #{folder} && mkdir #{folder}/assets && mkdir #{folder}/assets/layout && mkdir #{folder}/assets/js && mkdir #{folder}/assets/style && mkdir #{folder}/assets/images")
      end

      def version?
        puts Rack::Blogengine::VERSION
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-blogengine-0.1.6 lib/rack/blogengine/command_line_interface.rb
rack-blogengine-0.1.5 lib/rack/blogengine/command_line_interface.rb