rasti-web 0.0.7 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de59fca7175d5f8cbb503bf4c0e7c42f1a2d6a59
4
- data.tar.gz: ac30c6d80f0b7b38f24511c5f817bade19bcca8a
3
+ metadata.gz: 999b0e5bcb54088a41c56b17277f32713ad9731c
4
+ data.tar.gz: 38afef4e73a96bc749c9b09082880c5d2c2b0098
5
5
  SHA512:
6
- metadata.gz: 09ec9ae2b8e1001e66e5a6c40c8f722be2efe3f41394935d879eb25a371c4ecd564bf96b177d1d59b496bb85349fed1e6ef46ac99ecdecf50241342ad5a58a9c
7
- data.tar.gz: fa6c7dffeacf5608d4b29990105873c06023b6609d36d8d2f962ed0444c14cc25507f7aa95b241ef50ccd19ea8697b00af616c2fa724bb8fa4853758b184dc54
6
+ metadata.gz: 9f1bbc842a4ffe459a6c1288df422fa11b7d8a61faa753ea97b5ebcbb8a2225ece830d97b72cbeb00041f6c9645ab4e8730a32028523b0e66fddbc567ff79fd2
7
+ data.tar.gz: 161c0a4f55c947accbd829d63640cad6bc24359bd8668c198d6f6cd1840420fbdce3df3860700ee2f88abac93cb48e49677b4587fa82af5d0fb749aa8f347c71
@@ -2,10 +2,13 @@ module Rasti
2
2
  module Web
3
3
  class Request < Rack::Request
4
4
 
5
- def initialize(env)
6
- super
7
- params.merge! JSON.parse(body_text) if json? && body_text
8
- params.merge! env[ROUTE_PARAMS] if env[ROUTE_PARAMS]
5
+ def params
6
+ @params ||= Hash::Indifferent.new.tap do |hash|
7
+ hash.update self.GET
8
+ hash.update self.POST
9
+ hash.update env[ROUTE_PARAMS] if env.key? ROUTE_PARAMS
10
+ hash.update JSON.parse(body_text) if json? && body_text
11
+ end
9
12
  end
10
13
 
11
14
  def body_text
@@ -1,5 +1,5 @@
1
1
  module Rasti
2
2
  module Web
3
- VERSION = '0.0.7'
3
+ VERSION = '0.1.0'
4
4
  end
5
5
  end
data/lib/rasti/web.rb CHANGED
@@ -5,6 +5,7 @@ require 'mime-types'
5
5
  require 'class_config'
6
6
  require 'forwardable'
7
7
  require 'logger'
8
+ require 'hash_ext'
8
9
 
9
10
  require_relative 'web/route'
10
11
  require_relative 'web/router'
data/rasti-web.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency 'tilt', '~> 2.0'
23
23
  spec.add_dependency 'mime-types', '~> 2.0'
24
24
  spec.add_dependency 'class_config', '~> 0.0.2'
25
+ spec.add_dependency 'hash_ext', '~> 0.1'
25
26
 
26
27
  spec.add_development_dependency 'bundler', '~> 1.6'
27
28
  spec.add_development_dependency 'rake'
data/spec/request_spec.rb CHANGED
@@ -3,13 +3,31 @@ require 'minitest_helper'
3
3
  describe Rasti::Web::Request do
4
4
 
5
5
  it 'Route params' do
6
- env = Rack::MockRequest.env_for '/'
7
- env[Rasti::Web::ROUTE_PARAMS] = {'x' => 1, 'y' => 2}
6
+ env = Rack::MockRequest.env_for '/10/20'
7
+ env[Rasti::Web::ROUTE_PARAMS] = {'lat' => '10', 'lon' => '20'}
8
8
 
9
9
  request = Rasti::Web::Request.new env
10
10
 
11
- request['x'].must_equal 1
12
- request['y'].must_equal 2
11
+ request.params[:lat].must_equal '10'
12
+ request.params['lon'].must_equal '20'
13
+ end
14
+
15
+ it 'Query string params' do
16
+ env = Rack::MockRequest.env_for '/?lat=10&lon=20'
17
+
18
+ request = Rasti::Web::Request.new env
19
+
20
+ request.params[:lat].must_equal '10'
21
+ request.params['lon'].must_equal '20'
22
+ end
23
+
24
+ it 'Form params' do
25
+ env = Rack::MockRequest.env_for '/', method: 'POST', params: 'lat=10&lon=20'
26
+
27
+ request = Rasti::Web::Request.new env
28
+
29
+ request.params[:lat].must_equal '10'
30
+ request.params['lon'].must_equal '20'
13
31
  end
14
32
 
15
33
  it 'Json body params' do
@@ -18,8 +36,8 @@ describe Rasti::Web::Request do
18
36
  request = Rasti::Web::Request.new env
19
37
 
20
38
  request.must_be :json?
21
- request['lat'].must_equal 10
22
- request['lon'].must_equal 20
39
+ request.params[:lat].must_equal 10
40
+ request.params['lon'].must_equal 20
23
41
  end
24
42
 
25
43
  it 'No json body params' do
@@ -28,8 +46,8 @@ describe Rasti::Web::Request do
28
46
  request = Rasti::Web::Request.new env
29
47
 
30
48
  request.wont_be :json?
31
- request['lat'].must_be_nil
32
- request['lon'].must_be_nil
49
+ request.params[:lat].must_be_nil
50
+ request.params['lon'].must_be_nil
33
51
  end
34
52
 
35
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rasti-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-18 00:00:00.000000000 Z
11
+ date: 2016-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: hash_ext
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.1'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -234,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
248
  version: '0'
235
249
  requirements: []
236
250
  rubyforge_project:
237
- rubygems_version: 2.4.3
251
+ rubygems_version: 2.4.8
238
252
  signing_key:
239
253
  specification_version: 4
240
254
  summary: Web blocks to build robust applications