monos 0.6.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a2b5768d1c5b1f9862099eb5d67e7c574561f256
4
- data.tar.gz: e257ffe48bab62974a02b76443e0d0c4aad563af
3
+ metadata.gz: ef0e3b6e34281f0de5814be5353282f3433ff7a2
4
+ data.tar.gz: 0adb54bd17a900418ebeb7c8cb72aff6db9c95cb
5
5
  SHA512:
6
- metadata.gz: 63f482ee7c5696cff694e57a22efc2a187a20a074e10c651bbd272acedb03104a8646464fe0386cea3bb71f0e532b7f039ebcec9301c185437ca23ac6bfffad0
7
- data.tar.gz: 4d6213f4928e6abcb3809101f7b7d299eeaf24c51edeee8424f497bdeed6b3e7406127472e3639eb6efb719d4d98f98663a93b59c77634130074b2053cfc66be
6
+ metadata.gz: 75be1cebf370650581e4600debea7b128a0f53a7661bff57fc22b6086d2b53306f09bcb4e1e481f2be003489c160440f3708fe329de4c6eede610968bf948aa0
7
+ data.tar.gz: 279c3310bb58d3272b596d5fd511fb40bc6749ea0f71087b0558f343ea46c5c4e6a7b8eca7cfe4b388cd2b8395a817432bc2fb322ac45beb48c3258ad7fa9ed8
@@ -18,3 +18,4 @@ lib/mono/version.rb
18
18
  lib/monos.rb
19
19
  test/helper.rb
20
20
  test/test_base.rb
21
+ test/test_path.rb
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # monos - monorepo / mono source tree tools and (startup) scripts
2
2
 
3
3
 
