svnx 0.6.2 → 1.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b1abb67560bed80480390d27d41acd6d3ffe838
4
- data.tar.gz: ab058e1531e2de8655d3e3d7c846e5bb7a4cd7b5
3
+ metadata.gz: 07670d8b843e714ca4bd3a0c8849eb19567191ee
4
+ data.tar.gz: 43c39c05b0ff27a68578e31f376494cbcfafd5db
5
5
  SHA512:
6
- metadata.gz: 5128b57a2815eb69da54105dd058e88222701870e6c789f38fc9c0c57b32927524051c59bf0567f512b867fb538db0beda94893c1f3ad1737bac8d05ed524f7c
7
- data.tar.gz: 317c11e6d1270022c10c8817b86f60413c933c39359a7a65e421a895457406f9aa85215d593be701566b974e18865891f046651325ab5f0cdba63b487c74bdf9
6
+ metadata.gz: afb1a70c67312ec8f952c0877521bdae844cb58bb8d105076dd4f2a4aa8148473668262bec0d596ab2192e738cf34ccfc345d243a5bee2f77802a2a63666f1f2
7
+ data.tar.gz: 822f61fe3bba8e331466502f60524cfe1ccd58454480a7409e7c2ff37523d5a1db20e17618f775410f4f33062b0809200f5196b95d65ae3e64ccf9db650b5de4
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # -*- ruby -*-
3
+
4
+ require 'system/command/line'
5
+ require 'logue/loggable'
6
+ require 'system/command/caching'
7
+
8
+ # this replaces svnx/lib/command/svncommand.
9
+
10
+ module SVNx
11
+ class CommandArgs
12
+ include Logue::Loggable
13
+
14
+ attr_accessor :path
15
+
16
+ def initialize args = Hash.new
17
+ @path = args[:path]
18
+ end
19
+
20
+ def to_a
21
+ [ @path ].compact
22
+ end
23
+ end
24
+ end
@@ -4,6 +4,7 @@
4
4
  require 'system/command/line'
5
5
  require 'logue/loggable'
6
6
  require 'system/command/caching'
7
+ require 'svnx/base/args'
7
8
 
8
9
  # this replaces svnx/lib/command/svncommand.
9
10
 
@@ -41,20 +42,6 @@ module SVNx
41
42
  include CmdLine
42
43
  end
43
44
 
44
- class CommandArgs
45
- include Logue::Loggable
46
-
47
- attr_accessor :path
48
-
49
- def initialize args = Hash.new
50
- @path = args[:path]
51
- end
52
-
53
- def to_a
54
- [ @path ].compact
55
- end
56
- end
57
-
58
45
  class Command
59
46
  include Logue::Loggable
60
47
 
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/ruby -w
2
+ # -*- ruby -*-
3
+
4
+ require 'system/command/line'
5
+ require 'system/command/caching'
6
+ require 'svnx/base/command'
7
+ require 'logue/loggable'
8
+ require 'svnx/base/args'
9
+
10
+ module SVNx
11
+ module LogCmdLine
12
+ end
13
+ end
14
+
15
+ module SVNx::LogCmdLine
16
+ class LogCommandArgs < SVNx::CommandArgs
17
+ include Logue::Loggable
18
+
19
+ attr_reader :limit
20
+ attr_reader :verbose
21
+ attr_reader :revision
22
+ attr_reader :use_cache
23
+
24
+ def initialize args
25
+ @limit = args[:limit]
26
+ @verbose = args[:verbose]
27
+ @use_cache = args.key?(:use_cache) ? args[:use_cache] : false
28
+ @revision = args[:revision]
29
+ super
30
+ end
31
+
32
+ def to_a
33
+ ary = Array.new
34
+ if @limit
35
+ ary << '--limit' << @limit
36
+ end
37
+ if @verbose
38
+ ary << '-v'
39
+ end
40
+
41
+ if @revision
42
+ [ @revision ].flatten.each do |rev|
43
+ ary << "-r#{rev}"
44
+ end
45
+ end
46
+
47
+ if @path
48
+ ary << @path
49
+ end
50
+
51
+ ary.compact
52
+ end
53
+ end
54
+ end
@@ -5,6 +5,7 @@ require 'system/command/line'
5
5
  require 'system/command/caching'
