guard-webrick 0.1.1 → 0.1.2

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/.travis.yml CHANGED
@@ -1,5 +1,10 @@
1
+ language: ruby
1
2
  rvm:
2
- - 1.8.7
3
+ - 1.9.3
3
4
  - 1.9.2
5
+ - jruby-19mode
6
+ - 1.8.7
4
7
  - ree
5
- - jruby
8
+ - jruby-18mode
9
+ - ruby-head
10
+ - jruby-head
data/CHANGELOG.md CHANGED
@@ -1,8 +1,31 @@
1
- ## 0.1.1 (May 17, 2001)
1
+ ## 0.1.3.dev (unreleased)
2
+
3
+
4
+ ## 0.1.2 (May 10, 2012)
5
+
6
+ ### New features
7
+
8
+ * Pull request [#1](https://github.com/fnichol/guard-webrick/pull/1): SSL support. ([@JustinLove][])
9
+
10
+ ### Improvements
11
+
12
+ * Fill out Ruby testing on TravisCI. ([@fnichol][])
13
+
14
+
15
+ ## 0.1.1 (May 17, 2011)
16
+
17
+ ### Bug fixes
18
+
19
+ * Add missing launch gem dependency ([@fnichol][])
20
+
21
+ ### Improvements
22
+
23
+ * Add project to travis-ci.org ([@fnichol][])
2
24
 
3
- * Add project to travis-ci.org
4
- * Add missing launch gem dependency
5
25
 
6
26
  ## 0.1.0 (Mar 19, 2011)
7
27
 
8
28
  Initial release.
29
+
30
+ [@fnichol]: https://github.com/fnichol
31
+ [@JustinLove]: https://github.com/JustinLove
data/Gemfile CHANGED
@@ -2,3 +2,11 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in guard-webrick.gemspec
4
4
  gemspec
5
+
6
+ group :test do
7
+ gem 'rake', '~> 0.9'
8
+ end
9
+
10
+ platforms :jruby do
11
+ gem 'jruby-openssl'
12
+ end
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Guard::WEBrick automatically starts and restarts WEBrick when needed. Useful when you are working on a static site but want to benefit from [Guard::LiveReload](http://github.com/guard/guard-livereload).
6
6
 
7
- * Tested on Ruby 1.8.7, 1.9.2, Ruby Enterprise Edition, and JRuby
7
+ * Tested on Ruby 1.9.3, 1.9.2, 1.8.7, Ruby Enterprise Edition, and JRuby (thanks TravisCI!)
8
8
 
9
9
  ## Install
10
10
 
@@ -46,6 +46,7 @@ Available options:
46
46
 
47
47
  :host => '127.3.3.1' # default '0.0.0.0'
48
48
  :port => '12345' # default '3000'
49
+ :ssl => true # default false
49
50
  :docroot => 'public' # default current working directory
50
51
  :launchy => false # default true
51
52
 
@@ -15,14 +15,12 @@ Gem::Specification.new do |s|
15
15
  s.required_rubygems_version = '>= 1.3.6'
16
16
  s.rubyforge_project = "guard-webrick"
17
17
 
18
- s.add_dependency 'guard', '~> 0.3'
19
- s.add_dependency 'ffi', '~> 1.0.7'
18
+ s.add_dependency 'guard', '~> 1.0.2'
20
19
  s.add_dependency 'spoon', '~> 0.0.1'
21
- s.add_dependency 'launchy', '~> 0.4.0'
20
+ s.add_dependency 'launchy', '~> 2.1.0'
22
21
 
23
- s.add_development_dependency 'bundler', '~> 1.0.10'
24
22
  s.add_development_dependency 'rspec', '~> 2.5.0'
25
- s.add_development_dependency 'guard-rspec', '~> 0.2.0'
23
+ s.add_development_dependency 'guard-rspec', '~> 0.7.0'
26
24
  s.add_development_dependency 'guard-bundler', '~> 0.1.1'
27
25
 
28
26
  s.files = `git ls-files`.split("\n")
@@ -1,4 +1,5 @@
1
1
  require 'webrick'
2
+ require 'webrick/https'
2
3
 
3
4
  module Guard
4
5
  class WEBrick
@@ -7,11 +8,21 @@ module Guard
7
8
  attr_reader :server
8
9
 
9
10
  def initialize(options = {})
10
- @server = ::WEBrick::HTTPServer.new(
11
- :BindAddress => options[:host],
12
- :Port => options[:port],
13
- :DocumentRoot => File.expand_path(options[:docroot])
14
- )
11
+ if options[:ssl]
12
+ @server = ::WEBrick::HTTPServer.new(
13
+ :BindAddress => options[:host],
14
+ :Port => options[:port],
15
+ :DocumentRoot => File.expand_path(options[:docroot]),
16
+ :SSLEnable => true,
17
+ :SSLCertName => [%w[CN localhost]]
18
+ )
19
+ else
20
+ @server = ::WEBrick::HTTPServer.new(
21
+ :BindAddress => options[:host],
22
+ :Port => options[:port],
23
+ :DocumentRoot => File.expand_path(options[:docroot])
24
+ )
25
+ end
15
26
  end
16
27
 
17
28
  def start
@@ -25,10 +36,11 @@ module Guard
25
36
  end
26
37
 
27
38
  if __FILE__ == $0
28
- host, port, docroot = ARGV
39
+ host, port, ssl, docroot = ARGV
29
40
  Guard::WEBrick::Server.new(
30
41
  :host => host,
31
42
  :port => port,
43
+ :ssl => ssl == 'true',
32
44
  :docroot => docroot
33
45
  ).start
34
46
  end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module WEBrickVersion
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
5
5
  end
data/lib/guard/webrick.rb CHANGED
@@ -15,6 +15,7 @@ module Guard
15
15
  @options = {
16
16
  :host => '0.0.0.0',
17
17
  :port => 3000,
18
+ :ssl => false,
18
19
  :docroot => Dir::pwd,
19
20
  :launchy => true
20
21
  }.update(options)
@@ -35,11 +36,13 @@ module Guard
35
36
  File.expand_path(File.join(File.dirname(__FILE__), %w{webrick server.rb})),
36
37
  @options[:host],
37
38
  @options[:port].to_s,
39
+ @options[:ssl].to_s,
38
40
  @options[:docroot]
39
41
  )
40
42
  wait_for_port
41
43
  if @options[:launchy]
42
- Launchy.open("http://#{@options[:host]}:#{@options[:port]}")
44
+ scheme = options[:ssl] ? "https" : "http"
45
+ Launchy.open("#{scheme}://#{@options[:host]}:#{@options[:port]}")
43
46
  @options[:launchy] = false # only run once
44
47
  end
45
48
  @pid
@@ -22,6 +22,17 @@ describe Guard::WEBrick::Server do
22
22
  )
