class Primo::Remote
Constants
- DIRECTORY
Attributes
name[RW]
url[RW]
Public Class Methods
list()
click to toggle source
# File lib/primo/remote.rb, line 5 def self.list Primo::Config.instance.config[:remotes] end
new(name, url = nil)
click to toggle source
# File lib/primo/remote.rb, line 11 def initialize name, url = nil @name = name @url = url || Primo::Config.instance.config[:remotes][name] ensure_saved end
Public Instance Methods
directory()
click to toggle source
# File lib/primo/remote.rb, line 32 def directory "#{DIRECTORY}/#{name}" end
ensure_cloned()
click to toggle source
# File lib/primo/remote.rb, line 36 def ensure_cloned unless File.exists? "#{directory}/.git" system "git clone #{url} #{directory} -q" end rescue raise "Could not load templates from #{url}" end
remove()
click to toggle source
# File lib/primo/remote.rb, line 26 def remove Primo::Config.instance.config[:remotes].delete(name) Primo::Config.instance.save FileUtils.rm_rf directory end
templates()
click to toggle source
# File lib/primo/remote.rb, line 17 def templates template_names.map {|name| Primo::Template.new(name, self)} end
update()
click to toggle source
# File lib/primo/remote.rb, line 21 def update ensure_cloned system "cd #{directory}; git fetch -q && git reset --hard origin/master -q" end
Private Instance Methods
ensure_saved()
click to toggle source
# File lib/primo/remote.rb, line 46 def ensure_saved if !Primo::Config.instance.config[:remotes][name] && url Primo::Config.instance.config[:remotes][name] = url Primo::Config.instance.save end end
template_names()
click to toggle source
# File lib/primo/remote.rb, line 53 def template_names Dir.entries(directory).select do |filename| filename =~ /\.rb$/ end end