yggdrasil 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +2 -2
- data/lib/yggdrasil/add.rb +5 -4
- data/lib/yggdrasil/diff.rb +2 -2
- data/lib/yggdrasil/init.rb +55 -30
- data/lib/yggdrasil/list.rb +1 -1
- data/lib/yggdrasil/log.rb +3 -3
- data/lib/yggdrasil/revert.rb +6 -10
- data/lib/yggdrasil/status.rb +2 -2
- data/lib/yggdrasil/update.rb +2 -2
- data/lib/yggdrasil/version.rb +1 -1
- data/lib/yggdrasil.rb +41 -37
- data/spec/add_spec.rb +2 -2
- data/spec/commit_spec.rb +1 -1
- data/spec/diff_spec.rb +24 -4
- data/spec/help_spec.rb +18 -18
- data/spec/init_spec.rb +14 -13
- data/spec/list_spec.rb +5 -5
- data/spec/log_spec.rb +4 -4
- data/spec/revert_spec.rb +11 -12
- data/spec/spec_helper.rb +3 -3
- data/spec/status_spec.rb +16 -13
- data/spec/version_spec.rb +2 -2
- metadata +4 -4
data/README.md
CHANGED
@@ -14,7 +14,7 @@ And you have to install subversion:
|
|
14
14
|
|
15
15
|
Prepare subversion repository and initialize Yggdrasil:
|
16
16
|
|
17
|
-
$ svnadmin create ~/svn-repo
|
17
|
+
(e.g.)$ svnadmin create ~/svn-repo
|
18
18
|
$ yggdrasil init --repo file://$HOME/svn-repo
|
19
19
|
|
20
20
|
You should use svn-server if you have.
|
@@ -23,7 +23,7 @@ Prepare subversion repository and initialize Yggdrasil:
|
|
23
23
|
|
24
24
|
Add configuration files:
|
25
25
|
|
26
|
-
$ yggdrasil add
|
26
|
+
$ yggdrasil add /etc/hosts /etc/fstab ..etc
|
27
27
|
|
28
28
|
Check modify and/or delete:
|
29
29
|
|
data/lib/yggdrasil/add.rb
CHANGED
@@ -10,15 +10,16 @@ class Yggdrasil
|
|
10
10
|
next
|
11
11
|
end
|
12
12
|
mirror_path = @mirror_dir
|
13
|
-
file_path.split('/')[1..-1]
|
14
|
-
|
13
|
+
file_path_parts = file_path.split('/')[1..-1]
|
14
|
+
file_path_parts.each do |part|
|
15
|
+
mirror_path += "/#{part}"
|
15
16
|
next if File.exist?(mirror_path)
|
16
|
-
if
|
17
|
+
if part.equal?(file_path_parts[-1])
|
17
18
|
FileUtils.copy file_path, mirror_path
|
18
19
|
else
|
19
20
|
Dir.mkdir mirror_path
|
20
21
|
end
|
21
|
-
puts system3("#@svn add
|
22
|
+
puts system3("#@svn add #{mirror_path}")
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
data/lib/yggdrasil/diff.rb
CHANGED
@@ -10,11 +10,11 @@ class Yggdrasil
|
|
10
10
|
|
11
11
|
paths = Array.new
|
12
12
|
if args.size == 0
|
13
|
-
paths << @current_dir.sub(%r{
|
13
|
+
paths << @current_dir.sub(%r{^/*}, '')
|
14
14
|
else
|
15
15
|
args.each do |path|
|
16
16
|
path = "#@current_dir/#{path}" unless %r{^/} =~ path
|
17
|
-
paths << path.sub(%r{
|
17
|
+
paths << path.sub(%r{^/*}, '')
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
data/lib/yggdrasil/init.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
class Yggdrasil
|
2
2
|
|
3
3
|
# @param [Array] args
|
4
|
-
def
|
5
|
-
ENV['LANG'] = 'en_US.UTF-8'
|
4
|
+
def init(args)
|
6
5
|
|
7
6
|
args, options = parse_options(args,
|
8
|
-
{'--
|
7
|
+
{'--username'=>:username, '--password'=>:password,
|
8
|
+
'--repo'=>:repo, '--parents'=>:parents?, '--debug'=>:debug?})
|
9
9
|
if args.size != 0
|
10
10
|
error "invalid arguments: #{args.join(',')}"
|
11
11
|
end
|
@@ -20,9 +20,8 @@ class Yggdrasil
|
|
20
20
|
end
|
21
21
|
svn_version=$1
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
puts "#{CMD} error: already exist .yggdrasil directory: #{config_dir}"
|
23
|
+
if File.exist?(@config_file)
|
24
|
+
puts "#{CMD} error: already exist config file: #@config_file"
|
26
25
|
exit 1
|
27
26
|
end
|
28
27
|
|
@@ -42,43 +41,69 @@ class Yggdrasil
|
|
42
41
|
options = input_user_pass(options)
|
43
42
|
|
44
43
|
puts "SVN access test..."
|
44
|
+
url_parts = options[:repo].split('/')
|
45
|
+
url_parts_num = url_parts.size
|
45
46
|
loop do
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
puts "SVN access: OK."
|
51
|
-
break
|
47
|
+
puts "url_parts_num=#{url_parts_num}" if options[:debug?]
|
48
|
+
if url_parts_num < 3
|
49
|
+
puts "SVN error: can not access to '#{options[:repo]}'."
|
50
|
+
exit 1
|
52
51
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
52
|
+
url = url_parts[0...url_parts_num].join('/')
|
53
|
+
puts "try url=#{url}" if options[:debug?]
|
54
|
+
ret = system3("#{svn} ls --no-auth-cache --non-interactive" +
|
55
|
+
" --username '#{options[:username]}' --password '#{options[:password]}'" +
|
56
|
+
" #{url}", false)
|
58
57
|
unless ret.nil?
|
59
|
-
puts "SVN
|
58
|
+
puts "SVN access OK: #{url}"
|
60
59
|
break
|
61
60
|
end
|
62
61
|
|
63
|
-
|
64
|
-
exit 1
|
62
|
+
url_parts_num -= 1
|
65
63
|
end
|
66
64
|
|
67
|
-
Dir.mkdir config_dir, 0755
|
68
|
-
|
65
|
+
Dir.mkdir @config_dir, 0755 unless File.exist?(@config_dir)
|
66
|
+
|
67
|
+
if url_parts_num != url_parts.size
|
68
|
+
until options[:parents?]
|
69
|
+
puts "not exist directory(s): #{url_parts[url_parts_num...url_parts.size].join('/')}"
|
70
|
+
print "make directory(s)? [Yn]: "
|
71
|
+
input = $stdin.gets
|
72
|
+
exit 1 if input.nil?
|
73
|
+
input.chomp!
|
74
|
+
return if input == 'n'
|
75
|
+
break if input == 'Y'
|
76
|
+
end
|
77
|
+
`rm -rf #@mirror_dir`
|
78
|
+
system3 "#{svn} checkout --no-auth-cache --non-interactive" +
|
79
|
+
" --username '#{options[:username]}' --password '#{options[:password]}'" +
|
80
|
+
" #{url_parts[0...url_parts_num].join('/')} #@mirror_dir"
|
81
|
+
add_paths = Array.new
|
82
|
+
path = @mirror_dir
|
83
|
+
while url_parts_num < url_parts.size
|
84
|
+
path += '/' + url_parts[url_parts_num]
|
85
|
+
Dir.mkdir path
|
86
|
+
system3 "#{svn} add #{path}"
|
87
|
+
add_paths << path
|
88
|
+
url_parts_num += 1
|
89
|
+
end
|
90
|
+
system3 "#{svn} commit -m 'yggdrasil init' --no-auth-cache --non-interactive" +
|
91
|
+
" --username '#{options[:username]}' --password '#{options[:password]}'" +
|
92
|
+
' ' + add_paths.join(' ')
|
93
|
+
system3 "rm -rf #@mirror_dir"
|
94
|
+
end
|
95
|
+
|
96
|
+
File.open(@config_file, "w") do |f|
|
69
97
|
f.write "path=#{ENV['PATH']}\n"\
|
70
98
|
"svn=#{svn}\n"\
|
71
99
|
"svn_version=#{svn_version}\n"\
|
72
100
|
"repo=#{options[:repo]}\n"
|
73
101
|
end
|
74
102
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
puts "SVN checkout: error."
|
81
|
-
exit 1
|
82
|
-
end
|
103
|
+
`rm -rf #@mirror_dir`
|
104
|
+
system3 "#{svn} checkout"\
|
105
|
+
" --no-auth-cache --non-interactive"\
|
106
|
+
" --username '#{options[:username]}' --password '#{options[:password]}'"\
|
107
|
+
" #{options[:repo]} #@mirror_dir"
|
83
108
|
end
|
84
109
|
end
|
data/lib/yggdrasil/list.rb
CHANGED
data/lib/yggdrasil/log.rb
CHANGED
@@ -8,15 +8,15 @@ class Yggdrasil
|
|
8
8
|
options = input_user_pass(options)
|
9
9
|
|
10
10
|
if args.size == 0
|
11
|
-
dir = @mirror_dir
|
11
|
+
dir = @mirror_dir + @current_dir
|
12
12
|
error "current directory is not managed." unless File.exist?(dir)
|
13
13
|
args << dir
|
14
14
|
else
|
15
15
|
args.collect! do |arg|
|
16
16
|
if %r{^/} =~ arg
|
17
|
-
@mirror_dir+arg
|
17
|
+
@mirror_dir + arg
|
18
18
|
else
|
19
|
-
@mirror_dir
|
19
|
+
@mirror_dir + @current_dir + '/' + arg
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/lib/yggdrasil/revert.rb
CHANGED
@@ -24,26 +24,22 @@ class Yggdrasil
|
|
24
24
|
return if confirmed_updates.size == 0
|
25
25
|
|
26
26
|
FileUtils.cd @mirror_dir do
|
27
|
-
system3 "#@svn revert"
|
28
|
-
" --no-auth-cache --non-interactive"\
|
29
|
-
" --username '#{options[:username]}' --password '#{options[:password]}'"\
|
30
|
-
" #{confirmed_updates.reverse.join(' ')}"
|
27
|
+
system3 "#@svn revert #{confirmed_updates.reverse.join(' ')}"
|
31
28
|
|
32
29
|
# make ls hash
|
33
|
-
out = system3("#@svn ls --no-auth-cache --non-interactive"\
|
34
|
-
" --username '#{options[:username]}' --password '#{options[:password]}'"
|
35
|
-
" --depth infinity #@repo")
|
30
|
+
out = system3("#@svn ls -R #@repo --no-auth-cache --non-interactive"\
|
31
|
+
" --username '#{options[:username]}' --password '#{options[:password]}'")
|
36
32
|
ls_hash = Hash.new
|
37
33
|
out.split(/\n/).each {|relative| ls_hash[relative]=true}
|
38
34
|
|
39
35
|
# reflect mirror to real file
|
40
36
|
confirmed_updates.each do |file|
|
41
37
|
if ls_hash.has_key?(file)
|
42
|
-
if File.file?(
|
43
|
-
FileUtils.copy_file
|
38
|
+
if File.file?("#@mirror_dir/#{file}")
|
39
|
+
FileUtils.copy_file "#@mirror_dir/#{file}", "/#{file}"
|
44
40
|
end
|
45
41
|
else
|
46
|
-
system3 "rm -rf #{@mirror_dir+'/'+file}"
|
42
|
+
system3 "rm -rf #{@mirror_dir + '/' + file}"
|
47
43
|
end
|
48
44
|
end
|
49
45
|
end
|
data/lib/yggdrasil/status.rb
CHANGED
@@ -11,11 +11,11 @@ class Yggdrasil
|
|
11
11
|
|
12
12
|
paths = String.new
|
13
13
|
if args.size == 0
|
14
|
-
paths += ' '+@current_dir.sub(%r{
|
14
|
+
paths += ' '+@current_dir.sub(%r{^/*}, '')
|
15
15
|
else
|
16
16
|
args.each do |path|
|
17
17
|
path = "#@current_dir/#{path}" unless %r{^/} =~ path
|
18
|
-
paths += ' ' + path.sub(%r{
|
18
|
+
paths += ' ' + path.sub(%r{^/*}, '')
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
data/lib/yggdrasil/update.rb
CHANGED
@@ -11,7 +11,7 @@ class Yggdrasil
|
|
11
11
|
|
12
12
|
updates = Array.new
|
13
13
|
FileUtils.cd @mirror_dir do
|
14
|
-
out = system3("#@svn status -qu --
|
14
|
+
out = system3("#@svn status -qu --no-auth-cache --non-interactive" +
|
15
15
|
" --username '#{options[:username]}' --password '#{options[:password]}'")
|
16
16
|
out.split(/\n/).each do |line|
|
17
17
|
updates << $1 if /^.*\*.*\s(\S+)\s*$/ =~ line
|
@@ -56,7 +56,7 @@ class Yggdrasil
|
|
56
56
|
# reflect mirror to real file
|
57
57
|
confirmed_updates.each do |update_file|
|
58
58
|
if File.exist?(update_file)
|
59
|
-
FileUtils.copy_file
|
59
|
+
FileUtils.copy_file "#@mirror_dir/#{update_file}", "/#{update_file}"
|
60
60
|
else
|
61
61
|
system3 "rm -rf /#{update_file}"
|
62
62
|
end
|
data/lib/yggdrasil/version.rb
CHANGED
data/lib/yggdrasil.rb
CHANGED
@@ -35,7 +35,7 @@ class Yggdrasil
|
|
35
35
|
when 'help', 'h', '?'
|
36
36
|
help(args[1..-1])
|
37
37
|
when 'init'
|
38
|
-
init(args[1..-1])
|
38
|
+
new(false).init(args[1..-1])
|
39
39
|
when 'list', 'ls'
|
40
40
|
new.list(args[1..-1])
|
41
41
|
when 'log'
|
@@ -55,9 +55,10 @@ class Yggdrasil
|
|
55
55
|
|
56
56
|
# @param [String] cmd
|
57
57
|
def Yggdrasil.system3(cmd, err_exit=true)
|
58
|
-
out = `#{cmd}`
|
58
|
+
out = `#{cmd} 2>&1`
|
59
|
+
stat = $?
|
59
60
|
|
60
|
-
unless
|
61
|
+
unless stat.success?
|
61
62
|
return nil unless err_exit
|
62
63
|
$stderr.puts "#{CMD} error: command failure: #{cmd}"
|
63
64
|
$stderr.puts "command output:"
|
@@ -115,47 +116,50 @@ class Yggdrasil
|
|
115
116
|
return options
|
116
117
|
end
|
117
118
|
|
118
|
-
def initialize
|
119
|
-
|
120
|
-
@config = read_config
|
121
|
-
ENV["PATH"] = @config[:path]
|
122
|
-
@svn = @config[:svn]
|
123
|
-
@repo = @config[:repo]
|
119
|
+
def initialize(exist_config = true)
|
124
120
|
@current_dir = `readlink -f .`.chomp
|
125
|
-
@
|
121
|
+
@config_dir = "#{ENV["HOME"]}/.yggdrasil"
|
122
|
+
@config_file = "#@config_dir/config"
|
123
|
+
@mirror_dir = "#@config_dir/mirror"
|
124
|
+
|
125
|
+
return unless exist_config
|
126
|
+
configs = read_config
|
127
|
+
ENV["PATH"] = configs[:path]
|
128
|
+
@svn = configs[:svn]
|
129
|
+
@repo = configs[:repo]
|
126
130
|
end
|
127
131
|
|
128
132
|
# load config value from config file
|
129
133
|
def read_config
|
130
|
-
|
134
|
+
configs = Hash.new
|
131
135
|
begin
|
132
|
-
config_file
|
136
|
+
File.open(@config_file) do |file|
|
137
|
+
l = 0
|
138
|
+
while (line = file.gets)
|
139
|
+
l += 1
|
140
|
+
next if /^\s*#.*$/ =~ line # comment line
|
141
|
+
if /^\s*(\S+)\s*=\s*(\S+).*$/ =~ line
|
142
|
+
configs[$1.to_sym] = $2
|
143
|
+
else
|
144
|
+
puts "#{CMD} error: syntax error. :#@config_file(#{l})"
|
145
|
+
exit 1
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
133
149
|
rescue
|
134
|
-
puts "#{CMD} error: can not open config file:
|
150
|
+
puts "#{CMD} error: can not open config file: #@config_file"
|
135
151
|
exit 1
|
136
152
|
end
|
137
|
-
|
138
|
-
while (line = config_file.gets)
|
139
|
-
l += 1
|
140
|
-
next if /^\s*#.*$/ =~ line # comment line
|
141
|
-
if /^\s*(\S+)\s*=\s*(\S+).*$/ =~ line
|
142
|
-
@config[$1.to_sym] = $2
|
143
|
-
else
|
144
|
-
puts "#{CMD} error: syntax error. :#{ENV['HOME']}/.yggdrasil/config(#{l})"
|
145
|
-
exit 1
|
146
|
-
end
|
147
|
-
end
|
148
|
-
config_file.close
|
149
|
-
@config
|
153
|
+
configs
|
150
154
|
end
|
151
155
|
|
152
156
|
def sync_mirror(options)
|
153
157
|
updates = Array.new
|
154
158
|
FileUtils.cd @mirror_dir do
|
155
|
-
out = system3("#@svn ls #@repo
|
159
|
+
out = system3("#@svn ls #@repo -R --no-auth-cache --non-interactive" +
|
156
160
|
" --username '#{options[:username]}' --password '#{options[:password]}'")
|
157
161
|
files = out.split(/\n/)
|
158
|
-
out = system3("#@svn status -q --
|
162
|
+
out = system3("#@svn status -q --no-auth-cache --non-interactive" +
|
159
163
|
" --username '#{options[:username]}' --password '#{options[:password]}'")
|
160
164
|
out.split(/\n/).each do |line|
|
161
165
|
files << $1 if /^.*\s(\S+)\s*$/ =~ line
|
@@ -163,17 +167,17 @@ class Yggdrasil
|
|
163
167
|
files.sort!
|
164
168
|
files.uniq!
|
165
169
|
files.each do |file|
|
166
|
-
if !File.exist?(
|
170
|
+
if !File.exist?("/#{file}")
|
167
171
|
system3 "#@svn delete #{file} --force" +
|
168
172
|
" --no-auth-cache --non-interactive"
|
169
|
-
elsif File.file?(
|
170
|
-
if !File.exist?(
|
171
|
-
system3 "#@svn revert
|
173
|
+
elsif File.file?("/#{file}")
|
174
|
+
if !File.exist?("#@mirror_dir/#{file}")
|
175
|
+
system3 "#@svn revert #{file}"
|
172
176
|
end
|
173
|
-
FileUtils.copy_file
|
177
|
+
FileUtils.copy_file "/#{file}", "#@mirror_dir/#{file}"
|
174
178
|
end
|
175
179
|
end
|
176
|
-
out = system3("#@svn status -q --
|
180
|
+
out = system3("#@svn status -q --no-auth-cache --non-interactive" +
|
177
181
|
" --username '#{options[:username]}' --password '#{options[:password]}'")
|
178
182
|
out.split(/\n/).each do |line|
|
179
183
|
updates << $1 if /^.*\s(\S+)\s*$/ =~ line
|
@@ -186,13 +190,13 @@ class Yggdrasil
|
|
186
190
|
|
187
191
|
target_relatives = Array.new
|
188
192
|
if target_paths.size == 0
|
189
|
-
target_relatives << @current_dir.sub(%r{
|
193
|
+
target_relatives << @current_dir.sub(%r{^/*},'')
|
190
194
|
else
|
191
195
|
target_paths.each do |path|
|
192
196
|
if %r{^/} =~ path
|
193
|
-
target_relatives << path.sub(%r{
|
197
|
+
target_relatives << path.sub(%r{^/*},'') # cut first '/'
|
194
198
|
else
|
195
|
-
target_relatives << @current_dir.sub(%r{
|
199
|
+
target_relatives << @current_dir.sub(%r{^/*},'') + '/' + path
|
196
200
|
end
|
197
201
|
end
|
198
202
|
end
|
data/spec/add_spec.rb
CHANGED
@@ -9,10 +9,10 @@ describe Yggdrasil, "add" do
|
|
9
9
|
|
10
10
|
it 'should warn: add non-exist files' do
|
11
11
|
puts '---- should warn: add non-exist files'
|
12
|
-
out =
|
12
|
+
out = catch_out_err{Yggdrasil.command %w{add hoge}}
|
13
13
|
out.should == "no such file: #{`readlink -f hoge`}"
|
14
14
|
|
15
|
-
out =
|
15
|
+
out = catch_out_err{Yggdrasil.command %w{add /etc/hoge}}
|
16
16
|
out.should == "no such file: /etc/hoge\n"
|
17
17
|
end
|
18
18
|
|
data/spec/commit_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe Yggdrasil, "commit" do
|
|
8
8
|
puts '-- init'
|
9
9
|
Yggdrasil.command %w{init} +
|
10
10
|
%w{--repo svn://localhost/tmp/yggdrasil-test/svn-repo/mng-repo/host-name/} +
|
11
|
-
%w{--username hoge --password foo}
|
11
|
+
%w{--username hoge --password foo --parents}
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'should commit added files' do
|
data/spec/diff_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe Yggdrasil, "diff" do
|
|
13
13
|
|
14
14
|
it 'should success diff (absolute/relative path)' do
|
15
15
|
puts "---- should success diff (absolute/relative path)"
|
16
|
-
out =
|
16
|
+
out = catch_out_err do
|
17
17
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
18
18
|
Yggdrasil.command(%w{diff /tmp/yggdrasil-test/A B --username hoge --password foo})
|
19
19
|
end
|
@@ -40,7 +40,7 @@ EOS
|
|
40
40
|
|
41
41
|
it 'should success (no path)' do
|
42
42
|
puts "---- should success (no path)"
|
43
|
-
out =
|
43
|
+
out = catch_out_err do
|
44
44
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
45
45
|
Yggdrasil.command %w{diff --username hoge --password foo}
|
46
46
|
end
|
@@ -67,7 +67,7 @@ EOS
|
|
67
67
|
|
68
68
|
it 'should success (-r)' do
|
69
69
|
puts "---- should success (-r)"
|
70
|
-
out =
|
70
|
+
out = catch_out_err do
|
71
71
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
72
72
|
Yggdrasil.command %w{diff -r 2:3 A --username hoge --password foo}
|
73
73
|
end
|
@@ -85,7 +85,7 @@ EOS
|
|
85
85
|
|
86
86
|
it 'should success (--revision)' do
|
87
87
|
puts "---- should success (--revision)"
|
88
|
-
out =
|
88
|
+
out = catch_out_err do
|
89
89
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
90
90
|
Yggdrasil.command %w{diff --revision 3 A --username hoge --password foo}
|
91
91
|
end
|
@@ -99,6 +99,26 @@ Index: tmp/yggdrasil-test/A
|
|
99
99
|
hoge
|
100
100
|
hoge
|
101
101
|
+HOGE
|
102
|
+
EOS
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'should error: diff with incorrect option' do
|
106
|
+
puts "---- should error: diff with incorrect option"
|
107
|
+
cmd = %w{diff --hoge --username hoge --password foo}
|
108
|
+
|
109
|
+
tmp_err = $stderr
|
110
|
+
$stderr = StringIO.new
|
111
|
+
FileUtils.cd "/" do
|
112
|
+
lambda{Yggdrasil.command cmd}.should raise_error(SystemExit)
|
113
|
+
end
|
114
|
+
out = $stderr.string
|
115
|
+
$stderr = tmp_err
|
116
|
+
out.sub!(%r{/\S*svn}, 'svn')
|
117
|
+
out.should == <<"EOS"
|
118
|
+
rspec error: command failure: svn diff --no-auth-cache --non-interactive --username hoge --password foo --hoge
|
119
|
+
command output:
|
120
|
+
svn: invalid option: --hoge
|
121
|
+
Type 'svn help' for usage.
|
102
122
|
EOS
|
103
123
|
end
|
104
124
|
end
|
data/spec/help_spec.rb
CHANGED
@@ -29,31 +29,31 @@ EOS
|
|
29
29
|
|
30
30
|
it 'should show subcommands on no subcommands' do
|
31
31
|
puts '---- should show subcommands on no subcommands'
|
32
|
-
out =
|
32
|
+
out = catch_out_err{Yggdrasil.command []}
|
33
33
|
out.should == show_subcommands
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should show subcommands on "help"' do
|
37
37
|
puts '---- should show subcommands on "help"'
|
38
|
-
out =
|
38
|
+
out = catch_out_err{Yggdrasil.command %w{help}}
|
39
39
|
out.should == show_subcommands
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'should show subcommands on "h"' do
|
43
43
|
puts '---- should show subcommands on "h"'
|
44
|
-
out =
|
44
|
+
out = catch_out_err{Yggdrasil.command %w{h}}
|
45
45
|
out.should == show_subcommands
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should show subcommands on "?"' do
|
49
49
|
puts '---- should show subcommands on "?"'
|
50
|
-
out =
|
50
|
+
out = catch_out_err{Yggdrasil.command %w{?}}
|
51
51
|
out.should == show_subcommands
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'should be unknown subcommand on "hoge"' do
|
55
55
|
puts '---- should be unknown subcommand on "hoge"'
|
56
|
-
out =
|
56
|
+
out = catch_out_err do
|
57
57
|
lambda{Yggdrasil.command(%w{hoge})}.should raise_error(SystemExit)
|
58
58
|
end
|
59
59
|
out.should == "#{File.basename($0)} error: Unknown subcommand: 'hoge'\n\n"
|
@@ -67,13 +67,13 @@ EOS
|
|
67
67
|
|
68
68
|
it 'should show help_help' do
|
69
69
|
puts '---- should show help_help'
|
70
|
-
out =
|
70
|
+
out = catch_out_err{Yggdrasil.command %w{help help}}
|
71
71
|
out.should == help_help
|
72
72
|
end
|
73
73
|
|
74
74
|
it 'should error too many arguments' do
|
75
75
|
puts '---- should error too many arguments'
|
76
|
-
out =
|
76
|
+
out = catch_out_err do
|
77
77
|
lambda{Yggdrasil.command(%w{help help help})}.should raise_error(SystemExit)
|
78
78
|
end
|
79
79
|
out.should == "#{File.basename($0)} error: too many arguments.\n\n"
|
@@ -81,7 +81,7 @@ EOS
|
|
81
81
|
|
82
82
|
it 'should show help of version' do
|
83
83
|
puts '---- should show help of version'
|
84
|
-
out =
|
84
|
+
out = catch_out_err{Yggdrasil.command %w{help version}}
|
85
85
|
out.should == <<"EOS"
|
86
86
|
version: See the program version
|
87
87
|
usage: #{File.basename($0)} version
|
@@ -91,7 +91,7 @@ EOS
|
|
91
91
|
|
92
92
|
it 'should show help of init' do
|
93
93
|
puts '---- should show help of init'
|
94
|
-
out =
|
94
|
+
out = catch_out_err{Yggdrasil.command %w{help init}}
|
95
95
|
out.should == <<"EOS"
|
96
96
|
init: Check environment and initialize configuration.
|
97
97
|
usage: #{File.basename($0)} init [OPTIONS...]
|
@@ -106,7 +106,7 @@ EOS
|
|
106
106
|
|
107
107
|
it 'should show help of add' do
|
108
108
|
puts '---- should show help of add'
|
109
|
-
out =
|
109
|
+
out = catch_out_err{Yggdrasil.command %w{help add}}
|
110
110
|
out.should == <<"EOS"
|
111
111
|
add: Add files to management list (add to subversion)
|
112
112
|
usage #{File.basename($0)} add [FILES...]
|
@@ -116,7 +116,7 @@ EOS
|
|
116
116
|
|
117
117
|
it 'should show help of commit' do
|
118
118
|
puts '---- should show help of commit'
|
119
|
-
out =
|
119
|
+
out = catch_out_err{Yggdrasil.command %w{help commit}}
|
120
120
|
out.should == <<"EOS"
|
121
121
|
commit (ci): Send changes from your local file to the repository.
|
122
122
|
usage: #{File.basename($0)} commit [OPTIONS...] [FILES...]
|
@@ -132,7 +132,7 @@ EOS
|
|
132
132
|
|
133
133
|
it 'should show help of cleanup' do
|
134
134
|
puts '---- should show help of cleanup'
|
135
|
-
out =
|
135
|
+
out = catch_out_err{Yggdrasil.command %w{help cleanup}}
|
136
136
|
out.should == <<"EOS"
|
137
137
|
cleanup: clean up the working copy
|
138
138
|
usage: #{File.basename($0)} cleanup [OPTIONS...]
|
@@ -146,7 +146,7 @@ EOS
|
|
146
146
|
|
147
147
|
it 'should show help of diff' do
|
148
148
|
puts '---- should show help of diff'
|
149
|
-
out =
|
149
|
+
out = catch_out_err{Yggdrasil.command %w{help diff}}
|
150
150
|
out.should == <<"EOS"
|
151
151
|
diff (di): Display the differences between two revisions or paths.
|
152
152
|
usage: #{File.basename($0)} diff [OPTIONS...] [PATH...]
|
@@ -168,7 +168,7 @@ EOS
|
|
168
168
|
|
169
169
|
it 'should show help of list' do
|
170
170
|
puts '---- should show help of list'
|
171
|
-
out =
|
171
|
+
out = catch_out_err{Yggdrasil.command %w{help list}}
|
172
172
|
out.should == <<"EOS"
|
173
173
|
list (ls): List directory entries in the repository.
|
174
174
|
usage: #{File.basename($0)} list [OPTIONS...] [PATH...]
|
@@ -193,7 +193,7 @@ EOS
|
|
193
193
|
|
194
194
|
it 'should show help of log' do
|
195
195
|
puts '---- should show help of log'
|
196
|
-
out =
|
196
|
+
out = catch_out_err{Yggdrasil.command %w{help log}}
|
197
197
|
out.should == <<"EOS"
|
198
198
|
log: Show the log messages for a set of revision(s) and/or file(s).
|
199
199
|
usage: #{File.basename($0)} log [OPTIONS...] [PATH]
|
@@ -215,7 +215,7 @@ EOS
|
|
215
215
|
|
216
216
|
it 'should show help of status' do
|
217
217
|
puts '---- should show help of status'
|
218
|
-
out =
|
218
|
+
out = catch_out_err{Yggdrasil.command %w{help status}}
|
219
219
|
out.should == <<"EOS"
|
220
220
|
status (stat, st): Print the status of managed files and directories.
|
221
221
|
usage: #{File.basename($0)} status [OPTIONS...] [PATH...]
|
@@ -231,7 +231,7 @@ EOS
|
|
231
231
|
|
232
232
|
it 'should show help of update' do
|
233
233
|
puts '---- should show help of update'
|
234
|
-
out =
|
234
|
+
out = catch_out_err{Yggdrasil.command %w{help update}}
|
235
235
|
out.should == <<"EOS"
|
236
236
|
update (up): Bring changes from the repository into the local files.
|
237
237
|
usage: #{File.basename($0)} update [PATH...]
|
@@ -254,7 +254,7 @@ EOS
|
|
254
254
|
|
255
255
|
it 'should show help of revert' do
|
256
256
|
puts '---- should show help of revert'
|
257
|
-
out =
|
257
|
+
out = catch_out_err{Yggdrasil.command %w{help revert}}
|
258
258
|
out.should == <<"EOS"
|
259
259
|
revert: Restore pristine working copy file (undo most local edits).
|
260
260
|
usage: #{File.basename($0)} revert [PATH...]
|
data/spec/init_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe Yggdrasil, "init" do
|
|
8
8
|
|
9
9
|
it 'should error: "Not enough arguments provided"' do
|
10
10
|
puts '---- should error: "Not enough arguments provided"'
|
11
|
-
out =
|
11
|
+
out = catch_out_err do
|
12
12
|
lambda{Yggdrasil.command(%w{init --repo})}.should raise_error(SystemExit)
|
13
13
|
end
|
14
14
|
out.should == "#{File.basename($0)} error: Not enough arguments provided: --repo\n\n"
|
@@ -17,7 +17,7 @@ describe Yggdrasil, "init" do
|
|
17
17
|
it 'should error: can not access to SVN server' do
|
18
18
|
puts '---- should error: can not access to SVN server'
|
19
19
|
`rm -rf /tmp/yggdrasil-test/.yggdrasil`
|
20
|
-
out =
|
20
|
+
out = catch_out_err do
|
21
21
|
cmd_args = %w{init --repo file:///tmp/yggdrasil-test/hoge --username hoge --password foo}
|
22
22
|
lambda{Yggdrasil.command(cmd_args)}.should raise_error(SystemExit)
|
23
23
|
end
|
@@ -29,7 +29,7 @@ describe Yggdrasil, "init" do
|
|
29
29
|
`rm -rf /tmp/yggdrasil-test/.yggdrasil`
|
30
30
|
`rm -rf /tmp/yggdrasil-test/svn-repo`
|
31
31
|
|
32
|
-
|
32
|
+
catch_out_err do # > /dev/null
|
33
33
|
cmd_args = %w{init --repo file:///tmp/yggdrasil-test/svn-repo/mng-repo/host-name/ --username hoge --password foo}
|
34
34
|
lambda{Yggdrasil.command(cmd_args)}.should raise_error(SystemExit)
|
35
35
|
end
|
@@ -41,12 +41,10 @@ describe Yggdrasil, "init" do
|
|
41
41
|
`rm -rf /tmp/yggdrasil-test/svn-repo`
|
42
42
|
`svnadmin create /tmp/yggdrasil-test/svn-repo`
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
49
|
-
out.should == "SVN access test...\nSVN mkdir: OK.\n"
|
44
|
+
Yggdrasil.command %w{init --debug} +
|
45
|
+
%w{--repo file:///tmp/yggdrasil-test/svn-repo/mng-repo/host-name/} +
|
46
|
+
%w{--username hoge --password foo},
|
47
|
+
"Y\n"
|
50
48
|
end
|
51
49
|
|
52
50
|
it 'should success: create config file (interactive)' do
|
@@ -70,17 +68,20 @@ EOS
|
|
70
68
|
end
|
71
69
|
`svnserve -d`
|
72
70
|
|
73
|
-
out =
|
71
|
+
out = catch_out_err do
|
74
72
|
Yggdrasil.command %w{init},
|
75
73
|
"svn://localhost/tmp/yggdrasil-test/svn-repo/mng-repo/host-name/\n"\
|
76
74
|
"hoge\n"\
|
77
|
-
"foo\n"
|
78
|
-
|
75
|
+
"foo\n"\
|
76
|
+
"Y\n"
|
77
|
+
end
|
79
78
|
out.should == \
|
80
79
|
"Input svn repo URL: "\
|
81
80
|
"Input svn username: "\
|
82
81
|
"Input svn password: "\
|
83
82
|
"SVN access test...\n"\
|
84
|
-
"SVN
|
83
|
+
"SVN access OK: svn://localhost/tmp/yggdrasil-test/svn-repo\n"\
|
84
|
+
"not exist directory(s): mng-repo/host-name\n"\
|
85
|
+
"make directory(s)? [Yn]: "
|
85
86
|
end
|
86
87
|
end
|
data/spec/list_spec.rb
CHANGED
@@ -9,14 +9,14 @@ describe Yggdrasil, "list" do
|
|
9
9
|
|
10
10
|
it 'should show list (absolute path)' do
|
11
11
|
puts '---- should show list (absolute path)'
|
12
|
-
out =
|
12
|
+
out = catch_out_err{Yggdrasil.command(%w{list /tmp} +
|
13
13
|
%w{--username hoge --password foo})}
|
14
14
|
out.should == "yggdrasil-test/\n"
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should show list (relative path)' do
|
18
18
|
puts '---- should show list (relative path)'
|
19
|
-
out =
|
19
|
+
out = catch_out_err do
|
20
20
|
FileUtils.cd "/tmp" do
|
21
21
|
Yggdrasil.command %w{list yggdrasil-test}+
|
22
22
|
%w{--username hoge --password foo}
|
@@ -27,7 +27,7 @@ describe Yggdrasil, "list" do
|
|
27
27
|
|
28
28
|
it 'should show list (no path)' do
|
29
29
|
puts '---- should show list (no path)'
|
30
|
-
out =
|
30
|
+
out = catch_out_err do
|
31
31
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
32
32
|
Yggdrasil.command %w{list} +
|
33
33
|
%w{--username hoge --password foo}
|
@@ -38,8 +38,8 @@ describe Yggdrasil, "list" do
|
|
38
38
|
|
39
39
|
it 'should show list (with options)' do
|
40
40
|
puts '---- should show list (with options)'
|
41
|
-
out =
|
42
|
-
|
41
|
+
out = catch_out_err{Yggdrasil.command(%w{list -R --revision 2 --recursive /tmp} +
|
42
|
+
%w{--username hoge --password foo})}
|
43
43
|
out.should == "yggdrasil-test/\nyggdrasil-test/A\nyggdrasil-test/B\n"
|
44
44
|
end
|
45
45
|
end
|
data/spec/log_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe Yggdrasil, "log" do
|
|
9
9
|
|
10
10
|
it 'should show log (absolute path)' do
|
11
11
|
puts '---- should show log (absolute path)'
|
12
|
-
out =
|
12
|
+
out = catch_out_err{Yggdrasil.command(%w{log /tmp} +
|
13
13
|
%w{--username hoge --password foo})}
|
14
14
|
out.gsub!(%r{20..-..-.. .*20..\)}, '')
|
15
15
|
out.should == <<"EOS"
|
@@ -35,7 +35,7 @@ EOS
|
|
35
35
|
|
36
36
|
it 'should show log (relative path)' do
|
37
37
|
puts '---- should show log (relative path)'
|
38
|
-
out =
|
38
|
+
out = catch_out_err do
|
39
39
|
FileUtils.cd "/tmp" do
|
40
40
|
Yggdrasil.command %w{log yggdrasil-test}+
|
41
41
|
%w{--username hoge --password foo}
|
@@ -65,7 +65,7 @@ EOS
|
|
65
65
|
|
66
66
|
it 'should show log (no path)' do
|
67
67
|
puts '---- should show log (no path)'
|
68
|
-
out =
|
68
|
+
out = catch_out_err do
|
69
69
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
70
70
|
Yggdrasil.command %w{log} +
|
71
71
|
%w{--username hoge --password foo}
|
@@ -95,7 +95,7 @@ EOS
|
|
95
95
|
|
96
96
|
it 'should show log (with options)' do
|
97
97
|
puts '---- should show log (with options)'
|
98
|
-
out =
|
98
|
+
out = catch_out_err{Yggdrasil.command(%w{log --revision 2 /tmp} +
|
99
99
|
%w{--username hoge --password foo})}
|
100
100
|
out.sub!(%r{20..-..-.. .*20..\)}, '')
|
101
101
|
out.should == <<"EOS"
|
data/spec/revert_spec.rb
CHANGED
@@ -22,7 +22,7 @@ describe Yggdrasil, "revert" do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
puts "\n-- check revert file (add)"
|
25
|
-
out =
|
25
|
+
out = catch_out_err do
|
26
26
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
27
27
|
%w{--username hoge --password foo}
|
28
28
|
end
|
@@ -40,7 +40,7 @@ describe Yggdrasil, "revert" do
|
|
40
40
|
"0\nY\n"
|
41
41
|
|
42
42
|
puts "\n-- check revert file (modify)"
|
43
|
-
out =
|
43
|
+
out = catch_out_err do
|
44
44
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
45
45
|
%w{--username hoge --password foo}
|
46
46
|
end
|
@@ -56,7 +56,7 @@ describe Yggdrasil, "revert" do
|
|
56
56
|
"foo\nY\n" # interactive input: password, Y/n
|
57
57
|
|
58
58
|
puts "\n-- check revert file"
|
59
|
-
out =
|
59
|
+
out = catch_out_err do
|
60
60
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
61
61
|
%w{--username hoge --password foo}
|
62
62
|
end
|
@@ -74,14 +74,13 @@ describe Yggdrasil, "revert" do
|
|
74
74
|
"0\nY\n"
|
75
75
|
|
76
76
|
puts "\n-- check revert file"
|
77
|
-
out =
|
77
|
+
out = catch_out_err do
|
78
78
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
79
79
|
%w{--username hoge --password foo}
|
80
80
|
end
|
81
81
|
puts out
|
82
|
-
out.
|
83
|
-
M
|
84
|
-
EOS
|
82
|
+
out.gsub!(%r{ +}, ' ')
|
83
|
+
out.should == "M 3 tmp/yggdrasil-test/A\n"
|
85
84
|
end
|
86
85
|
|
87
86
|
it 'should not revert deleted file' do
|
@@ -93,14 +92,14 @@ EOS
|
|
93
92
|
"0\nn\n"
|
94
93
|
|
95
94
|
puts "\n-- check status"
|
96
|
-
out =
|
95
|
+
out = catch_out_err do
|
97
96
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
98
97
|
%w{--username hoge --password foo}
|
99
98
|
end
|
99
|
+
out.chomp!
|
100
100
|
puts out
|
101
|
-
out.
|
102
|
-
D
|
103
|
-
EOS
|
101
|
+
out.gsub!(%r{\s+},' ')
|
102
|
+
out.should == "D 3 tmp/yggdrasil-test/A"
|
104
103
|
end
|
105
104
|
|
106
105
|
it 'should revert all files at once' do
|
@@ -117,7 +116,7 @@ EOS
|
|
117
116
|
"0\nY\n"
|
118
117
|
|
119
118
|
puts "\n-- check status"
|
120
|
-
out =
|
119
|
+
out = catch_out_err do
|
121
120
|
Yggdrasil.command %w{status /tmp/yggdrasil-test} +
|
122
121
|
%w{--username hoge --password foo}
|
123
122
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -32,7 +32,7 @@ def init_yggdrasil
|
|
32
32
|
puts '-- init'
|
33
33
|
Yggdrasil.command %w{init} +
|
34
34
|
%w{--repo svn://localhost/tmp/yggdrasil-test/svn-repo/mng-repo/host-name/} +
|
35
|
-
%w{--username hoge --password foo}
|
35
|
+
%w{--username hoge --password foo --parents}
|
36
36
|
puts '-- add'
|
37
37
|
`echo hoge > /tmp/yggdrasil-test/A`
|
38
38
|
`echo foo > /tmp/yggdrasil-test/B`
|
@@ -49,11 +49,11 @@ def init_yggdrasil
|
|
49
49
|
%w{--username hoge --password foo}
|
50
50
|
end
|
51
51
|
|
52
|
-
def
|
52
|
+
def catch_out_err
|
53
53
|
exit 1 unless block_given?
|
54
54
|
tmp_out = $stdout
|
55
55
|
$stdout = StringIO.new
|
56
56
|
yield
|
57
|
-
$stdout,tmp_out = tmp_out, $stdout
|
57
|
+
$stdout, tmp_out = tmp_out, $stdout
|
58
58
|
tmp_out.string
|
59
59
|
end
|
data/spec/status_spec.rb
CHANGED
@@ -16,44 +16,47 @@ describe Yggdrasil, "status" do
|
|
16
16
|
|
17
17
|
it 'should show status(absolute and relative)' do
|
18
18
|
puts "---- should show status(absolute and relative)"
|
19
|
-
out =
|
19
|
+
out = catch_out_err do
|
20
20
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
21
21
|
Yggdrasil.command %w{status /tmp/yggdrasil-test/A B --username hoge --password foo}
|
22
22
|
end
|
23
23
|
end
|
24
|
+
out.gsub!(%r{ +}, ' ')
|
24
25
|
out.should == <<"EOS"
|
25
|
-
M
|
26
|
-
D
|
26
|
+
M 3 tmp/yggdrasil-test/A
|
27
|
+
D 3 tmp/yggdrasil-test/B
|
27
28
|
EOS
|
28
29
|
end
|
29
30
|
|
30
31
|
it 'should show status(/)' do
|
31
32
|
puts "---- should show status(/)"
|
32
|
-
out =
|
33
|
+
out = catch_out_err do
|
33
34
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
34
35
|
Yggdrasil.command %w{status / --username hoge --password foo}
|
35
36
|
end
|
36
37
|
end
|
38
|
+
out.gsub!(%r{ +}, ' ')
|
37
39
|
out.should == <<"EOS"
|
38
|
-
M
|
39
|
-
D
|
40
|
-
A
|
41
|
-
A
|
40
|
+
M 3 tmp/yggdrasil-test/A
|
41
|
+
D 3 tmp/yggdrasil-test/B
|
42
|
+
A 0 tmp/yggdrasil-test/c/C
|
43
|
+
A 0 tmp/yggdrasil-test/c
|
42
44
|
EOS
|
43
45
|
end
|
44
46
|
|
45
47
|
it 'should show status (no path)' do
|
46
48
|
puts "---- should show status (no path)"
|
47
|
-
out =
|
49
|
+
out = catch_out_err do
|
48
50
|
FileUtils.cd "/tmp/yggdrasil-test" do
|
49
51
|
Yggdrasil.command %w{status --username hoge --password foo}
|
50
52
|
end
|
51
53
|
end
|
54
|
+
out.gsub!(%r{ +}, ' ')
|
52
55
|
out.should == <<"EOS"
|
53
|
-
M
|
54
|
-
D
|
55
|
-
A
|
56
|
-
A
|
56
|
+
M 3 tmp/yggdrasil-test/A
|
57
|
+
D 3 tmp/yggdrasil-test/B
|
58
|
+
A 0 tmp/yggdrasil-test/c/C
|
59
|
+
A 0 tmp/yggdrasil-test/c
|
57
60
|
EOS
|
58
61
|
end
|
59
62
|
end
|
data/spec/version_spec.rb
CHANGED
@@ -12,13 +12,13 @@ EOS
|
|
12
12
|
|
13
13
|
it 'should show version on "version"' do
|
14
14
|
puts '---- should show version on "version"'
|
15
|
-
out =
|
15
|
+
out = catch_out_err{Yggdrasil.command %w{version}}
|
16
16
|
out.should == show_version
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should show version on "--version"' do
|
20
20
|
puts '---- should show version on "--version"'
|
21
|
-
out =
|
21
|
+
out = catch_out_err{Yggdrasil.command %w{--version}}
|
22
22
|
out.should == show_version
|
23
23
|
end
|
24
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yggdrasil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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: 2013-01-
|
12
|
+
date: 2013-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -98,7 +98,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
98
|
version: '0'
|
99
99
|
segments:
|
100
100
|
- 0
|
101
|
-
hash:
|
101
|
+
hash: -1095897170101989481
|
102
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
segments:
|
109
109
|
- 0
|
110
|
-
hash:
|
110
|
+
hash: -1095897170101989481
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
113
|
rubygems_version: 1.8.23
|