4
- * home :: [github.com/rubycoco/git](https://github.com/rubycoco/git)
5
- * bugs :: [github.com/rubycoco/git/issues](https://github.com/rubycoco/git/issues)
4
+ * home :: [github.com/rubycoco/monos](https://github.com/rubycoco/monos)
5
+ * bugs :: [github.com/rubycoco/monos/issues](https://github.com/rubycoco/monos/issues)
6
6
  * gem :: [rubygems.org/gems/monos](https://rubygems.org/gems/monos)
7
7
  * rdoc :: [rubydoc.info/gems/monos](http://rubydoc.info/gems/monos)
8
8
  * forum :: [opensport](http://groups.google.com/group/opensport)
data/Rakefile CHANGED
@@ -3,12 +3,12 @@ require './lib/mono/version.rb'
3
3
 
4
4
  Hoe.spec 'monos' do
5
5
 
6
- self.version = MonoCore::VERSION
6
+ self.version = Mono::Module::Tool::VERSION
7
7
 
8
8
  self.summary = "monos - monorepo / mono source tree tools and (startup) scripts"
9
9
  self.description = summary
10
10
 
11
- self.urls = { home: 'https://github.com/rubycoco/git' }
11
+ self.urls = { home: 'https://github.com/rubycoco/monos' }
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
14
  self.email = 'opensport@googlegroups.com'
@@ -20,8 +20,9 @@ Hoe.spec 'monos' do
20
20
  self.licenses = ['Public Domain']
21
21
 
22
22
  self.extra_deps = [
23
- ['gitti', '>= 0.6.1' ],
24
- ['gitti-backup', '>= 0.4.1' ],
23
+ ['monofile', '>= 0.2.2'],
24
+ ['gitti', '>= 0.6.1'],
25
+ ['gitti-backup', '>= 0.4.1'],
25
26
  ]
26
27
 
27
28
  self.spec_extras = {
@@ -1,3 +1,6 @@
1
+ require 'monofile'
2
+
3
+
1
4
  ## first add git support
2
5
  ## note: use the "modular" version WITHOUT auto-include gitti,
3
6
  ## thus, require 'gitti/base' (and NOT 'gitti')
@@ -8,11 +11,14 @@ require 'gitti/backup/base'
8
11
  module Mono
9
12
  ## note: make Git, GitProject, GitRepoSet, etc. available without Gitti::
10
13
  include Gitti
11
- end
12
14
 
15
+ class Tool
16
+ include Gitti
17
+ end
18
+
19
+ ## add more classes e.g. MonoGitProject, etc. - why? why not?
20
+ end
13
21
 
14
- ## some more stdlibs
15
- # require 'optparse'
16
22
 
17
23
 
18
24
 
@@ -31,4 +37,20 @@ require 'mono/commands/run'
31
37
  require 'mono/tool'
32
38
 
33
39
 
34
- puts MonoCore.banner # say hello
40
+
41
+ module Mono
42
+ def self.monofile
43
+ path = Monofile.find
44
+
45
+ if path
46
+ Monofile.read( path )
47
+ else
48
+ puts "!! WARN: no mono configuration file found; looking for #{Monofile::NAMES.join(', ')} in (#{Dir.getwd})"
49
+ Monofile.new ## return empty set -todo/check: return nil - why? why not?
50
+ end
51
+ end
52
+ end ## module Mono
53
+
54
+
55
+
56
+ puts Mono::Module::Tool.banner # say hello
@@ -1,73 +1,27 @@
1
-
2
- module Mono
3
-
4
- def self.root ## root of single (monorepo) source tree
5
- @@root ||= begin
6
- ## todo/fix:
7
- ## check if windows - otherwise use /sites
8
- ## check if root directory exists?
9
- if ENV['MOPATH']
10
- ## use expand path to make (assure) absolute path - why? why not?
11
- ::File.expand_path( ENV['MOPATH'] )
12
- elsif ::Dir.exist?( 'C:/Sites' )
13
- 'C:/Sites'
14
- else
15
- '/sites'
16
- end
17
- end
18
- end
19
-
20
- def self.root=( path )
21
- ## use expand path to make (assure) absolute path - why? why not?
22
- @@root = ::File.expand_path( path )
23
- end
24
-
25
-
26
-
27
-
28
- def self.monofile
29
- path = if ::File.exist?( './monorepo.yml' )
30
- './monorepo.yml'
31
- elsif ::File.exist?( './monotree.yml' )
32
- './monotree.yml'
33
- elsif ::File.exist?( './repos.yml' )
34
- './repos.yml'
35
- else
36
- puts "!! WARN: no mono configuration file (that is, {monorepo,monotree,repos}.yml) found in >#{Dir.getwd}<"
37
- nil
38
- end
39
-
40
- if path
41
- GitRepoSet.read( path )
42
- else
43
- GitRepoSet.new( {} ) ## return empty set -todo/check: return nil - why? why not?
44
- end
45
- end
46
- end ## module Mono
47
-
48
-
49
-
50
-
51
1
  #####################
52
- # add file and repo helper
2
+ # add repo helper
53
3
 
54
- ##
55
- ## todo/fix: ALWAYS assert name format
56
- ## (rename to mononame and monopath) - why? why not?
57
4
 
58
5
  class MonoGitHub
59
- def self.clone( name )
60
- path = MonoFile.expand_path( name )
6
+ def self.clone( name, depth: nil )
7
+ ## lets you use:
8
+ ## @rubycoco/gitti or
9
+ ## gitti@rubycoco
10
+ ## => rubycoco/gitti
11
+
12
+ ## note: allow passing in (reusing) of mononames too
13
+ mononame = name.is_a?( Mononame ) ? name : Mononame.parse( name )
14
+ path = mononame.real_path
61
15
 
62
16
  org_path = File.dirname( path )
63
17
  FileUtils.mkdir_p( org_path ) unless Dir.exist?( org_path ) ## make sure path exists
64
18
 
65
19
  ### note: use a github clone url (using ssh) like:
66
20
  ## git@github.com:rubycoco/gitti.git
67
- ssh_clone_url = "git@github.com:#{name}.git"
21
+ ssh_clone_url = "git@github.com:#{mononame.to_path}.git"
68
22
 
69
23
  Dir.chdir( org_path ) do
70
- Gitti::Git.clone( ssh_clone_url )
24
+ Gitti::Git.clone( ssh_clone_url, depth: depth )
71
25
  end
72
26
  end
73
27
  end
@@ -77,61 +31,45 @@ MonoGithub = MonoGitHub ## add convenience (typo?) alias
77
31
 
78
32
  class MonoGitProject
79
33
  def self.open( name, &block )
80
- path = MonoFile.expand_path( name )
34
+ ## note: allow passing in (reusing) of mononames too
35
+ mononame = name.is_a?( Mononame ) ? name : Mononame.parse( name )
36
+ path = mononame.real_path
81
37
  Gitti::GitProject.open( path, &block )
82
38
  end
83
39
  end
84
40
 
85
41
 
86
- module Mono
87
- ## add some short cuts
88
- def self.open( name, &block ) MonoGitProject.open( name, &block ); end
89
- def self.clone( name ) MonoGitHub.clone( name ); end
90
- end
91
-
92
-
93
-
94
- class MonoFile
95
- ## e.g. openfootball/austria etc.
96
- ## expand to to "real" absolute path
97
- ##
98
- ## todo/check: assert name must be {orgname,username}/reponame
99
- def self.expand_path( path )
100
- "#{Mono.root}/#{path}"
101
- end
102
- def self.exist?( path )
103
- ::File.exist?( expand_path( path ))
104
- end
105
-
106
-
107
- ## add some aliases - why? why not?
108
- class << self
109
- alias_method :real_path, :expand_path
110
- alias_method :exists?, :exist? ## add deprecated exists? too - why? why not?
111
- end
112
-
113
42
 
114
43
 
115
- ## path always relative to Mono.root
116
- ## todo/fix: use File.expand_path( path, Mono.root ) - why? why not?
117
- ## or always enfore "absolut" path e.g. do NOT allow ../ or ./ or such
118
- def self.open( path, mode='r:utf-8', &block )
119
- full_path = "#{Mono.root}/#{path}"
120
- ## make sure path exists if we open for writing/appending - why? why not?
121
- if mode[0] == 'w' || mode[0] == 'a'
122
- ::FileUtils.mkdir_p( ::File.dirname( full_path ) ) ## make sure path exists
123
- end
124
-
125
- ::File.open( full_path, mode ) do |file|
126
- block.call( file )
44
+ module Mono
45
+ #################
46
+ ## add some short cuts
47
+ def self.open( name, &block ) MonoGitProject.open( name, &block ); end
48
+ def self.clone( name, depth: nil ) MonoGitHub.clone( name, depth: depth ); end
49
+
50
+ ######################################
51
+ ## add some more "porcelain" helpers
52
+ def self.sync( name )
53
+ ## add some options - why? why not?
54
+ ## - :readonly - auto-adds depth: 1 on clone or such - why? why not?
55
+ ## - :clone true/false - do NOT clone only fast forward or such - why? why not?
56
+ ## - :clean true/false or similar - only clone repos; no fast forward
57
+ ## others - ideas -- ??
58
+
59
+ ## note: allow passing in (reusing) of mononames too
60
+ mononame = name.is_a?( Mononame ) ? name : Mononame.parse( name )
61
+ if mononame.exist?
62
+ MonoGitProject.open( mononame ) do |proj|
63
+ if proj.changes?
64
+ puts "!! WARN - local changes in workdir; skipping fast forward (remote) sync / merge"
65
+ else
66
+ proj.fast_forward ## note: use git pull --ff-only (fast forward only - do NOT merge)
67
+ end
127
68
  end
128
- end
129
-
130
- def self.read_utf8( path )
131
- open( path, 'r:utf-8') { |file| file.read }
132
- end
133
- end ## class MonoFile
134
-
135
-
69
+ else
70
+ MonoGitHub.clone( mononame )
71
+ end
72
+ end # method self.sync
73
+ end ## module Mono
136
74
 
137
75
 
@@ -1,6 +1,7 @@
1
1
  module Mono
2
2
 
3
- ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
3
+ ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
4
+ class Tool
4
5
  def self.backup
5
6
  repos = Mono.monofile
6
7
 
@@ -11,5 +12,5 @@ module Mono
11
12
  ## 2) git remote update (if local backup already exists)
12
13
  backup.backup( repos )
13
14
  end # method backup
14
-
15
+ end # class Tool
15
16
  end # module Mono
@@ -1,8 +1,9 @@
1
1
  module Mono
2
2
 
3
+ class Tool
3
4
  def self.env ## check environment setup
4
5
  puts "Mono.root (MOPATH): >#{Mono.root}<"
5
- puts "MonoCore.root: >#{MonoCore.root}<"
6
+ puts "Mono::Module::Tool.root: >#{Mono::Module::Tool.root}<"
6
7
  puts
7
8
 
8
9
  ## add ruby version and path - why? why not? e.g.
@@ -19,8 +20,8 @@ module Mono
19
20
  Git.config( /user/, show_origin: true )
20
21
 
21
22
  puts
22
- puts "monorepo.yml:"
23
+ puts "monofile => (#{Monofile.find}):"
23
24
  pp Mono.monofile
24
25
  end
25
-
26
+ end # class Tool
26
27
  end # module Mono
@@ -1,5 +1,6 @@
1
1
  module Mono
2
2
  ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
3
+ class Tool
3
4
  def self.fetch
4
5
  repos = Mono.monofile
5
6
 
@@ -18,8 +19,8 @@ module Mono
18
19
 
19
20
  repo = GitHubRepo.new( org, name ) ## owner, name e.g. rubylibs/webservice
20
21
 
21
- ::Dir.chdir( org_path ) do
22
- if ::Dir.exist?( repo.name )
22
+ Dir.chdir( org_path ) do
23
+ if Dir.exist?( repo.name )
23
24
  GitProject.open( repo.name ) do |proj|
24
25
  proj.fetch
25
26
  end
@@ -39,5 +40,5 @@ module Mono
39
40
  print "#{count_repos} repo(s) @ #{count_orgs} org(s)"
40
41
  print "\n"
41
42
  end # method fetch
42
-
43
+ end # class Tool
43
44
  end # module Mono
@@ -1,5 +1,6 @@
1
1
  module Mono
2
2
 
3
+ class Tool
3
4
  def self.run( *args )
4
5
  ## todo/fix: use a "standard" argument to pass along hash of repos
5
6
  ## (e.g. monorepo.yml or repos.yml ) how? - why? why not?
@@ -22,8 +23,8 @@ module Mono
22
23
 
23
24
  repo = GitHubRepo.new( org, name ) ## owner, name e.g. rubylibs/webservice
24
25
 
25
- ::Dir.chdir( org_path ) do
26
- if ::Dir.exist?( repo.name )
26
+ Dir.chdir( org_path ) do
27
+ if Dir.exist?( repo.name )
27
28
  GitProject.open( repo.name ) do |proj|
28
29
  proj.run( cmd )
29
30
  end
@@ -43,5 +44,5 @@ module Mono
43
44
  print "#{count_repos} repo(s) @ #{count_orgs} org(s)"
44
45
  print "\n"
45
46
  end # method run
46
-
47
+ end # class Tool
47
48
  end # module Mono
@@ -1,6 +1,7 @@
1
1
  module Mono
2
2
 
3
- ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
3
+ ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
4
+ class Tool
4
5
  def self.status
5
6
  repos = Mono.monofile
6
7
 
@@ -20,8 +21,8 @@ module Mono
20
21
 
21
22
  repo = GitHubRepo.new( org, name ) ## owner, name e.g. rubylibs/webservice
22
23
 
23
- ::Dir.chdir( org_path ) do
24
- if ::Dir.exist?( repo.name )
24
+ Dir.chdir( org_path ) do
25
+ if Dir.exist?( repo.name )
25
26
  GitProject.open( repo.name ) do |proj|
26
27
  output = proj.changes
27
28
  if output.empty?
@@ -61,5 +62,5 @@ module Mono
61
62
  end
62
63
 
63
64
  end # method status
64
-
65
+ end # class Tool
65
66
  end # module Mono
@@ -1,6 +1,7 @@
1
1
  module Mono
2
2
 
3
- ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
3
+ ## pass along hash of repos (e.g. monorepo.yml or repos.yml )
4
+ class Tool
4
5
  def self.sync
5
6
  repos = Mono.monofile
6
7
 
@@ -11,15 +12,15 @@ module Mono
11
12
 
12
13
  repos.each do |org,names|
13
14
  org_path = "#{Mono.root}/#{org}"
14
- ::FileUtils.mkdir_p( org_path ) unless ::Dir.exist?( org_path ) ## make sure path exists
15
+ FileUtils.mkdir_p( org_path ) unless Dir.exist?( org_path ) ## make sure path exists
15
16
 
16
17
  names.each do |name|
17
18
  puts "[#{count_repos+1}/#{total_repos}] #{org}@#{name}..."
18
19
 
19
20
  repo = GitHubRepo.new( org, name ) ## owner, name e.g. rubylibs/webservice
20
21
 
21
- ::Dir.chdir( org_path ) do
22
- if ::Dir.exist?( repo.name )
22
+ Dir.chdir( org_path ) do
23
+ if Dir.exist?( repo.name )
23
24
  GitProject.open( repo.name ) do |proj|
24
25
  if proj.changes?
25
26
  puts "!! WARN - local changes in workdir; skipping fast forward (remote) sync / merge"
@@ -50,4 +51,5 @@ module Mono
50
51
  puts "#{count_repos} repo(s) @ #{count_orgs} org(s)"
51
52
  end # method sync
52
53
 
54
+ end # class Tool
53
55
  end # module Mono
@@ -25,15 +25,15 @@ private
25
25
 
26
26
  ## todo/check - use max_depth or max_level or such - why? why not?
27
27
  def self.walk_dir( path, repos=[], level=1, depth: nil )
28
- entries = ::Dir.entries(path)
28
+ entries = Dir.entries(path)
29
29
 
30
30
  ## filter dirs
31
31
  dirs = entries.select do |entry|
32
32
  if ['..', '.'].include?( entry ) ## first check for excludes
33
33
  false
34
34
  else
35
- full_path = ::File.join( path, entry )
36
- ::File.directory?( full_path )
35
+ full_path = File.join( path, entry )
36
+ File.directory?( full_path )
37
37
  end
38
38
  end
39
39
 
@@ -53,9 +53,9 @@ def self.walk_dir( path, repos=[], level=1, depth: nil )
53
53
  buf << ">#{path}< - level #{level}:\n"
54
54
  dirs.each do |entry|
55
55
  next if ['..', '.', '.git'].include?( entry )
56
- full_path = ::File.join( path, entry )
56
+ full_path = File.join( path, entry )
57
57
 
58
- if ::Dir.exist?( ::File.join( full_path, '.git' ))
58
+ if Dir.exist?( File.join( full_path, '.git' ))
59
59
  repos_count += 1
60
60
 
61
61
  if level == 1
@@ -69,15 +69,15 @@ def self.walk_dir( path, repos=[], level=1, depth: nil )
69
69
  end
70
70
 
71
71
  buf << " repo ##{'%-2d' % repos_count} | "
72
- buf << "#{'%-20s' % entry} @ #{::File.basename(path)} (#{path})"
72
+ buf << "#{'%-20s' % entry} @ #{File.basename(path)} (#{path})"
73
73
  buf << "\n"
74
74
  repos << full_path
75
75
 
76
76
  ## check for bare bone git repos - todo/fix: add .gitconfig or such and more - why? why not?
77
- elsif ::Dir.exist?( ::File.join( full_path, 'hooks' )) &&
78
- ::Dir.exist?( ::File.join( full_path, 'info' )) &&
79
- ::Dir.exist?( ::File.join( full_path, 'objects' )) &&
80
- ::Dir.exist?( ::File.join( full_path, 'refs' ))
77
+ elsif Dir.exist?( File.join( full_path, 'hooks' )) &&
78
+ Dir.exist?( File.join( full_path, 'info' )) &&
79
+ Dir.exist?( File.join( full_path, 'objects' )) &&
80
+ Dir.exist?( File.join( full_path, 'refs' ))
81
81
  warns_count += 1
82
82
  buf << "!! WARN - skip bare git repo >#{entry}< @ #{path}\n"
83
83
  else
@@ -94,7 +94,7 @@ def self.walk_dir( path, repos=[], level=1, depth: nil )
94
94
 
95
95
  sub_dirs.each do |entry|
96
96
  ## continue walking
97
- full_path = ::File.join( path, entry )
97
+ full_path = File.join( path, entry )
98
98
  walk_dir( full_path, repos, level+1, depth: depth )
99
99
  end
100
100
 
@@ -4,9 +4,37 @@ module Mono
4
4
  class Tool
5
5
  def self.main( args=ARGV )
6
6
 
7
- ## note: for now assume first argument is command
8
- ## add options later
7
+ options = {}
8
+ OptionParser.new do |parser|
9
+ ## note:
10
+ ## you can add many/multiple modules
11
+ ## e.g. -r gitti -r mono etc.
12
+ parser.on( '-r NAME', '--require NAME') do |name|
13
+ options[:requires] ||= []
14
+ options[:requires] << name
15
+ end
16
+ ## todo/fix:
17
+ ## add --verbose
18
+ ## add -d/--debug
19
+ end.parse!( args )
20
+
21
+
22
+ ## add check for auto-require (e.g. ./config.rb)
23
+ if options[:requires] ## use custom (auto-)requires
24
+ options[:requires].each do |path|
25
+ puts "[monofile] auto-require >#{path}<..."
26
+ require( path )
27
+ end
28
+ else ## use/try defaults
29
+ config_path = "./config.rb"
30
+ if File.exist?( config_path )
31
+ puts "[monofile] auto-require (default) >#{config_path}<..."
32
+ require( config_path )
33
+ end
34
+ end
35
+
9
36
 
37
+ ## note: for now assume first argument is command
10
38
  cmd = if args.size == 0
11
39
  'status' ## make status "default" command
12
40
  else
@@ -16,20 +44,26 @@ class Tool
16
44
  ## note: allow shortcut for commands
17
45
  case cmd.downcase
18
46
  when 'status', 'stati', 'stat', 'st', 's'
19
- Mono.status
47
+ status
20
48
  when 'sync', 'syn', 'sy', ## note: allow aliases such as install, get & up too
21
49
  'get', 'g',
22
50
  'install', 'insta', 'inst', 'ins', 'i',
23
51
  'up', 'u'
24
- Mono.sync
52
+ sync
25
53
  when 'fetch', 'f'
26
- Mono.fetch
54
+ fetch
27
55
  when 'env', 'e'
28
- Mono.env
56
+ env
29
57
  when 'backup', 'back', 'b'
30
- Mono.backup
58
+ backup
31
59
  when 'run', 'r', 'exec'
32
- Mono.run( args )
60
+ run( args )
61
+
62
+
63
+ ##################
64
+ ## for debugging / linting
65
+ when 'walk'
66
+ Mono.walk
33
67
  else
34
68
  puts "!! ERROR: unknown command >#{cmd}<"
35
69
  exit 1
@@ -1,13 +1,13 @@
1
1
  ## note: use a different module/namespace
2
2
  ## for the gem version info e.g. MonoCore vs Mono
3
3
 
4
- module MonoCore ## todo/check: rename to MonoMeta, MonoModule or such - why? why not?
4
+ module Mono
5
+ module Module
6
+ module Tool ## todo/check: rename to MonoMeta, MonoModule or such - why? why not?
5
7
 
6
- ## note: move root to its own namespace to avoid
7
- ## conflict with Mono.root!!!!
8
- MAJOR = 0 ## todo: namespace inside version or something - why? why not??
9
- MINOR = 6
10
- PATCH = 0
8
+ MAJOR = 1 ## todo: namespace inside version or something - why? why not??
9
+ MINOR = 1
10
+ PATCH = 1
11
11
  VERSION = [MAJOR,MINOR,PATCH].join('.')
12
12
 
13
13
  def self.version
@@ -18,16 +18,19 @@ module MonoCore ## todo/check: rename to MonoMeta, MonoModule or such - why? w
18
18
  "monos/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
19
19
  end
20
20
 
21
+ ## note: move root to its own namespace to avoid
22
+ ## conflict with Mono.root!!!!
21
23
  def self.root
22
24
  File.expand_path( File.dirname(File.dirname(__FILE__) ))
23
25
  end
24
26
 
25
- end # module MonoCore
26
-
27
+ end # module Tool
28
+ end # module Module
29
+ end # module Mono
27
30
 
28
31
  ##################################
29
32
  # add a convenience shortcut for now - why? why not?
30
33
  module Mono
31
- VERSION = MonoCore::VERSION
34
+ VERSION = Mono::Module::Tool::VERSION
32
35
  end
33
36
 
@@ -1,5 +1,5 @@
1
1
  # note: allow require 'monos' too
2
2
  # (in addition to require 'mono')
3
3
 
4
- require_relative './mono'
4
+ require_relative './mono' ## todo/check: use just 'mono' - why? why not?
5
5
 
@@ -9,9 +9,9 @@ class TestBase < MiniTest::Test
9
9
  Git = Mono::Git
10
10
 
11
11
  def test_version
12
- puts MonoCore::VERSION
13
- puts MonoCore.banner
14
- puts MonoCore.root
12
+ puts Mono::Module::Tool::VERSION
13
+ puts Mono::Module::Tool.banner
14
+ puts Mono::Module::Tool.root
15
15
 
16
16
  puts Mono::VERSION
17
17
  end
@@ -21,7 +21,7 @@ class TestBase < MiniTest::Test
21
21
  end
22
22
 
23
23
  def test_env
24
- puts Mono.env
24
+ puts Mono::Tool.env
25
25
  end
26
26
 
27
27
 
@@ -0,0 +1,23 @@
1
+ ###
2
+ # to run use
3
+ # ruby -I ./lib -I ./test test/test_path.rb
4
+
5
+ require 'helper'
6
+
7
+ class TestPath < MiniTest::Test
8
+
9
+
10
+ def test_real_path
11
+ [
12
+ '@yorobot/stage/one',
13
+ 'one@yorobot/stage',
14
+ 'stage/one@yorobot',
15
+ ].each do |path|
16
+ puts "#{path} => >#{Monopath.parse( path )}<"
17
+
18
+ assert_equal "#{Mono.root}/yorobot/stage/one", Monopath.real_path( path )
19
+ end
20
+ end
21
+
22
+ end # class TestPath
23
+
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-24 00:00:00.000000000 Z
11
+ date: 2020-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: monofile
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.2
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: gitti
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +117,8 @@ files:
103
117
  - lib/monos.rb
104
118
  - test/helper.rb
105
119
  - test/test_base.rb
106
- homepage: https://github.com/rubycoco/git
120
+ - test/test_path.rb
121
+ homepage: https://github.com/rubycoco/monos
107
122
  licenses:
108
123
  - Public Domain
109
124
  metadata: {}