jettywrapper 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gemspec
3
+ gemspec
4
+ gem 'rcov', :platform => :mri_18
5
+ gem 'simplecov', :platform => :mri_19
6
+ gem 'simplecov-rcov', :platform => :mri_19
data/Rakefile CHANGED
@@ -20,11 +20,17 @@ Spec::Rake::SpecTask.new(:spec) do |spec|
20
20
  spec.spec_files = FileList['spec/**/*_spec.rb']
21
21
  end
22
22
 
23
- Spec::Rake::SpecTask.new(:rcov) do |spec|
23
+ Spec::Rake::SpecTask.new(:coverage) do |spec|
24
24
  spec.libs << 'lib' << 'spec'
25
25
  spec.pattern = 'spec/**/*_spec.rb'
26
- spec.rcov = true
27
- spec.rcov_opts = %w{--exclude spec\/*,gems\/*,ruby\/* --aggregate coverage.data}
26
+
27
+ ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
28
+ ENV['COVERAGE'] = 'true' unless ruby_engine == 'jruby'
29
+
30
+ if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.8/
31
+ spec.rcov = true
32
+ spec.rcov_opts = %w{--exclude spec\/*,gems\/*,ruby\/* --aggregate coverage.data}
33
+ end
28
34
  end
29
35
 
30
36
  task :clean do
@@ -51,4 +57,4 @@ rescue LoadError
51
57
  end
52
58
  end
53
59
 
54
- task :default => [:rcov, :doc]
60
+ task :default => [:coverage, :doc]
data/jettywrapper.gemspec CHANGED
@@ -29,7 +29,8 @@ Gem::Specification.new do |s|
29
29
  # It will not add these as dependencies if you require lyber-core for other projects
30
30
  s.add_development_dependency "rspec", "< 2.0" # We're not ready to upgrade to rspec 2
31
31
  s.add_development_dependency 'mocha'
32
- s.add_development_dependency 'rcov'
32
+ s.add_development_dependency 'rake'
33
+
33
34
 
34
35
  s.add_development_dependency 'yard', '0.6.5' # Yard > 0.6.5 won't generate docs.
35
36
  # I don't know why & don't have time to
data/lib/jettywrapper.rb CHANGED
@@ -1,4 +1,3 @@
1
- # Jettywrapper is a Singleton class, so you can only create one jetty instance at a time.
2
1
  require 'loggable'
3
2
  require 'singleton'
4
3
  require 'fileutils'
@@ -7,23 +6,25 @@ require 'socket'
7
6
  require 'timeout'
8
7
  require 'childprocess'
9
8
  require 'active_support/core_ext/hash'
9
+ require 'erb'
10
10
 
11
11
  Dir[File.expand_path(File.join(File.dirname(__FILE__),"tasks/*.rake"))].each { |ext| load ext } if defined?(Rake)
12
12
 
13
13
 
14
+ # Jettywrapper is a Singleton class, so you can only create one jetty instance at a time.
14
15
  class Jettywrapper
15
16
 
16
17
  include Singleton
17
18
  include Loggable
18
19
 
19
- attr_accessor :port # What port should jetty start on? Default is 8888
20
- attr_accessor :jetty_home # Where is jetty located?
21
- attr_accessor :startup_wait # After jetty starts, how long to wait until starting the tests?
22
- attr_accessor :quiet # Keep quiet about jetty output?
23
- attr_accessor :solr_home # Where is solr located? Default is jetty_home/solr
20
+ attr_accessor :jetty_home # Jetty's home directory
21
+ attr_accessor :port # Jetty's port. Default is 8888. Note that attribute is named port, but params passed in expect :jetty_port
22
+ attr_accessor :startup_wait # How many seconds to wait for jetty to spin up. Default is 5.
23
+ attr_accessor :quiet # true (default) to reduce Jetty's output
24
+ attr_accessor :solr_home # Solr's home directory. Default is jetty_home/solr
24
25
  attr_accessor :base_path # The root of the application. Used for determining where log files and PID files should go.
25
26
  attr_accessor :java_opts # Options to pass to java (ex. ["-Xmx512mb", "-Xms128mb"])
26
- attr_accessor :port # The port jetty should listen on
27
+ attr_accessor :jetty_opts # Options to pass to jetty (ex. ["etc/my_jetty.xml", "etc/other.xml"] as in http://wiki.eclipse.org/Jetty/Reference/jetty.xml_usage
27
28
 
28
29
  # configure the singleton with some defaults
29
30
  def initialize(params = {})
@@ -49,27 +50,44 @@ class Jettywrapper
49
50
  app_root = ENV['APP_ROOT']
50
51
  app_root ||= '.'
51
52
  end
52
- filename = "#{app_root}/config/jetty.yml"
53
+
54
+ jetty_file = "#{app_root}/config/jetty.yml"
55
+
56
+ unless File.exists?(jetty_file)
57
+ logger.warn "Didn't find expected jettywrapper config file at #{jetty_file}, using default file instead."
58
+ jetty_file = File.expand_path("../config/jetty.yml", File.dirname(__FILE__))
59
+ end
60
+
53
61
  begin
54
- file = YAML.load_file(filename)
62
+ @jetty_erb = ERB.new(IO.read(jetty_file)).result(binding)
55
63
  rescue Exception => e
56
- logger.warn "Didn't find expected jettywrapper config file at #{filename}, using default file instead."
57
- file ||= YAML.load_file(File.join(File.dirname(__FILE__),"../config/jetty.yml"))
58
- #raise "Unable to load: #{file}" unless file
64
+ raise("jetty.yml was found, but could not be parsed with ERB. \n#{$!.inspect}")
59
65
  end
60
- config = file.with_indifferent_access
66
+
67
+ begin
68
+ @jetty_yml = YAML::load(@jetty_erb)
69
+ rescue StandardError => e
70
+ raise("jetty.yml was found, but could not be parsed.\n")
71
+ end
72
+
73
+ if @jetty_yml.nil? || !@jetty_yml.is_a?(Hash)
74
+ raise("jetty.yml was found, but was blank or malformed.\n")
75
+ end
76
+
77
+ config = @jetty_yml.with_indifferent_access
61
78
  config[config_name] || config[:default]
62
79
  end
63
80
 
64
81
 
65
82
  # Set the jetty parameters. It accepts a Hash of symbols.
66
83
  # @param [Hash<Symbol>] params
67
- # @param [Symbol] :jetty_home Required. Where is jetty located?
68
- # @param [Symbol] :jetty_port What port should jetty start on? Default is 8888
69
- # @param [Symbol] :startup_wait After jetty starts, how long to wait before running tests? If you don't let jetty start all the way before running the tests, they'll fail because they can't reach jetty.
70
- # @param [Symbol] :solr_home Where is solr? Default is jetty_home/solr
71
- # @param [Symbol] :quiet Keep quiet about jetty output? Default is true.
72
- # @param [Symbol] :java_opts A list of options to pass to the jvm
84
+ # :jetty_home Required. Jetty's home direcotry
85
+ # :jetty_port Jetty's port. Default is 8888. Note that attribute is named port, but params passed in expect :jetty_port
86
+ # :startup_wait How many seconds to wait for jetty to spin up. Default is 5. If jetty doesn't finish spinning up, tests can fail because they can't reach jetty.
87
+ # :solr_home Solr's home directory. Default is jetty_home/solr
88
+ # :quiet Keep True(default) to reduce jetty's output
89
+ # :java_opts options to pass to the jvm (ex. ["-Xmx512mb", "-Xms128mb"])
90
+ # :jetty_opts options to pass to jetty (ex. ["etc/my_jetty.xml", "etc/other.xml"] as in http://wiki.eclipse.org/Jetty/Reference/jetty.xml_usage
73
91
  def configure(params = {})
74
92
  jetty_server = self.instance
75
93
  jetty_server.reset_process!
@@ -86,6 +104,7 @@ class Jettywrapper
86
104
  jetty_server.port = params[:jetty_port] || 8888
87
105
  jetty_server.startup_wait = params[:startup_wait] || 5
88
106
  jetty_server.java_opts = params[:java_opts] || []
107
+ jetty_server.jetty_opts = params[:jetty_opts] || []
89
108
  return jetty_server
90
109
  end
91
110
 
@@ -100,7 +119,8 @@ class Jettywrapper
100
119
  # :jetty_home => "/path/to/jetty",
101
120
  # :quiet => false,
102
121
  # :jetty_port => 8983,
103
- # :startup_wait => 30
122
+ # :startup_wait => 30,
123
+ # :jetty_opts => "/etc/jetty.xml"
104
124
  # }
105
125
  # error = Jettywrapper.wrap(jetty_params) do
106
126
  # Rake::Task["rake:spec"].invoke
@@ -123,6 +143,8 @@ class Jettywrapper
123
143
  jetty_server.stop
124
144
  end
125
145
 
146
+ raise error if error
147
+
126
148
  return error
127
149
  end
128
150
 
@@ -211,7 +233,7 @@ class Jettywrapper
211
233
 
212
234
  # What command is being run to invoke jetty?
213
235
  def jetty_command
214
- ["java", java_variables, java_opts, "-jar", "start.jar"].flatten
236
+ ["java", java_variables, java_opts, "-jar", "start.jar", jetty_opts].flatten
215
237
  end
216
238
 
217
239
  def java_variables
@@ -1 +1 @@
1
- GEMVERSION = "1.2.1"
1
+ GEMVERSION = "1.3.0"
@@ -13,7 +13,8 @@ module Hydra
13
13
  it "starts" do
14
14
  jetty_params = {
15
15
  :jetty_home => File.expand_path("#{File.dirname(__FILE__)}/../../jetty"),
16
- :startup_wait => 30
16
+ :startup_wait => 30,
17
+ :jetty_port => TEST_JETTY_PORTS.first
17
18
  }
18
19
  Jettywrapper.configure(jetty_params)
19
20
  ts = Jettywrapper.instance
@@ -26,7 +27,7 @@ module Hydra
26
27
 
27
28
  # Can we connect to solr?
28
29
  require 'net/http'
29
- response = Net::HTTP.get_response(URI.parse("http://localhost:8888/solr/development/admin/"))
30
+ response = Net::HTTP.get_response(URI.parse("http://localhost:#{jetty_params[:jetty_port]}/solr/development/admin/"))
30
31
  response.code.should eql("200")
31
32
  ts.stop
32
33
 
@@ -35,7 +36,8 @@ module Hydra
35
36
  it "won't start if it's already running" do
36
37
  jetty_params = {
37
38
  :jetty_home => File.expand_path("#{File.dirname(__FILE__)}/../../jetty"),
38
- :startup_wait => 30
39
+ :startup_wait => 30,
40
+ :jetty_port => TEST_JETTY_PORTS.first
39
41
  }
40
42
  Jettywrapper.configure(jetty_params)
41
43
  ts = Jettywrapper.instance
@@ -43,30 +45,30 @@ module Hydra
43
45
  ts.stop
44
46
  ts.start
45
47
  ts.logger.debug "Jetty started from rspec at #{ts.pid}"
46
- response = Net::HTTP.get_response(URI.parse("http://localhost:8888/solr/development/admin/"))
48
+ response = Net::HTTP.get_response(URI.parse("http://localhost:#{jetty_params[:jetty_port]}/solr/development/admin/"))
47
49
  response.code.should eql("200")
48
50
  lambda { ts.start }.should raise_exception(/Server is already running/)
49
51
  ts.stop
50
52
  end
51
53
 
52
54
  it "can check to see whether a port is already in use" do
53
- params = {
55
+ jetty_params = {
54
56
  :jetty_home => File.expand_path("#{File.dirname(__FILE__)}/../../jetty"),
55
- :jetty_port => '9999',
57
+ :jetty_port => TEST_JETTY_PORTS.last,
56
58
  :startup_wait => 30
57
59
  }
58
- Jettywrapper.stop(params)
60
+ Jettywrapper.stop(jetty_params)
59
61
  sleep 10
60
- Jettywrapper.is_port_in_use?(params[:jetty_port]).should eql(false)
61
- Jettywrapper.start(params)
62
- Jettywrapper.is_port_in_use?(params[:jetty_port]).should eql(true)
63
- Jettywrapper.stop(params)
62
+ Jettywrapper.is_port_in_use?(jetty_params[:jetty_port]).should eql(false)
63
+ Jettywrapper.start(jetty_params)
64
+ Jettywrapper.is_port_in_use?(jetty_params[:jetty_port]).should eql(true)
65
+ Jettywrapper.stop(jetty_params)
64
66
  end
65
67
 
66
68
  it "raises an error if you try to start a jetty that is already running" do
67
69
  jetty_params = {
68
70
  :jetty_home => File.expand_path("#{File.dirname(__FILE__)}/../../jetty"),
69
- :jetty_port => '8983',
71
+ :jetty_port => TEST_JETTY_PORTS.first,
70
72
  :startup_wait => 30
71
73
  }
72
74
  ts = Jettywrapper.configure(jetty_params)
@@ -9,36 +9,43 @@ require 'rubygems'
9
9
  @jetty_params = {
10
10
  :quiet => false,
11
11
  :jetty_home => "/path/to/jetty",
12
- :jetty_port => 8888,
12
+ :jetty_port => TEST_JETTY_PORTS.first,
13
13
  :solr_home => "/path/to/solr",
14
14
  :startup_wait => 0,
15
- :java_opts => ["-Xmx256mb"]
15
+ :java_opts => ["-Xmx256mb"],
16
+ :jetty_opts => ["/path/to/jetty_xml", "/path/to/other_jetty_xml"]
16
17
  }
17
18
  end
18
19
 
19
20
  context "config" do
20
21
  it "loads the application jetty.yml first" do
21
- YAML.expects(:load_file).with('./config/jetty.yml').once.returns({})
22
+ IO.expects(:read).with('./config/jetty.yml').once.returns("default:\n")
22
23
  config = Jettywrapper.load_config
23
24
  end
24
25
 
26
+ it "loads the application jetty.yml using erb parsing" do
27
+ IO.expects(:read).with('./config/jetty.yml').once.returns("default:\n a: <%= 123 %>")
28
+ config = Jettywrapper.load_config
29
+ config[:a] == 123
30
+ end
31
+
25
32
  it "falls back on the distributed jetty.yml" do
26
33
  fallback_seq = sequence('fallback sequence')
27
- YAML.expects(:load_file).in_sequence(fallback_seq).with('./config/jetty.yml').raises(Exception)
28
- YAML.expects(:load_file).in_sequence(fallback_seq).with { |value| value =~ /jetty.yml/ }.returns({})
34
+ File.expects(:exists?).in_sequence(fallback_seq).with('./config/jetty.yml').returns(false)
35
+ IO.expects(:read).in_sequence(fallback_seq).with { |value| value =~ /jetty.yml/ }.returns("default:\n")
29
36
  config = Jettywrapper.load_config
30
37
  end
31
38
 
32
39
  it "supports per-environment configuration" do
33
40
  ENV['environment'] = 'test'
34
- YAML.expects(:load_file).with('./config/jetty.yml').once.returns({:test => {:a => 2 }, :default => { :a => 1 }})
41
+ IO.expects(:read).with('./config/jetty.yml').once.returns("default:\n a: 1\ntest:\n a: 2")
35
42
  config = Jettywrapper.load_config
36
43
  config[:a].should == 2
37
44
  end
38
45
 
39
46
  it "falls back on a 'default' environment configuration" do
40
47
  ENV['environment'] = 'test'
41
- YAML.expects(:load_file).with('./config/jetty.yml').once.returns({:default => { :a => 1 }})
48
+ IO.expects(:read).with('./config/jetty.yml').once.returns("default:\n a: 1")
42
49
  config = Jettywrapper.load_config
43
50
  config[:a].should == 1
44
51
  end
@@ -54,9 +61,10 @@ require 'rubygems'
54
61
  ts = Jettywrapper.configure(@jetty_params)
55
62
  ts.quiet.should == false
56
63
  ts.jetty_home.should == "/path/to/jetty"
57
- ts.port.should == 8888
64
+ ts.port.should == @jetty_params[:jetty_port]
58
65
  ts.solr_home.should == '/path/to/solr'
59
66
  ts.startup_wait.should == 0
67
+ ts.jetty_opts.should == @jetty_params[:jetty_opts]
60
68
  end
61
69
 
62
70
  # passing in a hash is no longer optional
@@ -70,7 +78,8 @@ require 'rubygems'
70
78
  :jetty_home => '/path/to/jetty',
71
79
  :jetty_port => nil,
72
80
  :solr_home => nil,
73
- :startup_wait => nil
81
+ :startup_wait => nil,
82
+ :jetty_opts => nil
74
83
  }
75
84
 
76
85
  ts = Jettywrapper.configure(jetty_params)
@@ -79,6 +88,7 @@ require 'rubygems'
79
88
  ts.port.should == 8888
80
89
  ts.solr_home.should == File.join(ts.jetty_home, "solr")
81
90
  ts.startup_wait.should == 5
91
+ ts.jetty_opts.should == []
82
92
  end
83
93
 
84
94
  it "passes all the expected values to jetty during startup" do
@@ -87,6 +97,8 @@ require 'rubygems'
87
97
  command.should include("-Dsolr.solr.home=#{@jetty_params[:solr_home]}")
88
98
  command.should include("-Djetty.port=#{@jetty_params[:jetty_port]}")
89
99
  command.should include("-Xmx256mb")
100
+ command.should include("start.jar")
101
+ command.slice(command.index('start.jar')+1, 2).should == @jetty_params[:jetty_opts]
90
102
  end
91
103
 
92
104
  it "escapes the :solr_home parameter" do
@@ -215,9 +227,9 @@ require 'rubygems'
215
227
  ts = Jettywrapper.instance
216
228
  ts.quiet.should == @jetty_params[:quiet]
217
229
  ts.jetty_home.should == "/path/to/jetty"
218
- ts.port.should == 8888
230
+ ts.port.should == @jetty_params[:jetty_port]
219
231
  ts.solr_home.should == "/path/to/solr"
220
- ts.startup_wait.should == 0
232
+ ts.startup_wait.should == 0
221
233
  end
222
234
  error.should eql(false)
223
235
  end
@@ -225,11 +237,9 @@ require 'rubygems'
225
237
  it "captures any errors produced" do
226
238
  Jettywrapper.any_instance.stubs(:start).returns(true)
227
239
  Jettywrapper.any_instance.stubs(:stop).returns(true)
228
- error = Jettywrapper.wrap(@jetty_params) do
240
+ expect { error = Jettywrapper.wrap(@jetty_params) do
229
241
  raise "this is an expected error message"
230
- end
231
- error.class.should eql(RuntimeError)
232
- error.message.should eql("this is an expected error message")
242
+ end }.to raise_error "this is an expected error message"
233
243
  end
234
244
 
235
245
  end # end of wrapping context
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,13 @@
1
1
  $: << File.join(File.dirname(__FILE__), "/../../lib")
2
+
3
+ if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.9/
4
+ require 'simplecov'
5
+ require 'simplecov-rcov'
6
+
7
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
8
+ SimpleCov.start
9
+ end
10
+
2
11
  require 'spec/autorun'
3
12
  # require 'spec/rails'
4
13
  require 'jettywrapper'
@@ -6,3 +15,9 @@ require 'jettywrapper'
6
15
  Spec::Runner.configure do |config|
7
16
  config.mock_with :mocha
8
17
  end
18
+
19
+ unless ENV.select { |k,v| k =~ /TEST_JETTY_PORT/ }.empty?
20
+ TEST_JETTY_PORTS = ENV.select { |k,v| k =~ /TEST_JETTY_PORT/ }.sort_by { |k,v| k }.map { |k,v| v }
21
+ else
22
+ TEST_JETTY_PORTS = [8983, 8984,9999,8888]
23
+ end
metadata CHANGED
@@ -1,178 +1,184 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jettywrapper
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 1
10
- version: 1.2.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Bess Sadler
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-11 00:00:00 -06:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: logger
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
36
31
  name: mediashelf-loggable
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
37
38
  type: :runtime
38
39
  prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- requirement: *id002
49
- - !ruby/object:Gem::Dependency
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
50
47
  name: childprocess
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
51
54
  type: :runtime
52
55
  prerelease: false
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
62
- requirement: *id003
63
- - !ruby/object:Gem::Dependency
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
64
63
  name: i18n
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
65
70
  type: :runtime
66
71
  prerelease: false
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- requirement: *id004
77
- - !ruby/object:Gem::Dependency
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
78
79
  name: activesupport
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 3.0.0
79
86
  type: :runtime
80
87
  prerelease: false
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 7
87
- segments:
88
- - 3
89
- - 0
90
- - 0
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
91
93
  version: 3.0.0
92
- requirement: *id005
93
- - !ruby/object:Gem::Dependency
94
+ - !ruby/object:Gem::Dependency
94
95
  name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - <
100
+ - !ruby/object:Gem::Version
101
+ version: '2.0'
95
102
  type: :development
96
103
  prerelease: false
97
- version_requirements: &id006 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
98
105
  none: false
99
- requirements:
106
+ requirements:
100
107
  - - <
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
104
- - 2
105
- - 0
106
- version: "2.0"
107
- requirement: *id006
108
- - !ruby/object:Gem::Dependency
108
+ - !ruby/object:Gem::Version
109
+ version: '2.0'
110
+ - !ruby/object:Gem::Dependency
109
111
  name: mocha
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
110
118
  type: :development
111
119
  prerelease: false
112
- version_requirements: &id007 !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- hash: 3
118
- segments:
119
- - 0
120
- version: "0"
121
- requirement: *id007
122
- - !ruby/object:Gem::Dependency
123
- name: rcov
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
124
134
  type: :development
125
135
  prerelease: false
126
- version_requirements: &id008 !ruby/object:Gem::Requirement
127
- none: false
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: 3
132
- segments:
133
- - 0
134
- version: "0"
135
- requirement: *id008
136
- - !ruby/object:Gem::Dependency
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
137
143
  name: yard
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - '='
148
+ - !ruby/object:Gem::Version
149
+ version: 0.6.5
138
150
  type: :development
139
151
  prerelease: false
140
- version_requirements: &id009 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
143
- - - "="
144
- - !ruby/object:Gem::Version
145
- hash: 13
146
- segments:
147
- - 0
148
- - 6
149
- - 5
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - '='
156
+ - !ruby/object:Gem::Version
150
157
  version: 0.6.5
151
- requirement: *id009
152
- - !ruby/object:Gem::Dependency
158
+ - !ruby/object:Gem::Dependency
153
159
  name: RedCloth
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
154
166
  type: :development
155
167
  prerelease: false
156
- version_requirements: &id010 !ruby/object:Gem::Requirement
157
- none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 0
164
- version: "0"
165
- requirement: *id010
166
- description: Spin up a jetty instance (e.g., the one at https://github.com/projecthydra/hydra-jetty) and wrap test in it. This lets us run tests against a real copy of solr and fedora.
167
- email:
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ description: Spin up a jetty instance (e.g., the one at https://github.com/projecthydra/hydra-jetty)
175
+ and wrap test in it. This lets us run tests against a real copy of solr and fedora.
176
+ email:
168
177
  - bess@stanford.edu
169
178
  executables: []
170
-
171
179
  extensions: []
172
-
173
180
  extra_rdoc_files: []
174
-
175
- files:
181
+ files:
176
182
  - .gitignore
177
183
  - .gitmodules
178
184
  - .rvmrc
@@ -190,41 +196,31 @@ files:
190
196
  - spec/lib/jettywrapper_spec.rb
191
197
  - spec/spec_helper.rb
192
198
  - tasks/jettywrapper.rake
193
- has_rdoc: true
194
199
  homepage: https://github.com/projecthydra/jettywrapper
195
200
  licenses: []
196
-
197
201
  post_install_message:
198
202
  rdoc_options: []
199
-
200
- require_paths:
203
+ require_paths:
201
204
  - lib
202
- required_ruby_version: !ruby/object:Gem::Requirement
205
+ required_ruby_version: !ruby/object:Gem::Requirement
203
206
  none: false
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- hash: 3
208
- segments:
207
+ requirements:
208
+ - - ! '>='
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ segments:
209
212
  - 0
210
- version: "0"
211
- required_rubygems_version: !ruby/object:Gem::Requirement
213
+ hash: 463771772989334870
214
+ required_rubygems_version: !ruby/object:Gem::Requirement
212
215
  none: false
213
- requirements:
214
- - - ">="
215
- - !ruby/object:Gem::Version
216
- hash: 23
217
- segments:
218
- - 1
219
- - 3
220
- - 6
216
+ requirements:
217
+ - - ! '>='
218
+ - !ruby/object:Gem::Version
221
219
  version: 1.3.6
222
220
  requirements: []
223
-
224
221
  rubyforge_project:
225
- rubygems_version: 1.6.2
222
+ rubygems_version: 1.8.24
226
223
  signing_key:
227
224
  specification_version: 3
228
225
  summary: Convenience tasks for working with jetty from within a ruby project.
229
226
  test_files: []
230
-