hmlons_web 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a7e5692d27046682c7e4a3e00d1485e0ef4a216
4
- data.tar.gz: 35b58d2d7f2bd78fd3c53bea8aa3256e5529a1e6
3
+ metadata.gz: de41ca37caabe3918de67106d3066965b1b9f48f
4
+ data.tar.gz: ddba0c2df58331fdd37e45abee84c9a190a26167
5
5
  SHA512:
6
- metadata.gz: d90c1a84d61ab0122d2b25528b5ceacccfebb5fc58792ad8482c38bf6b63d9da8c25978d5428519175154e66fed9fba75e0834b3de342de1bf3db64124e43634
7
- data.tar.gz: b2e95c5fa605cf757ea96a280c83e2dea2765ab809ad5d1527461a90ec0a0d24df1e4ec6f3a2d0d2167f2f9f87ac48dcd10f2d35b6131d232d4118049c2014f5
6
+ metadata.gz: 57d1028a9f449da09a7c86b40afb16516a432fe818a9cb627b00610cc65060d870dfb52155c1c31684a30617d962f0ba3654b0f8c23102c0e094d6a6b53c78bd
7
+ data.tar.gz: 66b6f5f7bd30bff07907a6ccb27a59d89f2f36ca639d31659b3b5046a0d95ade64951e21b0104c80046988ffe3814ca5843124064f2fc310b43101fc34bf2bf5
Binary file
Binary file
data/hmlons_web.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "bundler", "~> 1.13"
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_development_dependency "oj", "~> 2.17"
36
37
  end
@@ -0,0 +1,35 @@
1
+ class HmlonsWeb::Controller
2
+ RESPONSE_TYPES = {
3
+ text: ['text/plain', ->(c) { c.to_s }],
4
+ json: ['application/json', ->(c) { Oj.dump(c) }]
5
+ }.freeze
6
+
7
+ def call(env)
8
+ @env = env
9
+ @request = Rack::Request.new(env)
10
+ @request.params.merge!(env['router.params'] || {})
11
+ send(@action_name)
12
+ [200, @response_headers, [@response_body]]
13
+ end
14
+
15
+ def self.action(action_name)
16
+ proc { |env| new(action_name).call(env) }
17
+ end
18
+
19
+ private
20
+ attr_reader :request
21
+
22
+ def initialize(action_name)
23
+ @action_name = action_name
24
+ end
25
+
26
+ def params
27
+ request.params
28
+ end
29
+
30
+ def response(type, content)
31
+ @response_headers ||= {}
32
+ @response_headers.merge!('Content-Type' => RESPONSE_TYPES[type][0])
33
+ @response_body = RESPONSE_TYPES[type][1].call(content)
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
1
  module HmlonsWeb
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hmlons_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: oj
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.17'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.17'
55
69
  description: This framework allows to create router and controller
56
70
  email:
57
71
  - nik.kholin@gmail.com
@@ -68,8 +82,11 @@ files:
68
82
  - Rakefile
69
83
  - bin/console
70
84
  - bin/setup
85
+ - hmlons_web-0.1.0.gem
86
+ - hmlons_web-0.2.0.gem
71
87
  - hmlons_web.gemspec
72
88
  - lib/hmlons_web.rb
89
+ - lib/hmlons_web/controller.rb
73
90
  - lib/hmlons_web/router.rb
74
91
  - lib/hmlons_web/version.rb
75
92
  homepage: http://www.room538.herokuapp.com