angelo 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/angelo.rb +3 -1
- data/lib/angelo/base.rb +6 -10
- data/lib/angelo/mustermann.rb +1 -5
- data/lib/angelo/params_parser.rb +1 -4
- data/lib/angelo/responder.rb +1 -0
- data/lib/angelo/server.rb +3 -3
- data/lib/angelo/tilt/erb.rb +5 -0
- data/lib/angelo/version.rb +1 -1
- data/test/angelo_spec.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfff4ac5299ee639afca3b56bc130f71b36940fb
|
4
|
+
data.tar.gz: bae829642aefa5762ff1f1b612d5bf7cfd707d99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 100f313a038eb3dd61f1a87542f9339158c7e0e7b8e4f179c01f7ef83b08a7860f1c49db9ce01a7ba14d1765540d556f98c6f4994cb44a6535a3567a0f5e5da9
|
7
|
+
data.tar.gz: 29708a62189bb0ee987e84d34d2b31c19a56f710ab7147c304f7575a5a59d1a9b20ce4edb0b3d8b0ac96818a5886ab2de29fd041a3d567777127eb536e2fd243
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
changelog
|
2
2
|
=========
|
3
3
|
|
4
|
+
### 0.3.3 16 jan 2015
|
5
|
+
|
6
|
+
thanks: @mighe, @tarcieri, @jc00ke, @gunnarmarten, @tommay
|
7
|
+
|
8
|
+
* RuntimeError if Angelo::Tilt::ERB is included and Tilt is < 2.0
|
9
|
+
* add deprecation warning - plan for Tilt inclusion by default
|
10
|
+
* fix/simplify routing hash (#27)
|
11
|
+
* Base.run, Base.run! now accept an options hash to pass to Reel (#26)
|
12
|
+
* update tests for 2.2.0 URI.parse (https://bugs.ruby-lang.org/issues/10669)
|
13
|
+
* `public_dir` accessor forwarded from base now
|
14
|
+
* `redirect` returns nil
|
15
|
+
* travis tests against rbx (#23)
|
16
|
+
|
4
17
|
### 0.3.2 27 nov 2014 ¡gracias!
|
5
18
|
|
6
19
|
thanks: @mighe, @artworx
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/lib/angelo.rb
CHANGED
@@ -14,7 +14,6 @@ module Angelo
|
|
14
14
|
DELETE = 'DELETE'
|
15
15
|
OPTIONS = 'OPTIONS'
|
16
16
|
|
17
|
-
ROUTABLE = [:get, :post, :put, :delete, :options, :websocket]
|
18
17
|
HTTPABLE = [:get, :post, :put, :delete, :options]
|
19
18
|
STATICABLE = [:get, :head]
|
20
19
|
|
@@ -59,6 +58,9 @@ module Angelo
|
|
59
58
|
DASH = '-'
|
60
59
|
EMPTY_STRING = ''
|
61
60
|
NEWLINE = "\n"
|
61
|
+
SEMICOLON = ';'
|
62
|
+
EQUALS = '='
|
63
|
+
AMPERSAND = '&'
|
62
64
|
|
63
65
|
HALT_STRUCT = Struct.new :status, :body
|
64
66
|
|
data/lib/angelo/base.rb
CHANGED
@@ -6,7 +6,7 @@ module Angelo
|
|
6
6
|
|
7
7
|
extend Forwardable
|
8
8
|
def_delegators :@responder, :content_type, :headers, :redirect, :request, :transfer_encoding
|
9
|
-
def_delegators :@klass, :report_errors?, :sse_event, :sse_message, :sses, :websockets
|
9
|
+
def_delegators :@klass, :public_dir, :report_errors?, :sse_event, :sse_message, :sses, :websockets
|
10
10
|
|
11
11
|
attr_accessor :responder
|
12
12
|
|
@@ -88,11 +88,7 @@ module Angelo
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def routes
|
91
|
-
@routes ||= {}
|
92
|
-
ROUTABLE.each do |m|
|
93
|
-
@routes[m] ||= {}
|
94
|
-
end
|
95
|
-
@routes
|
91
|
+
@routes ||= Hash.new{|h,k| h[k] = {}}
|
96
92
|
end
|
97
93
|
|
98
94
|
def filters
|
@@ -164,13 +160,13 @@ module Angelo
|
|
164
160
|
Responder.content_type type
|
165
161
|
end
|
166
162
|
|
167
|
-
def run! _addr = addr, _port = port
|
168
|
-
run _addr, _port, true
|
163
|
+
def run! _addr = addr, _port = port, options = {}
|
164
|
+
run _addr, _port, options, true
|
169
165
|
end
|
170
166
|
|
171
|
-
def run _addr = addr, _port = port, blocking = false
|
167
|
+
def run _addr = addr, _port = port, options = {}, blocking = false
|
172
168
|
Celluloid.logger.level = log_level
|
173
|
-
@server = Angelo::Server.new self, _addr, _port
|
169
|
+
@server = Angelo::Server.new self, _addr, _port, options
|
174
170
|
@server.async.ping_websockets
|
175
171
|
if blocking
|
176
172
|
trap "INT" do
|
data/lib/angelo/mustermann.rb
CHANGED
data/lib/angelo/params_parser.rb
CHANGED
@@ -7,9 +7,6 @@ module Angelo
|
|
7
7
|
module ParamsParser
|
8
8
|
|
9
9
|
EMPTY_JSON = '{}'
|
10
|
-
SEMICOLON = ';'
|
11
|
-
EQUALS = '='
|
12
|
-
AMPERSAND = '&'
|
13
10
|
|
14
11
|
def parse_formencoded str
|
15
12
|
str.split(AMPERSAND).reduce(Responder.symhash) do |p, kv|
|
@@ -20,7 +17,7 @@ module Angelo
|
|
20
17
|
end
|
21
18
|
|
22
19
|
def parse_query_string
|
23
|
-
parse_formencoded(request.query_string ||
|
20
|
+
parse_formencoded(request.query_string || EMPTY_STRING)
|
24
21
|
end
|
25
22
|
|
26
23
|
def parse_post_body
|
data/lib/angelo/responder.rb
CHANGED
data/lib/angelo/server.rb
CHANGED
@@ -11,13 +11,13 @@ module Angelo
|
|
11
11
|
|
12
12
|
attr_reader :base
|
13
13
|
|
14
|
-
def initialize base, addr = nil, port = nil
|
14
|
+
def initialize base, addr = nil, port = nil, options = {}
|
15
15
|
@base = base
|
16
16
|
addr ||= @base.addr
|
17
17
|
port ||= @base.port
|
18
18
|
info "Angelo #{VERSION}"
|
19
19
|
info "listening on #{addr}:#{port}"
|
20
|
-
super addr, port, &method(:on_connection)
|
20
|
+
super addr, port, options, &method(:on_connection)
|
21
21
|
end
|
22
22
|
|
23
23
|
def on_connection connection
|
@@ -56,7 +56,7 @@ module Angelo
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def route! meth, connection, request
|
59
|
-
if
|
59
|
+
if rs = @base.routes[meth][request.path]
|
60
60
|
responder = rs.dup
|
61
61
|
responder.reset!
|
62
62
|
responder.base = @base.new responder
|
data/lib/angelo/tilt/erb.rb
CHANGED
@@ -13,6 +13,11 @@ module Angelo
|
|
13
13
|
# hrm, sneaky
|
14
14
|
#
|
15
15
|
def self.included base
|
16
|
+
|
17
|
+
# TODO: remove at 0.4
|
18
|
+
warn "[DEPRECATED] Angelo::Tilt::ERB will be included by default in angelo >= 0.4"
|
19
|
+
raise "Angelo requires Tilt >= 2.0, you have #{::Tilt::VERSION}" unless ::Tilt::VERSION.to_i >= 2
|
20
|
+
|
16
21
|
base.extend ClassMethods
|
17
22
|
end
|
18
23
|
|
data/lib/angelo/version.rb
CHANGED
data/test/angelo_spec.rb
CHANGED
@@ -91,7 +91,7 @@ describe Angelo::Base do
|
|
91
91
|
|
92
92
|
it 'does not crash when receiving invalid uri' do
|
93
93
|
s = TCPSocket.new Angelo::DEFAULT_ADDR, Angelo::DEFAULT_PORT
|
94
|
-
s.write 'GET /?file=<SCRIPT>window.alert
|
94
|
+
s.write 'GET /?file=<SCRIPT>window.alert&*(#%)(^&*</SCRIPT>' + "\n\n"
|
95
95
|
r = s.read
|
96
96
|
s.close
|
97
97
|
assert @server.alive?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: angelo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenichi Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reel
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.4.
|
110
|
+
rubygems_version: 2.4.5
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: A Sinatra-esque DSL for Reel
|