nexus 0.2.5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,10 +1,18 @@
1
+ #-*- mode: ruby -*-
2
+
1
3
  require 'rake'
2
4
  require 'rake/testtask'
5
+ require 'rubygems/package_task'
6
+
7
+ task :default => [ :test, :package ]
3
8
 
4
- task :default => [:test]
9
+ Gem::PackageTask.new( Gem::Specification.load( 'nexus.gemspec' ) ) do
10
+ end
5
11
 
6
12
  Rake::TestTask.new(:test) do |t|
7
13
  t.libs << "test"
8
14
  t.test_files = FileList['test/*_command_test.rb']
9
15
  t.verbose = true
10
16
  end
17
+
18
+ # vim: syntax=Ruby
@@ -1,4 +1,5 @@
1
1
  require 'rubygems/local_remote_options'
2
+ require 'net/http'
2
3
  require 'base64'
3
4
 
4
5
  class Gem::AbstractCommand < Gem::Command
@@ -37,8 +38,8 @@ class Gem::AbstractCommand < Gem::Command
37
38
  end
38
39
 
39
40
  def setup
40
- use_proxy! if http_proxy
41
41
  configure_url unless url
42
+ use_proxy!( url ) if http_proxy( url )
42
43
  sign_in unless authorization
43
44
  end
44
45
 
@@ -112,8 +113,8 @@ class Gem::AbstractCommand < Gem::Command
112
113
  http.request(request)
113
114
  end
114
115
 
115
- def use_proxy!
116
- proxy_uri = http_proxy
116
+ def use_proxy!( url )
117
+ proxy_uri = http_proxy( url )
117
118
  @proxy_class = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
118
119
  end
119
120
 
@@ -122,10 +123,17 @@ class Gem::AbstractCommand < Gem::Command
122
123
  end
123
124
 
124
125
  # @return [URI, nil] the HTTP-proxy as a URI if set; +nil+ otherwise
125
- def http_proxy
126
- proxy = Gem.configuration[:http_proxy] || ENV['http_proxy'] || ENV['HTTP_PROXY']
126
+ def http_proxy( url )
127
+ uri = URI.parse( url ) rescue nil
128
+ return nil if uri.nil?
129
+ if no_proxy = ENV[ 'no_proxy' ] || ENV[ 'NO_PROXY' ]
130
+ # does not look on ip-adress ranges
131
+ return nil if no_proxy.split( /, */ ).member?( uri.host )
132
+ end
133
+ key = uri.scheme == 'http' ? 'http_proxy' : 'https_proxy'
134
+ proxy = Gem.configuration[ :http_proxy ] || ENV[ key ] || ENV[ key.upcase ]
127
135
  return nil if proxy.nil? || proxy == :no_proxy
128
- URI.parse(proxy)
136
+ URI.parse( proxy )
129
137
  end
130
138
 
131
139
  def ask_for_password(message)
@@ -0,0 +1,3 @@
1
+ module Nexus
2
+ VERSION = '1.0.0'
3
+ end
@@ -14,6 +14,7 @@ class Gem::Commands::FakeCommand < Gem::AbstractCommand
14
14
  end
15
15
 
16
16
  class AbstractCommandTest < CommandTest
17
+
17
18
  context "with an fake command" do
18
19
  setup do
19
20
  @command = Gem::Commands::FakeCommand.new
@@ -25,26 +26,26 @@ class AbstractCommandTest < CommandTest
25
26
  context "parsing the proxy" do
26
27
  should "return nil if no proxy is set" do
27
28
  stub_config(:http_proxy => nil)
28
- assert_equal nil, @command.http_proxy
29
+ assert_equal nil, @command.http_proxy( nil )
29
30
  end
30
31
 
31
32
  should "return nil if the proxy is set to :no_proxy" do
32
33
  stub_config(:http_proxy => :no_proxy)
33
- assert_equal nil, @command.http_proxy
34
+ assert_equal nil, @command.http_proxy( 'asd' )
34
35
  end
35
36
 
36
37
  should "return a proxy as a URI if set" do
37
38
  stub_config( :http_proxy => 'http://proxy.example.org:9192' )
