Class: Raykit::Git::Repositories
- Inherits:
-
Array
- Object
- Array
- Raykit::Git::Repositories
- Defined in:
- lib/raykit/git/repositories.rb
Overview
Functionality to manage a remote git repository
Instance Attribute Summary collapse
-
#filename ⇒ Object
Returns the value of attribute filename.
Instance Method Summary collapse
- #import(pattern) ⇒ Object
-
#initialize(filename) ⇒ Repositories
constructor
A new instance of Repositories.
- #is_remote_url(pattern) ⇒ Object
- #matches(pattern) ⇒ Object
- #open(filename) ⇒ Object
- #remove(url) ⇒ Object
- #save(filename) ⇒ Object
- #work_dir ⇒ Object
Constructor Details
#initialize(filename) ⇒ Repositories
Returns a new instance of Repositories.
9 10 11 12 |
# File 'lib/raykit/git/repositories.rb', line 9 def initialize(filename) @filename=filename open(@filename) end |
Instance Attribute Details
#filename ⇒ Object
Returns the value of attribute filename.
7 8 9 |
# File 'lib/raykit/git/repositories.rb', line 7 def filename @filename end |
Instance Method Details
#import(pattern) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/raykit/git/repositories.rb', line 49 def import(pattern) imported=Array.new if(is_remote_url(pattern)) remote=pattern if(!include?(remote)) insert(-1,remote) imported.insert(-1,remote) end else git_dirs = Array.new Dir.chdir(work_dir) do Dir.glob('**/.git'){|git_dir| dir = File.('..',git_dir) if(dir.length > 0) git_dirs.insert(0,dir) end } end git_dirs.each{|git_dir| dir=Raykit::Git::Directory.new(git_dir) remote=dir.remote if(remote.include?(pattern) && !include?(remote)) insert(-1,remote) imported.insert(-1,remote) end } end save(@filename) imported end |
#is_remote_url(pattern) ⇒ Object
36 37 38 39 40 |
# File 'lib/raykit/git/repositories.rb', line 36 def is_remote_url pattern return true if(pattern.include?('http://')) return true if(pattern.include?('https://')) false end |
#matches(pattern) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/raykit/git/repositories.rb', line 81 def matches(pattern) matches = Array.new REPOSITORIES.each{|url| if(url.include?(pattern)) matches << url end } matches end |
#open(filename) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/raykit/git/repositories.rb', line 14 def open(filename) if(File.exist?(filename)) JSON.parse(File.read(filename)).each{|url| insert(-1,url) } else #puts "filename #{filename} does not exist" end end |
#remove(url) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/raykit/git/repositories.rb', line 42 def remove url if(include?(url)) self.delete(url) save(@filename) end end |
#save(filename) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/raykit/git/repositories.rb', line 24 def save(filename) File.open(@filename,'w'){|f| #json = JSON.pretty_generate(self) f.write(JSON.pretty_generate(self)) #f.write(self.to_json) } end |
#work_dir ⇒ Object
32 33 34 |
# File 'lib/raykit/git/repositories.rb', line 32 def work_dir Environment::get_dev_dir('work') end |