repomap 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/bin/repo CHANGED
@@ -94,12 +94,12 @@ begin
94
94
  RepoMap.handle(opts)
95
95
  end
96
96
  else
97
- puts "repo: Not a known subcommand"
97
+ STDOUT.puts "repo: Not a known subcommand"
98
98
  end
99
99
 
100
100
  exit 0
101
101
  rescue OptionParser::MissingArgument => e
102
- puts "repo: #{e}"
102
+ STDERR.puts "repo: #{e}"
103
103
  rescue NoMethodError => e
104
- puts banner
104
+ STDOUT.puts banner
105
105
  end
@@ -22,13 +22,13 @@ module RepoMap
22
22
  # :pattern => "some regex"}}
23
23
  #
24
24
  # Then, call appropriate functions.
25
- def self.handle options
25
+ def self.handle(options)
26
26
 
27
27
  case options[:action].to_s
28
28
  when /add/
29
29
  if path_exists? options
30
30
  add_recursive! options[:options][:path] if options[:options][:recursive]
31
- add! options[:options][:path] if not options[:options][:recursive]
31
+ add! options[:options][:path] if !(options[:options][:recursive])
32
32
  end
33
33
  when /remove/
34
34
  if path_exists? options
@@ -44,10 +44,10 @@ module RepoMap
44
44
 
45
45
  end
46
46
 
47
- def path_exists? options
47
+ def path_exists?(options)
48
48
 
49
- if options[:options][:path] != nil and
50
- options[:options][:path] != ''
49
+ if (options[:options][:path] != nil) &&
50
+ (options[:options][:path] != '')
51
51
  return true
52
52
  else
53
53
  return false
@@ -1,7 +1,9 @@
1
+ require 'find'
2
+
1
3
  module RepoMap
2
4
 
3
- def add! path
4
- if File.directory? path and has_git? path
5
+ def add!(path)
6
+ if File.directory?(path) && has_git?(path)
5
7
  full_path = File.expand_path(path)
6
8
  basename = File.basename(full_path)
7
9
  puts "repo: I'm adding '#{basename}' to '#{repo_map}'"
@@ -12,22 +14,14 @@ module RepoMap
12
14
  end
13
15
  end
14
16
 
15
- def add_recursive! path
16
- if File.directory?(path) and has_git?(path)
17
- add! path
18
- elsif File.directory?(path) and !has_git?(path)
19
- Dir.foreach(path) do |item|
20
- next if item == '.' or item == '..'
21
- item_path = File.join(File.expand_path(path), item)
22
- add_recursive! item_path if File.directory? item_path
23
- end
24
- else
25
- STDERR.puts "repo: Not a directory or repository -- #{path}"
26
- exit 1
17
+
18
+ def add_recursive!(path)
19
+ Find.find(path) do |f|
20
+ add! f if File.directory?(f) && has_git?(f)
27
21
  end
28
22
  end
29
23
 
30
- def add_repo! reponame, full_path
24
+ def add_repo!(reponame, full_path)
31
25
  repo_map_validate
32
26
  hash = YAML::load(File.read(repo_map))
33
27
  hash = {} if hash==nil
@@ -1,9 +1,9 @@
1
1
  module RepoMap
2
2
 
3
- ENV['REPO_MAP'] = "#{`echo $HOME`.chomp}/.repomap.yml"
3
+ REPO_MAP_FILE = File.join(ENV['HOME'].strip,".repomap.yml")
4
4
 
5
5
  def repo_map
6
- ENV['REPO_MAP']
6
+ REPO_MAP_FILE
7
7
  end
8
8
 
9
9
  end
@@ -1,14 +1,14 @@
1
1
  module RepoMap
2
2
 
3
- def find path, pattern
3
+ def find(path, pattern)
4
4
  if path
5
- find_with_path path, pattern
5
+ find_with_path(path, pattern)
6
6
  else
7
- find_without_path pattern
7
+ find_without_path(pattern)
8
8
  end
9
9
  end
10
10
 
