dev 2.1.75 → 2.1.76
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +202 -202
- data/lib/apps/svn.rb +151 -151
- data/lib/apps/xcodebuild.rb +15 -15
- data/lib/base.rb +4 -4
- data/lib/base/dir.rb +98 -98
- data/lib/base/file.rb +34 -34
- data/lib/base/gemspec.rb +50 -50
- data/lib/base/hash.rb +20 -20
- data/lib/base/history.rb +38 -38
- data/lib/base/internet.rb +24 -24
- data/lib/base/project.rb +458 -458
- data/lib/base/string.rb +6 -6
- data/lib/base/text.rb +29 -29
- data/lib/base/timeout.rb +121 -121
- data/lib/base/timer.rb +44 -44
- data/lib/base/version.rb +82 -82
- data/lib/dev.config.rb +7 -7
- data/lib/tasks/clean.rb +9 -9
- data/lib/tasks/clobber.rb +25 -25
- data/lib/tasks/doc.rb +9 -9
- data/lib/tasks/info.rb +9 -9
- data/lib/tasks/publish.rb +33 -33
- data/lib/tasks/pull.rb +11 -11
- data/lib/tasks/update.rb +14 -14
- metadata +17 -3
data/lib/apps/xcodebuild.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
#COMMANDS[:build]=['xcodebuild clean -scheme Hydrogen -destination "name=iPhone 6"',
|
2
|
-
# 'xcodebuild build -scheme Hydrogen -destination "name=iPhone 6"']
|
3
|
-
# COMMANDS[:test]=['xcodebuild test -scheme Hydrogen -destination "name=iPhone 6"'] if RUBY_PLATFORM.include?('darwin')
|
4
|
-
|
5
|
-
class XCodeBuild < Hash
|
6
|
-
def self.get_build_commands xcodeproj_filename
|
7
|
-
#build_commands=Array.new
|
8
|
-
#build_command=Command.new('xcodebuild build')
|
9
|
-
#build_command[:directory] = File.dirname(xcodeproj_filename)
|
10
|
-
|
11
|
-
#name=xcodeproj_filename.gsub('.xcodeproj','')
|
12
|
-
#build_commands << "xcodebuild clean -scheme #{name} -destination \"name=iPhone 6\""
|
13
|
-
#build_commands << "xcodebuild build -scheme #{name} -destination \"name=iPhone 6\""
|
14
|
-
#build_commands << build_command
|
15
|
-
end
|
1
|
+
#COMMANDS[:build]=['xcodebuild clean -scheme Hydrogen -destination "name=iPhone 6"',
|
2
|
+
# 'xcodebuild build -scheme Hydrogen -destination "name=iPhone 6"']
|
3
|
+
# COMMANDS[:test]=['xcodebuild test -scheme Hydrogen -destination "name=iPhone 6"'] if RUBY_PLATFORM.include?('darwin')
|
4
|
+
|
5
|
+
class XCodeBuild < Hash
|
6
|
+
def self.get_build_commands xcodeproj_filename
|
7
|
+
#build_commands=Array.new
|
8
|
+
#build_command=Command.new('xcodebuild build')
|
9
|
+
#build_command[:directory] = File.dirname(xcodeproj_filename)
|
10
|
+
|
11
|
+
#name=xcodeproj_filename.gsub('.xcodeproj','')
|
12
|
+
#build_commands << "xcodebuild clean -scheme #{name} -destination \"name=iPhone 6\""
|
13
|
+
#build_commands << "xcodebuild build -scheme #{name} -destination \"name=iPhone 6\""
|
14
|
+
#build_commands << build_command
|
15
|
+
end
|
16
16
|
end
|
data/lib/base.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
puts __FILE__ if defined?(DEBUG)
|
2
|
-
|
3
|
-
['array','command','dir','environment','file','gemspec',
|
4
|
-
'hash','history','internet','project','projects','source',
|
1
|
+
puts __FILE__ if defined?(DEBUG)
|
2
|
+
|
3
|
+
['array','command','dir','environment','file','gemspec',
|
4
|
+
'hash','history','internet','project','projects','source',
|
5
5
|
'string','text','timeout','timer','version'].each{|name| require_relative("base/#{name}.rb")}
|
data/lib/base/dir.rb
CHANGED
@@ -1,99 +1,99 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
class Dir
|
4
|
-
def self.make directory
|
5
|
-
FileUtils.mkdir_p directory if !File.exists? directory
|
6
|
-
end
|
7
|
-
def self.remove directory, remove_empty_parents=false
|
8
|
-
begin
|
9
|
-
FileUtils.rm_rf directory if(!Dir.empty?(directory))
|
10
|
-
FileUtils.rm_r directory if(File.exists?(directory))
|
11
|
-
if(remove_empty_parents)
|
12
|
-
parent_dir=File.dirname(directory)
|
13
|
-
Dir.remove parent_dir, true if(Dir.empty?(parent_dir))
|
14
|
-
end
|
15
|
-
rescue
|
16
|
-
end
|
17
|
-
end
|
18
|
-
def self.empty? directory
|
19
|
-
if((Dir.entries(directory) - %w{ . .. }).empty?)
|
20
|
-
return true
|
21
|
-
end
|
22
|
-
false
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.get_latest_mtime directory
|
26
|
-
mtime=Time.new(1980)
|
27
|
-
Dir.chdir(directory) do
|
28
|
-
latest_filename=''
|
29
|
-
Dir.glob('**/*.*').each{|f|
|
30
|
-
if mtime.nil? || File.mtime(f) > mtime
|
31
|
-
mtime=File.mtime(f)
|
32
|
-
latest_filename=f
|
33
|
-
end
|
34
|
-
}
|
35
|
-
puts " latest_mtime #{mtime.to_s} #{latest_filename}" if Environment.default.debug?
|
36
|
-
end
|
37
|
-
mtime
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.zip(directory,files,zipfilename)
|
41
|
-
if Gem::Specification::find_all_by_name('rubyzip').any?
|
42
|
-
require 'zip'
|
43
|
-
File.delete(zipfilename) if(File.exists?(zipfilename))
|
44
|
-
Zip::File.open(zipfilename,Zip::File::CREATE) do |zipfile|
|
45
|
-
Dir.chdir(directory) do
|
46
|
-
count = 0
|
47
|
-
files.each{|source_file|
|
48
|
-
zipfile.add(source_file,"#{directory}/#{source_file}")
|
49
|
-
count = count + 1
|
50
|
-
}
|
51
|
-
puts "added #{count} files to #{zipfilename}"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
else
|
55
|
-
puts "rubyzip gem is not installed 'gem install rubyzip'"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.unzip(zipfilename,directory)
|
60
|
-
if Gem::Specification::find_all_by_name('rubyzip').any?
|
61
|
-
require 'zip'
|
62
|
-
count = 0
|
63
|
-
Zip::File.open(zipfilename) do |zip_file|
|
64
|
-
zip_file.each do |entry|
|
65
|
-
dest = "#{directory}/#{entry.to_s}"
|
66
|
-
parent_dir=File.dirname(dest)
|
67
|
-
FileUtils.mkdir_p parent_dir if(!Dir.exists?(parent_dir))
|
68
|
-
entry.extract("#{directory}/#{entry.to_s}")
|
69
|
-
count = count + 1
|
70
|
-
end
|
71
|
-
end
|
72
|
-
puts "extracted #{count} files to #{directory}"
|
73
|
-
else
|
74
|
-
puts "rubyzip gem is not installed 'gem install rubyzip'"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.copy_files(src_dir,glob_pattern,exclude_patterns,target_dir)
|
79
|
-
if(Dir.exists?(src_dir))
|
80
|
-
Dir.chdir(src_dir) do
|
81
|
-
Dir.glob(glob_pattern).each{|f|
|
82
|
-
if(File.file?(f))
|
83
|
-
exclude = false
|
84
|
-
if(!exclude_patterns.nil?)
|
85
|
-
exclude_patterns.each{|p|
|
86
|
-
exclude = true if(f.include?(p))
|
87
|
-
}
|
88
|
-
end
|
89
|
-
if(!exclude)
|
90
|
-
dest = "#{target_dir}/#{f}"
|
91
|
-
FileUtils.mkdir_p(File.dirname(dest)) if(!Dir.exists?(File.dirname(dest)))
|
92
|
-
FileUtils.cp(f,dest)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
}
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
class Dir
|
4
|
+
def self.make directory
|
5
|
+
FileUtils.mkdir_p directory if !File.exists? directory
|
6
|
+
end
|
7
|
+
def self.remove directory, remove_empty_parents=false
|
8
|
+
begin
|
9
|
+
FileUtils.rm_rf directory if(!Dir.empty?(directory))
|
10
|
+
FileUtils.rm_r directory if(File.exists?(directory))
|
11
|
+
if(remove_empty_parents)
|
12
|
+
parent_dir=File.dirname(directory)
|
13
|
+
Dir.remove parent_dir, true if(Dir.empty?(parent_dir))
|
14
|
+
end
|
15
|
+
rescue
|
16
|
+
end
|
17
|
+
end
|
18
|
+
def self.empty? directory
|
19
|
+
if((Dir.entries(directory) - %w{ . .. }).empty?)
|
20
|
+
return true
|
21
|
+
end
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.get_latest_mtime directory
|
26
|
+
mtime=Time.new(1980)
|
27
|
+
Dir.chdir(directory) do
|
28
|
+
latest_filename=''
|
29
|
+
Dir.glob('**/*.*').each{|f|
|
30
|
+
if mtime.nil? || File.mtime(f) > mtime
|
31
|
+
mtime=File.mtime(f)
|
32
|
+
latest_filename=f
|
33
|
+
end
|
34
|
+
}
|
35
|
+
puts " latest_mtime #{mtime.to_s} #{latest_filename}" if Environment.default.debug?
|
36
|
+
end
|
37
|
+
mtime
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.zip(directory,files,zipfilename)
|
41
|
+
if Gem::Specification::find_all_by_name('rubyzip').any?
|
42
|
+
require 'zip'
|
43
|
+
File.delete(zipfilename) if(File.exists?(zipfilename))
|
44
|
+
Zip::File.open(zipfilename,Zip::File::CREATE) do |zipfile|
|
45
|
+
Dir.chdir(directory) do
|
46
|
+
count = 0
|
47
|
+
files.each{|source_file|
|
48
|
+
zipfile.add(source_file,"#{directory}/#{source_file}")
|
49
|
+
count = count + 1
|
50
|
+
}
|
51
|
+
puts "added #{count} files to #{zipfilename}"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
else
|
55
|
+
puts "rubyzip gem is not installed 'gem install rubyzip'"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.unzip(zipfilename,directory)
|
60
|
+
if Gem::Specification::find_all_by_name('rubyzip').any?
|
61
|
+
require 'zip'
|
62
|
+
count = 0
|
63
|
+
Zip::File.open(zipfilename) do |zip_file|
|
64
|
+
zip_file.each do |entry|
|
65
|
+
dest = "#{directory}/#{entry.to_s}"
|
66
|
+
parent_dir=File.dirname(dest)
|
67
|
+
FileUtils.mkdir_p parent_dir if(!Dir.exists?(parent_dir))
|
68
|
+
entry.extract("#{directory}/#{entry.to_s}")
|
69
|
+
count = count + 1
|
70
|
+
end
|
71
|
+
end
|
72
|
+
puts "extracted #{count} files to #{directory}"
|
73
|
+
else
|
74
|
+
puts "rubyzip gem is not installed 'gem install rubyzip'"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.copy_files(src_dir,glob_pattern,exclude_patterns,target_dir)
|
79
|
+
if(Dir.exists?(src_dir))
|
80
|
+
Dir.chdir(src_dir) do
|
81
|
+
Dir.glob(glob_pattern).each{|f|
|
82
|
+
if(File.file?(f))
|
83
|
+
exclude = false
|
84
|
+
if(!exclude_patterns.nil?)
|
85
|
+
exclude_patterns.each{|p|
|
86
|
+
exclude = true if(f.include?(p))
|
87
|
+
}
|
88
|
+
end
|
89
|
+
if(!exclude)
|
90
|
+
dest = "#{target_dir}/#{f}"
|
91
|
+
FileUtils.mkdir_p(File.dirname(dest)) if(!Dir.exists?(File.dirname(dest)))
|
92
|
+
FileUtils.cp(f,dest)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
}
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
99
|
end
|
data/lib/base/file.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
puts __FILE__ if defined?(DEBUG)
|
2
|
-
|
3
|
-
require 'fileutils'
|
4
|
-
|
5
|
-
class File
|
6
|
-
def self.amalgamate filename,source
|
7
|
-
File.open(filename,'w'){|file|
|
8
|
-
source.each{|source_file|
|
9
|
-
file.puts IO.read(source_file)
|
10
|
-
}
|
11
|
-
}
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.publish destination, source_dir, source_glob='**/*', overwrite_existing=false
|
15
|
-
|
16
|
-
output = "\n"
|
17
|
-
FileUtils.mkdir_p destination if !File.exists? destination
|
18
|
-
|
19
|
-
files=nil
|
20
|
-
Dir.chdir(source_dir) do
|
21
|
-
files=FileList.new(source_glob).to_a
|
22
|
-
end
|
23
|
-
output = output + "\nfiles: #{files}.to_s"
|
24
|
-
|
25
|
-
Dir.chdir(source_dir) do
|
26
|
-
files.each{|f|
|
27
|
-
file="#{destination}/#{f}"
|
28
|
-
dirname=File.dirname(file)
|
29
|
-
FileUtils.mkdir_p dirname if !File.exists? dirname
|
30
|
-
FileUtils.cp(f,file) if !File.exists? file || overwrite_existing
|
31
|
-
}
|
32
|
-
end
|
33
|
-
output
|
34
|
-
end
|
1
|
+
puts __FILE__ if defined?(DEBUG)
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
class File
|
6
|
+
def self.amalgamate filename,source
|
7
|
+
File.open(filename,'w'){|file|
|
8
|
+
source.each{|source_file|
|
9
|
+
file.puts IO.read(source_file)
|
10
|
+
}
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.publish destination, source_dir, source_glob='**/*', overwrite_existing=false
|
15
|
+
|
16
|
+
output = "\n"
|
17
|
+
FileUtils.mkdir_p destination if !File.exists? destination
|
18
|
+
|
19
|
+
files=nil
|
20
|
+
Dir.chdir(source_dir) do
|
21
|
+
files=FileList.new(source_glob).to_a
|
22
|
+
end
|
23
|
+
output = output + "\nfiles: #{files}.to_s"
|
24
|
+
|
25
|
+
Dir.chdir(source_dir) do
|
26
|
+
files.each{|f|
|
27
|
+
file="#{destination}/#{f}"
|
28
|
+
dirname=File.dirname(file)
|
29
|
+
FileUtils.mkdir_p dirname if !File.exists? dirname
|
30
|
+
FileUtils.cp(f,file) if !File.exists? file || overwrite_existing
|
31
|
+
}
|
32
|
+
end
|
33
|
+
output
|
34
|
+
end
|
35
35
|
end
|
data/lib/base/gemspec.rb
CHANGED
@@ -1,51 +1,51 @@
|
|
1
|
-
puts __FILE__ if defined?(DEBUG)
|
2
|
-
require_relative('command.rb')
|
3
|
-
|
4
|
-
class Gemspec
|
5
|
-
def self.update gemspec_file
|
6
|
-
Text.replace_in_file gemspec_file,
|
7
|
-
/('\d{4}-\d{2}-\d{2}')/,
|
8
|
-
"'#{Time.now.strftime('%Y-%m-%d')}'"
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.gemfile gemspec_file
|
12
|
-
spec=Gem::Specification.load(gemspec_file)
|
13
|
-
return "#{spec.name}-#{spec.version}.gem" if !spec.nil?
|
14
|
-
return ""
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.version gemspec_file
|
18
|
-
spec=Gem::Specification.load(gemspec_file)
|
19
|
-
return spec.version.to_s
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.latest_published_version gemname
|
23
|
-
scan=`gem list -r #{gemname}`.scan(/^dev\s*\(([\d.]+)\)/)
|
24
|
-
if(!scan.nil?)
|
25
|
-
return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
|
26
|
-
end
|
27
|
-
''
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.published_version gemspec_file
|
31
|
-
published_version=''
|
32
|
-
spec=Gem::Specification.load(gemspec_file)
|
33
|
-
begin
|
34
|
-
published_version = latest_published_version spec.name# `gem list -r #{spec.name}`.scan(/\((\d+.\d+.\d+)\)/)[0][0]
|
35
|
-
rescue
|
36
|
-
published_version=''
|
37
|
-
end
|
38
|
-
published_version
|
39
|
-
end
|
40
|
-
def self.published? gemspec_file
|
41
|
-
published_version(gemspec_file)==version(gemspec_file) ? true : false
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.normalize gemspec_file
|
45
|
-
spec=Gem::Specification.load(gemspec_file)
|
46
|
-
File.open(gemspec_file,'w'){|f|f.write(spec.to_ruby)}
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.upgrade gemspec_file
|
50
|
-
end
|
1
|
+
puts __FILE__ if defined?(DEBUG)
|
2
|
+
require_relative('command.rb')
|
3
|
+
|
4
|
+
class Gemspec
|
5
|
+
def self.update gemspec_file
|
6
|
+
Text.replace_in_file gemspec_file,
|
7
|
+
/('\d{4}-\d{2}-\d{2}')/,
|
8
|
+
"'#{Time.now.strftime('%Y-%m-%d')}'"
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.gemfile gemspec_file
|
12
|
+
spec=Gem::Specification.load(gemspec_file)
|
13
|
+
return "#{spec.name}-#{spec.version}.gem" if !spec.nil?
|
14
|
+
return ""
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.version gemspec_file
|
18
|
+
spec=Gem::Specification.load(gemspec_file)
|
19
|
+
return spec.version.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.latest_published_version gemname
|
23
|
+
scan=`gem list -r #{gemname}`.scan(/^dev\s*\(([\d.]+)\)/)
|
24
|
+
if(!scan.nil?)
|
25
|
+
return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
|
26
|
+
end
|
27
|
+
''
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.published_version gemspec_file
|
31
|
+
published_version=''
|
32
|
+
spec=Gem::Specification.load(gemspec_file)
|
33
|
+
begin
|
34
|
+
published_version = latest_published_version spec.name# `gem list -r #{spec.name}`.scan(/\((\d+.\d+.\d+)\)/)[0][0]
|
35
|
+
rescue
|
36
|
+
published_version=''
|
37
|
+
end
|
38
|
+
published_version
|
39
|
+
end
|
40
|
+
def self.published? gemspec_file
|
41
|
+
published_version(gemspec_file)==version(gemspec_file) ? true : false
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.normalize gemspec_file
|
45
|
+
spec=Gem::Specification.load(gemspec_file)
|
46
|
+
File.open(gemspec_file,'w'){|f|f.write(spec.to_ruby)}
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.upgrade gemspec_file
|
50
|
+
end
|
51
51
|
end
|
data/lib/base/hash.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
puts __FILE__ if defined?(DEBUG)
|
2
|
-
|
3
|
-
class Hash
|
4
|
-
def execute value=nil
|
5
|
-
self.each{|k,v|
|
6
|
-
v.update if v.respond_to?(:update)
|
7
|
-
if(v.is_a?(Array) && v.length==0)
|
8
|
-
self.delete k
|
9
|
-
else
|
10
|
-
v.execute(value) if v.respond_to?(:execute)
|
11
|
-
end
|
12
|
-
}
|
13
|
-
end
|
14
|
-
def to_html
|
15
|
-
[
|
16
|
-
'<div>',
|
17
|
-
map { |k, v| ["<br/><div><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></div><br/>"] },
|
18
|
-
'</div>'
|
19
|
-
].join
|
20
|
-
end
|
1
|
+
puts __FILE__ if defined?(DEBUG)
|
2
|
+
|
3
|
+
class Hash
|
4
|
+
def execute value=nil
|
5
|
+
self.each{|k,v|
|
6
|
+
v.update if v.respond_to?(:update)
|
7
|
+
if(v.is_a?(Array) && v.length==0)
|
8
|
+
self.delete k
|
9
|
+
else
|
10
|
+
v.execute(value) if v.respond_to?(:execute)
|
11
|
+
end
|
12
|
+
}
|
13
|
+
end
|
14
|
+
def to_html
|
15
|
+
[
|
16
|
+
'<div>',
|
17
|
+
map { |k, v| ["<br/><div><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></div><br/>"] },
|
18
|
+
'</div>'
|
19
|
+
].join
|
20
|
+
end
|
21
21
|
end
|