38
- assert_equal 'proxy.example.org', @command.http_proxy.host
39
- assert_equal 9192, @command.http_proxy.port
39
+ assert_equal 'proxy.example.org', @command.http_proxy( 'http://asd' ).host
40
+ assert_equal 9192, @command.http_proxy( 'http://asd' ).port
40
41
  end
41
42
 
42
43
  should "return a proxy as a URI if set by environment variable" do
43
44
  ENV['http_proxy'] = "http://jack:duck@192.168.1.100:9092"
44
- assert_equal "192.168.1.100", @command.http_proxy.host
45
- assert_equal 9092, @command.http_proxy.port
46
- assert_equal "jack", @command.http_proxy.user
47
- assert_equal "duck", @command.http_proxy.password
45
+ assert_equal "192.168.1.100", @command.http_proxy( 'http://asd' ).host
46
+ assert_equal 9092, @command.http_proxy( 'http://asd' ).port
47
+ assert_equal "jack", @command.http_proxy( 'http://asd' ).user
48
+ assert_equal "duck", @command.http_proxy( 'http://asd' ).password
48
49
  end
49
50
  end
50
51
 
@@ -82,7 +83,7 @@ class AbstractCommandTest < CommandTest
82
83
  stub_config( :http_proxy => "http://gilbert:sekret@proxy.example.org:8081" )
83
84
  @proxy_class = Object.new
84
85
  mock(Net::HTTP).Proxy('proxy.example.org', 8081, 'gilbert', 'sekret') { @proxy_class }
85
- @command.use_proxy!
86
+ @command.use_proxy!( 'http://asd' )
86
87
  end
87
88
 
88
89
  should "replace Net::HTTP with a proxy version" do
@@ -1,7 +1,16 @@
1
- require 'rubygems'
2
- require 'test/unit'
1
+ require 'minitest/autorun'
3
2
 
4
3
  require 'shoulda'
4
+
5
+ # for some reasons the refute_predicate is missing when executing
6
+ # via jruby-1.7.4
7
+ module ActiveSupport
8
+ class TestCase < ::MiniTest::Unit::TestCase
9
+ def refute_predicate
10
+ end
11
+ end
12
+ end
13
+
5
14
  require 'active_support'
6
15
  require 'active_support/test_case'
7
16
  require 'webmock'
@@ -19,8 +28,8 @@ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), ".."))
19
28
  require "rubygems_plugin"
20
29
 
21
30
  class CommandTest < ActiveSupport::TestCase
22
- include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
23
31
  include WebMock::API
32
+ include ShouldaContextLoadable
24
33
 
25
34
  def teardown
26
35
  WebMock.reset!
@@ -52,8 +52,7 @@ class NexusCommandTest < CommandTest
52
52
  :body => @gem_binary,
53
53
  :headers => {
54
54
  'Authorization' => 'key',
55
- 'Content-Type' => 'application/octet-stream',
56
- 'User-Agent'=>'Ruby'
55
+ 'Content-Type' => 'application/octet-stream'
57
56
  })
58
57
  end
59
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,21 +10,37 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-01 00:00:00.000000000 Z
13
+ date: 2013-09-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
17
17
  version_requirements: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - '='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.9.2.2
21
+ version: '10.1'
22
22
  none: false
23
23
  requirement: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '='
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 0.9.2.2
27
+ version: '10.1'
28
+ none: false
29
+ prerelease: false
30
+ type: :development
31
+ - !ruby/object:Gem::Dependency
32
+ name: ruby-maven
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.1.0.0.0
38
+ none: false
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 3.1.0.0.0
28
44
  none: false
29
45
  prerelease: false
30
46
  type: :development
@@ -32,15 +48,15 @@ dependencies:
32
48
  name: shoulda
33
49
  version_requirements: !ruby/object:Gem::Requirement
34
50
  requirements:
35
- - - "~>"
51
+ - - ~>
36
52
  - !ruby/object:Gem::Version
37
- version: 3.1.1
53
+ version: '3.1'
38
54
  none: false
39
55
  requirement: !ruby/object:Gem::Requirement
40
56
  requirements:
41
- - - "~>"
57
+ - - ~>
42
58
  - !ruby/object:Gem::Version