11
- def find_with_path path, pattern
11
+ def find_with_path(path, pattern)
12
12
  repo_map_validate
13
13
  hash = YAML::load(File.read(repo_map))
14
14
  regex = Regexp.new(pattern)
@@ -17,17 +17,17 @@ module RepoMap
17
17
  hash.each do |k, v|
18
18
  fk = File.expand_path(k.to_s)
19
19
  m = fk.match(fp_reg)
20
- is_subdir = (fk.length>fp.length)&&(m.to_s==fp)
21
- if is_subdir and v[:name].to_s.match(regex)!=nil
20
+ is_subdir = (fk.length>fp.length) && (m.to_s==fp)
21
+ if is_subdir && v[:name].to_s.match(regex)!=nil
22
22
  puts k.to_s
23
23
  end
24
24
  end
25
25
  end
26
26
 
27
- def find_without_path pattern
27
+ def find_without_path(pattern)
28
28
  repo_map_validate
29
29
  hash = YAML::load(File.read(repo_map))
30
- regex = Regexp.new pattern
30
+ regex = Regexp.new(pattern)
31
31
  hash.each do |k, v|
32
32
  if v[:name].to_s.match(regex)!=nil
33
33
  puts k.to_s
@@ -1,7 +1,5 @@
1
1
  module RepoMap
2
2
 
3
- repo_map = ENV['REPO_MAP']
4
-
5
3
  def repo_map_validate
6
4
  unless repo_map_exists?
7
5
  File.new(repo_map, "w")
@@ -11,14 +9,14 @@ module RepoMap
11
9
  end
12
10
  end
13
11
 
14
- def has_git? path
12
+ def has_git?(path)
15
13
  File.directory? "#{File.expand_path(path)}/.git"
16
14
  end
17
15
 
18
16
  def repo_map_exists?
19
17
  a = File.exist? repo_map
20
18
  b = File.read(repo_map)!='' if a
21
- a and b
19
+ a && b
22
20
  end
23
21
 
24
22
  end
@@ -8,7 +8,7 @@ module RepoMap
8
8
  longest_name = v[:name].length if v[:name].length > longest_name
9
9
  end
10
10
  hash.each do |key, value|
11
- printf "%-#{longest_name}s %s\n", value[:name], key
11
+ printf("%-#{longest_name}s %s\n", value[:name], key)
12
12
  end
13
13
  exit 0
14
14
  end
@@ -1,12 +1,12 @@
1
1
  module RepoMap
2
2
 
3
- def remove! path
3
+ def remove!(path)
4
4
  repo_map_validate
5
5
  full_path = File.expand_path(path)
6
6
  basename = File.basename(full_path)
7
7
  hash = YAML::load(File.read(repo_map))
8
8
  if hash.has_key?(full_path.to_sym)
9
- puts "repo: I'm removing '#{basename}' from '#{repo_map}'"
9
+ STDOUT.puts "repo: I'm removing '#{basename}' from '#{repo_map}'"
10
10
  else
11
11
  STDERR.puts "repo: I don't have this repository -- '#{full_path}'"
12
12
  exit 1
@@ -1,3 +1,3 @@
1
1
  module RepoMap
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
@@ -6,7 +6,9 @@ require 'fileutils'
6
6
  include FileUtils
7
7
 
8
8
  module RepoMap
9
- ENV['REPO_MAP'] = "#{File.dirname(__FILE__)}/../tmp/repomap.yml"
9
+ TEST_REPO_MAP = "#{File.dirname(__FILE__)}/../tmp/repomap.yml"
10
+ def repo_map; TEST_REPO_MAP; end
11
+ MANY_REPOS = "#{File.dirname(__FILE__)}/../tmp/many_repos"
10
12
  REPO1 = "#{File.dirname(__FILE__)}/../tmp/repo1"
11
13
  end
12
14
 
@@ -16,12 +18,16 @@ describe "RepoMap SubCommands" do
16
18
 
17
19
  before :each do
18
20
  mkdir_p "#{REPO1}/.git"