6
6
  require 'svnx/base/command'
7
7
  require 'logue/loggable'
8
+ require 'svnx/log/args'
8
9
 
9
10
  module SVNx
10
11
  module LogCmdLine
@@ -22,45 +23,6 @@ module SVNx
22
23
  class LogCommandLineCaching < CachingCommandLine
23
24
  include LogCmdLine
24
25
  end
25
-
26
- class LogCommandArgs < CommandArgs
27
- include Logue::Loggable
28
-
29
- attr_reader :limit
30
- attr_reader :verbose
31
- attr_reader :revision
32
- attr_reader :use_cache
33
-
34
- def initialize args
35
- @limit = args[:limit]
36
- @verbose = args[:verbose]
37
- @use_cache = args.key?(:use_cache) ? args[:use_cache] : false
38
- @revision = args[:revision]
39
- super
40
- end
41
-
42
- def to_a
43
- ary = Array.new
44
- if @limit
45
- ary << '--limit' << @limit
46
- end
47
- if @verbose
48
- ary << '-v'
49
- end
50
-
51
- if @revision
52
- [ @revision ].flatten.each do |rev|
53
- ary << "-r#{rev}"
54
- end
55
- end
56
-
57
- if @path
58
- ary << @path
59
- end
60
-
61
- ary.compact
62
- end
63
- end
64
26
 
65
27
  class LogCommand < Command
66
28
  def initialize args
data/lib/svnx.rb CHANGED
@@ -3,5 +3,5 @@
3
3
 
4
4
  module SVNx
5
5
  NAME = 'svnx'
6
- VERSION = '0.6.2'
6
+ VERSION = '1.0.0'
7
7
  end
@@ -4,43 +4,39 @@
4
4
  require 'system/command/arg'
5
5
  require 'logue/loggable'
6
6
  require 'open3'
7
- require 'rainbow'
7
+ require 'rainbow/ext/string'
8
8
 
9
9
  module System
10
10
  class CommandLine
11
11
  include Logue::Loggable
12
12
 
13
+ attr_reader :args
13
14
  attr_reader :output
15
+ attr_reader :error
16
+ attr_reader :status
14
17
 
15
18
  def initialize args = Array.new
16
19
  @args = args.dup
17
20
  end
18
21
 
19
22
  def << arg
20
- # @args << Argument.new(arg)
21
23
  @args << arg
22
24
  end
23
25
 
24
26
  def execute
25
27
  cmd = to_command
26
-
27
- info "cmd: #{cmd}".color("8A8A43")
28
-
29
- # cmd << " 2>&1"
30
-
31
- # I want to use popen3, but the version that works (sets $?) is in 1.9.x,
32
- # not 1.8.x:
33
- IO.popen(cmd + " 2>&1") do |io|
34
- @output = io.readlines
35
- end
36
-
37
- if $? && $?.exitstatus != 0
38
- info "cmd: #{cmd}".color(:red)
39
- info "$?: #{$?.inspect}".color(:red)
40
- info "$?.exitstatus: #{$? && $?.exitstatus}".color(:red)
41
- raise "ERROR running command '#{cmd}': #{@output[-1]}"
28
+ debug "cmd: #{cmd}".color("8A8A43")
29
+
30
+ Open3.popen3(cmd) do |stdin, stdout, stderr, wthr|
31
+ @output = stdout.readlines
32
+ @error = stderr.readlines
33
+ @status = wthr.value
42
34
  end
43
35
 
36
+ debug "@output: #{@output}"
37
+ debug "@error: #{@error}"
38
+ debug "@status: #{@status}"
39
+
44
40
  @output
45
41
  end
46
42
 
@@ -4,31 +4,60 @@
4
4
  require 'tc'
5
5
  require 'system/command/line'
6
6
 
7
+ Logue::Log.level = Logue::Log::DEBUG
8
+
7
9
  module System
8
10
  class CommandLineTestCase < SVNx::TestCase
