Sha256: 507dbe08def3c6e27ee50d2ae166d6ee2d7c04d184c018402896c4fea53f93e5
Contents?: true
Size: 1.91 KB
Versions: 5
Compression:
Stored size: 1.91 KB
Contents
#!/usr/bin/env ruby # encoding: utf-8 if RUBY_VERSION < "1.9.1" abort "Ace requires Ruby 1.9" end base = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ libdir = File.expand_path(File.join(File.dirname(base), "..", "lib")) # because of system installation, there is bin/../lib, but not bin/../lib/ace if File.directory?(File.join(libdir, "ace")) $:.unshift(libdir) unless $:.include?(libdir) end require "ace" require "ace/dsl" if File.join(Dir.pwd, "boot.rb") require File.join(Dir.pwd, "boot.rb") else abort "No boot.rb!" end if File.join(Dir.pwd, "rules.rb") path = File.join(Dir.pwd, "rules.rb") code = File.read(path) rules = Ace::DSL.new begin rules.instance_eval(code) rescue Exception => exception puts "Error in DSL: #{exception.message}" puts exception.backtrace exit 1 end else abort "No rules.rb!" end rules.rules.each do |klass, files| # puts "#{klass} #{files.inspect}" files.each do |file| if File.binread(file).match(/^-{3,5}\s*$/) # TODO: this should be a filter or lazy-loaded puts "~ Read #{file} with parse" raw_item = Ace::RawItem.new(file).tap(&:parse) raw_item.check_metadata_created_at(file) item = klass.create(raw_item.metadata, raw_item.content) else puts "~ Read #{file} without parse" item = klass.create(Hash.new, File.read(file)) end item.original_path = file end end puts # Generator is anything what provides #generate method. rules.generators.each do |generator| puts "~ Running generator #{generator}" begin if generator.respond_to?(:generate) generator.generate else abort "Generator #{generator.inspect} doesn't respond to the #generate method!" end rescue Exception => exception puts "Error in generator #{generator.inspect}: #{exception.message}" puts exception.backtrace exit 1 end end puts Ace::Item.all_instances.each do |item| item.save! end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
ace-0.4.2 | bin/ace |
ace-0.4.1 | bin/ace |
ace-0.4 | bin/ace |
ace-0.3.3 | bin/ace |
ace-0.3.2 | bin/ace |