23
23
  new_server(:docroot => 'public')
24
24
  end
25
+
26
+ it "should create an ssl server" do
27
+ ::WEBrick::HTTPServer.should_receive(:new).with(
28
+ :BindAddress => '0.0.0.0',
29
+ :Port => 3000,
30
+ :DocumentRoot => Dir::pwd,
31
+ :SSLEnable => true,
32
+ :SSLCertName => [%w[CN localhost]]
33
+ )
34
+ new_server(:ssl => true)
35
+ end
25
36
  end
26
37
 
27
38
  describe "start" do
@@ -35,6 +35,19 @@ describe Guard::WEBrick do
35
35
  end
36
36
  end
37
37
 
38
+ describe "ssl" do
39
+
40
+ it "should be false by default" do
41
+ subject = Guard::WEBrick.new([])
42
+ subject.options[:ssl].should be_false
43
+ end
44
+
45
+ it "should be set to true" do
46
+ subject = Guard::WEBrick.new([], { :ssl => true })
47
+ subject.options[:ssl].should be_true
48
+ end
49
+ end
50
+
38
51
  describe "docroot" do
39
52
 
40
53
  it "should be Dir::pwd by default" do
@@ -70,13 +83,16 @@ describe Guard::WEBrick do
70
83
  end
71
84
 
72
85
  it "should spawn the server instance" do