19
- # so it's not empty...
20
21
  touch "#{REPO1}/README"
22
+ mkdir_p "#{MANY_REPOS}/repo2a/.git"
23
+ touch "#{MANY_REPOS}/repo2a/README"
24
+ mkdir_p "#{MANY_REPOS}/repo2b/.git"
25
+ touch "#{MANY_REPOS}/repo2b/README"
21
26
  end
22
27
 
23
28
  after :each do
24
29
  rm_rf "#{REPO1}/.git"
30
+ rm_rf "#{MANY_REPOS}"
25
31
  end
26
32
 
27
33
  after :all do
@@ -30,8 +36,8 @@ describe "RepoMap SubCommands" do
30
36
 
31
37
  describe "#add!" do
32
38
 
33
- it "should add a given path to ENV['REPO_MAP']" do
34
- opts = repo_opts :add, REPO1
39
+ it "should add a given path to RepoMap file" do
40
+ opts = repo_opts(:add, REPO1)
35
41
  RepoMap.handle(opts)
36
42
  hash = YAML::load(File.read(repo_map))
37
43
  hash[File.expand_path(REPO1).to_sym][:name].should == File.basename(REPO1)
@@ -39,29 +45,43 @@ describe "RepoMap SubCommands" do
39
45
 
40
46
  end
41
47
 
48
+ describe "#add_recursive!" do
49
+
50
+ it "should recursively add all git repo's in a certain path" do
51
+ opts = repo_opts(:add, MANY_REPOS, true)
52
+ RepoMap.handle(opts)
53
+ hash = YAML::load(File.read(repo_map))
54
+ repo2a_path = File.expand_path("#{MANY_REPOS}/repo2a")
55
+ repo2b_path = File.expand_path("#{MANY_REPOS}/repo2b")
56
+ hash[repo2a_path.to_sym][:name].should == File.basename(repo2a_path)
57
+ hash[repo2b_path.to_sym][:name].should == File.basename(repo2b_path)
58
+ end
59
+
60
+ end
61
+
42
62
  describe "#remove!" do
43
63
 
44
- it "should remove a given path from ENV['REPO_MAP']" do
45
- opts = repo_opts :add, REPO1
64
+ it "should remove a given path from RepoMap file" do
65
+ opts = repo_opts(:add, REPO1)
46
66
  RepoMap.handle opts
47
67
  hash1 = YAML::load(File.read(repo_map))
48
68
  repo1_in_repomap = hash1[File.expand_path(REPO1).to_sym][:name] \
49
69
  == File.basename(REPO1)
50
- opts = repo_opts :remove, REPO1
70
+ opts = repo_opts(:remove, REPO1)
51
71
  RepoMap.handle opts
52
72
  hash2 = YAML::load(File.read(repo_map))
53
73
  repo1_removed = !(hash2.has_key?(File.expand_path(REPO1).to_sym))
54
- (repo1_in_repomap and repo1_removed).should == true
74
+ (repo1_in_repomap && repo1_removed).should == true
55
75
  end
56
76
 
57
77
  end
58
78
 
59
79
  end
60
80
 
61
- def repo_opts action, repo_path
81
+ def repo_opts(action, repo_path, recursive=false)
62
82
  opts = {}
63
83
  opts[:action] = action
64
84
  opts[:options] = {:path => repo_path,
65
- :recursive => false}
85
+ :recursive => recursive}
66
86
  return opts
67
87
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repomap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-19 00:00:00.000000000 Z
12
+ date: 2013-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -79,12 +79,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
79
  - - ! '>='
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
+ segments:
83
+ - 0
84
+ hash: -1475655317722997625
82
85
  required_rubygems_version: !ruby/object:Gem::Requirement
83
86
  none: false
84
87
  requirements:
85
88
  - - ! '>='
86
89
  - !ruby/object:Gem::Version
87
90
  version: '0'
91
+ segments:
92
+ - 0
93
+ hash: -1475655317722997625
88
94
  requirements: []
89
95
  rubyforge_project:
90
96
  rubygems_version: 1.8.24