angelo 0.3.2 → 0.3.3
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 +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
|