73
- subject = Guard::WEBrick.new([], { :host => '127.0.2.5', :port => 8080,
86
+ subject = Guard::WEBrick.new([], {
87
+ :host => '127.0.2.5',
88
+ :port => 8080,
89
+ :ssl => true,
74
90
  :docroot => '/tmp' })
75
91
  subject.stub(:wait_for_port)
76
92
  Spoon.should_receive(:spawnp).with( 'ruby',
77
93
  File.expand_path(File.join(File.dirname(__FILE__),
78
94
  %w{.. .. lib guard webrick server.rb})),
79
- '127.0.2.5', '8080', '/tmp'
95
+ '127.0.2.5', '8080', 'true', '/tmp'
80
96
  )
81
97
  subject.start
82
98
  end
@@ -85,7 +101,7 @@ describe Guard::WEBrick do
85
101
  Spoon.should_receive(:spawnp).with( 'ruby',
86
102
  File.expand_path(File.join(File.dirname(__FILE__),
87
103
  %w{.. .. lib guard webrick server.rb})),
88
- '0.0.0.0', '3000', Dir::pwd
104
+ '0.0.0.0', '3000', 'false', Dir::pwd
89
105
  )
90
106
  subject.start
91
107
  end
@@ -107,11 +123,18 @@ describe Guard::WEBrick do
107
123
  subject.start
108
124
  end
109
125
 
110
- it "should open a web browser page" do
126
+ it "should open an HTTP web browser page" do
111
127
  Launchy.should_receive(:open).with("http://0.0.0.0:3000")
112
128
  subject.start
113
129
  end
114
130
 
131
+ it "should open an HTTPS web browser page" do
132
+ Launchy.should_receive(:open).with("https://0.0.0.0:3000")
133
+ subject = Guard::WEBrick.new([], { :ssl => true })
134
+ subject.stub(:wait_for_port)
135
+ subject.start
136
+ end
137
+
115
138
  it "should not open a web browser if disabled" do
116
139
  subject = Guard::WEBrick.new([], { :launchy => false })
117
140
  subject.stub(:wait_for_port)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-webrick
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Fletcher Nichol
@@ -15,44 +15,26 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-17 00:00:00 -06:00
19
- default_executable:
18
+ date: 2012-05-11 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: guard
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
22
  none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 0
32
- - 3
33
- version: "0.3"
34
- type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: ffi
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 25
26
+ hash: 19
45
27
  segments:
46
28
  - 1
47
29
  - 0
48
- - 7
49
- version: 1.0.7
30
+ - 2
31
+ version: 1.0.2
32
+ prerelease: false
33
+ requirement: *id001
50
34
  type: :runtime
51
- version_requirements: *id002
35
+ name: guard
52
36
  - !ruby/object:Gem::Dependency
53
- name: spoon
54
- prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
56
38
  none: false
57
39
  requirements:
58
40
  - - ~>
@@ -63,44 +45,28 @@ dependencies:
63
45
  - 0
64
46
  - 1
65
47
  version: 0.0.1
66
- type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: launchy
70
48
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 15
77
- segments:
78
- - 0
79
- - 4
80
- - 0
81
- version: 0.4.0
49
+ requirement: *id002
82
50
  type: :runtime
83
- version_requirements: *id004
51
+ name: spoon
84
52
  - !ruby/object:Gem::Dependency
85
- name: bundler
86
- prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
88
54
  none: false
89
55
  requirements:
90
56
  - - ~>
91
57
  - !ruby/object:Gem::Version
92
- hash: 3
58
+ hash: 11
93
59
  segments:
60
+ - 2
94
61
  - 1
95
62
  - 0
96
- - 10
97
- version: 1.0.10
98
- type: :development
99
- version_requirements: *id005
100
- - !ruby/object:Gem::Dependency
101
- name: rspec
63
+ version: 2.1.0
102
64
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
65
+ requirement: *id003
66
+ type: :runtime
67
+ name: launchy
68
+ - !ruby/object:Gem::Dependency
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
104
70
  none: false
105
71
  requirements:
106
72
  - - ~>
@@ -111,28 +77,28 @@ dependencies:
111
77
  - 5
112
78
  - 0
113
79
  version: 2.5.0
80
+ prerelease: false
81
+ requirement: *id004
114
82
  type: :development
115
- version_requirements: *id006
83
+ name: rspec
116
84
  - !ruby/object:Gem::Dependency
117
- name: guard-rspec
118
- prerelease: false
119
- requirement: &id007 !ruby/object:Gem::Requirement
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
120
86
  none: false
121
87
  requirements:
122
88
  - - ~>
123
89
  - !ruby/object:Gem::Version
124
- hash: 23
90
+ hash: 3
125
91
  segments:
126
92
  - 0
127
- - 2
93
+ - 7
128
94
  - 0
129
- version: 0.2.0
95
+ version: 0.7.0
96
+ prerelease: false
97
+ requirement: *id005
130
98
  type: :development
131
- version_requirements: *id007
99
+ name: guard-rspec
132
100
  - !ruby/object:Gem::Dependency
133
- name: guard-bundler
134
- prerelease: false
135
- requirement: &id008 !ruby/object:Gem::Requirement
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
136
102
  none: false
137
103
  requirements:
138
104
  - - ~>
@@ -143,8 +109,10 @@ dependencies:
143
109
  - 1
144
110
  - 1
145
111
  version: 0.1.1
112
+ prerelease: false
113
+ requirement: *id006
146
114
  type: :development
147
- version_requirements: *id008
115
+ name: guard-bundler
148
116
  description: Guard::WEBrick automatically starts and restarts WEBrick when needed.
149
117
  email:
150
118
  - fnichol@nichol.ca
@@ -171,7 +139,6 @@ files:
171
139
  - spec/guard/webrick/server_spec.rb
172
140
  - spec/guard/webrick_spec.rb
173
141
  - spec/spec_helper.rb
174
- has_rdoc: true
175
142
  homepage: http://rubygems.org/gems/guard-webrick
176
143
  licenses: []
177
144
 
@@ -203,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
170
  requirements: []
204
171
 
205
172
  rubyforge_project: guard-webrick
206
- rubygems_version: 1.5.2
173
+ rubygems_version: 1.8.17
207
174
  signing_key:
208
175
  specification_version: 3
209
176
  summary: Guard gem for WEBrick