9
- def test_ctor
10
- cl = System::CommandLine.new [ "ls" ]
11
- assert_equal "ls", cl.to_command
11
+ # init
12
+
13
+ def assert_init expecetd, initargs
14
+ cl = System::CommandLine.new initargs
15
+ assert_equal expected, cl.args
16
+
17
+ def test_init
18
+ assert_init [ "ls" ], [ "ls" ]
19
+ end
20
+ end
21
+
22
+ # <<
23
+
24
+ def assert_lshift expected, initargs, add
25
+ info "self: #{self}"
26
+ cl = System::CommandLine.new initargs
27
+ cl << add
28
+ assert_equal expected, cl.args
12
29
  end
13
30
 
14
31
  def test_lshift
15
- cl = System::CommandLine.new [ "ls" ]
16
- cl << "/tmp"
17
- assert_equal "ls /tmp", cl.to_command
18
- end
19
-
20
- def test_execute
21
- cl = System::CommandLine.new [ "ls" ]
22
- cl << "/tmp"
23
- assert_equal "ls /tmp", cl.to_command
24
- output = cl.execute
25
-
26
- syslines = nil
27
- IO.popen("ls /tmp") do |io|
28
- syslines = io.readlines
29
- end
32
+ assert_lshift [ "ls", "/tmp" ], [ "ls" ], "/tmp"
33
+ end
34
+
35
+ # to_command
36
+
37
+ def assert_to_command expect, args
38
+ cl = System::CommandLine.new args
39
+ assert_equal expect, cl.to_command
40
+ end
41
+
42
+ def test_to_command_init
43
+ assert_to_command "ls", [ "ls" ]
44
+ end
45
+
46
+ # execute/status
47
+
48
+ def assert_execute_status expect_success, args
49
+ info "self: #{self}"
50
+ cl = System::CommandLine.new args
51
+ cl.execute
52
+ assert_equal expect_success, cl.status.success?, "args: #{args}"
53
+ end
54
+
55
+ def test_execute_status_success
56
+ assert_execute_status true, [ "ls", "/tmp" ]
57
+ end
30
58
 
31
- assert_equal syslines, output
59
+ def test_execute_status_failure
60
+ assert_execute_status false, [ "ls", "/tmpx" ]
32
61
  end
33
62
  end
34
63
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svnx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Pace
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-25 00:00:00.000000000 Z
11
+ date: 2016-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logue
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rainbow
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.4
33
+ version: '2.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.4
40
+ version: '2.1'
41
41
  description: A bridge between Subversion functionality, via the command line, and
42
42
  Ruby.
43
43
  email: jeugenepace@gmail.com
@@ -47,6 +47,7 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - lib/svnx.rb
49
49
  - lib/svnx/base/action.rb
50
+ - lib/svnx/base/args.rb
50
51
  - lib/svnx/base/command.rb
51
52
  - lib/svnx/base/entries.rb
52
53
  - lib/svnx/base/entry.rb
@@ -56,6 +57,7 @@ files:
56
57
  - lib/svnx/info/entry.rb
57
58
  - lib/svnx/io/directory.rb
58
59
  - lib/svnx/io/element.rb
60
+ - lib/svnx/log/args.rb
59
61
  - lib/svnx/log/command.rb
60
62
  - lib/svnx/log/entries.rb
61
63
  - lib/svnx/log/entry.rb
@@ -96,17 +98,17 @@ require_paths:
96
98
  - lib
97
99
  required_ruby_version: !ruby/object:Gem::Requirement
98
100
  requirements:
99
- - - '>='
101
+ - - ">="
100
102
  - !ruby/object:Gem::Version
101
103
  version: '0'
102
104
  required_rubygems_version: !ruby/object:Gem::Requirement
103
105
  requirements:
104
- - - '>='
106
+ - - ">="
105
107
  - !ruby/object:Gem::Version
106
108
  version: '0'
107
109
  requirements: []
108
110
  rubyforge_project:
109
- rubygems_version: 2.0.6
111
+ rubygems_version: 2.4.8
110
112
  signing_key:
111
113
  specification_version: 4
112
114
  summary: Wrapper around Subversion command line.