43
- version: 3.1.1
59
+ version: '3.1'
44
60
  none: false
45
61
  prerelease: false
46
62
  type: :development
@@ -48,15 +64,13 @@ dependencies:
48
64
  name: activesupport
49
65
  version_requirements: !ruby/object:Gem::Requirement
50
66
  requirements:
51
- - - !binary |-
52
- PA==
67
+ - - ~>
53
68
  - !ruby/object:Gem::Version
54
69
  version: 4.0.0
55
70
  none: false
56
71
  requirement: !ruby/object:Gem::Requirement
57
72
  requirements:
58
- - - !binary |-
59
- PA==
73
+ - - ~>
60
74
  - !ruby/object:Gem::Version
61
75
  version: 4.0.0
62
76
  none: false
@@ -66,15 +80,15 @@ dependencies:
66
80
  name: webmock
67
81
  version_requirements: !ruby/object:Gem::Requirement
68
82
  requirements:
69
- - - "~>"
83
+ - - ~>
70
84
  - !ruby/object:Gem::Version
71
- version: 1.8.8
85
+ version: '1.8'
72
86
  none: false
73
87
  requirement: !ruby/object:Gem::Requirement
74
88
  requirements:
75
- - - "~>"
89
+ - - ~>
76
90
  - !ruby/object:Gem::Version
77
- version: 1.8.8
91
+ version: '1.8'
78
92
  none: false
79
93
  prerelease: false
80
94
  type: :development
@@ -82,17 +96,15 @@ dependencies:
82
96
  name: rr
83
97
  version_requirements: !ruby/object:Gem::Requirement
84
98
  requirements:
85
- - - ">="
99
+ - - ~>
86
100
  - !ruby/object:Gem::Version
87
- version: !binary |-
88
- MA==
101
+ version: '1.1'
89
102
  none: false
90
103
  requirement: !ruby/object:Gem::Requirement
91
104
  requirements:
92
- - - ">="
105
+ - - ~>
93
106
  - !ruby/object:Gem::Version
94
- version: !binary |-
95
- MA==
107
+ version: '1.1'
96
108
  none: false
97
109
  prerelease: false
98
110
  type: :development
@@ -111,13 +123,15 @@ files:
111
123
  - lib/rubygems_plugin.rb
112
124
  - lib/bundler/rubygems_mirror.rb
113
125
  - lib/bundler/monkey_patch.rb
114
- - lib/commands/nexus.rb
126
+ - lib/nexus/version.rb
115
127
  - lib/commands/abstract_command.rb
128
+ - lib/commands/nexus.rb
116
129
  - test/command_helper.rb
117
- - test/abstract_command_test.rb
118
130
  - test/nexus_command_test.rb
131
+ - test/abstract_command_test.rb
119
132
  homepage: https://github.com/sonatype/nexus-ruby-support/tree/master/nexus-gem
120
- licenses: []
133
+ licenses:
134
+ - MIT-LICENSE
121
135
  post_install_message: "\n========================================================================\n\
122
136
  \n Thanks for installing Nexus gem! You can now run:\n\n gem nexus\
123
137
  \ publish your gems onto Nexus server\n\n nbundle a bundler\
@@ -130,22 +144,20 @@ require_paths:
130
144
  - lib
131
145
  required_ruby_version: !ruby/object:Gem::Requirement
132
146
  requirements:
133
- - - ">="
147
+ - - '>='
134
148
  - !ruby/object:Gem::Version
135
- version: !binary |-
136
- MA==
149
+ version: '0'
137
150
  none: false
138
151
  required_rubygems_version: !ruby/object:Gem::Requirement
139
152
  requirements:
140
- - - ">="
153
+ - - '>='
141
154
  - !ruby/object:Gem::Version
142
- version: !binary |-
143
- MA==
155
+ version: '0'
144
156
  none: false
145
157
  requirements: []
146
158
  rubyforge_project:
147
159
  rubygems_version: 1.8.24
148
160
  signing_key:
149
161
  specification_version: 3
150
- summary: Commands to interact with nexus server
162
+ summary: Gem Command to interact with Nexus server
151
163
  test_files: []