Sha256: 2f1f6573ac5de495416cb80156bbcaac6dccd4b7584c37c55c90e1db097f52df
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
class Kit def initialize config config = load_config_file config if File.exists? config fail StandardError unless config.is_a? Hash fail StandardError unless config[:kits_path] @@kit_path = config[:kits_path] defaults = YAML.load File.read @@kit_path + "/config.yml" config = defaults.merge config load 'kit/db_sqlite3.rb' if config[:db_backend] == :sqlite3 load @@kit_path + "/bit.rb" @@db = Backend.new config[:db_config] @@info = config[:info] @@actions = config[:actions] end def load_config_file file config = YAML.load File.read file @@config_path = File.absolute_path File.dirname file dir = config[:kits_path] if config[:kits_path].nil? dir = @@config_path else dir = File.absolute_path @@config_path + config[:kits_path] unless [ "/", "~" ].include? config[:kits_path][0] end config[:kits_path] = dir return config end def delete_dbs @@db.db_paths.each do |key, f| File.delete f end end def add_bit info Bit.new info end def add_task action, options fail NoAction unless @@actions.include? action @@db.insert_action action, options end def run_tasks collect_tasks_by_bit.each do |bit, tasks| s = Bit.new bit actions = tasks.group_by { |t| t[:action] } . keys actions.each do |a| load @@kit_path + "/#{a}/#{s.project_name}.rb" s.extend Actions end tasks.each do |t| s.add_task t end s.run_all end end private def collect_tasks_by_bit tasks = [] @@actions.each_key do |action| tasks.push @@db.select_all_actions_by_status action, @@actions[action], :pending end tasks.flatten! tasks.group_by { |t| t[:bit] } end class NoAction < StandardError end end require 'kit/bit'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kit-0.0.5 | lib/kit.rb |