Sha256: 948e6743bf470427e1649f5c6f9bdef10f5d2087cc3faba84a194a109bbdc260
Contents?: true
Size: 1.86 KB
Versions: 3
Compression:
Stored size: 1.86 KB
Contents
require 'active_record' require 'grit' module Gitdocs class Configuration attr_reader :config_root def initialize(config_root = nil) @config_root = config_root || File.expand_path(".gitdocs", ENV["HOME"]) FileUtils.mkdir_p(@config_root) ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :database => ENV["TEST"] ? ':memory:' : File.join(@config_root, 'config.db') ) ActiveRecord::Migrator.migrate(File.expand_path("../migration", __FILE__)) import_old_shares unless ENV["TEST"] end class Share < ActiveRecord::Base attr_accessible :polling_interval, :path, :notification, :branch_name, :remote_name def available_remotes repo = Grit::Repo.new(path) repo.remotes.map{|r| r.name} rescue nil end def available_branches repo = Grit::Repo.new(path) repo.heads.map{|r| r.name} rescue nil end end class Config < ActiveRecord::Base attr_accessible :load_browser_on_startup end def add_path(path, opts = nil) path = self.normalize_path(path) path_opts = {:path => path} path_opts.merge!(opts) if opts Share.new(path_opts).save! end def remove_path(path) path = self.normalize_path(path) Share.where(:path => path).destroy_all end def clear Share.destroy_all end def shares Share.all end def global raise if Config.all.size > 1 Config.create! if Config.all.empty? Config.all.first end def normalize_path(path) File.expand_path(path, Dir.pwd) end private def import_old_shares full_path = File.expand_path('paths', config_root) if File.exist?(full_path) File.read(full_path).split("\n").each { |path| Share.find_or_create_by_path(path) } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gitdocs-0.3.6 | lib/gitdocs/configuration.rb |
gitdocs-0.3.5 | lib/gitdocs/configuration.rb |
gitdocs-0.3.4 | lib/gitdocs/configuration.rb |