rack-app 0.2.0 → 0.2.1

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: d997c9befda0175c0b2b1c176a9e26ed16610608
4
- data.tar.gz: 262f5320b2e82ea7330694dd02d0b66bc1699cd0
3
+ metadata.gz: b73d73652c1d94613ff5b3e740f363668e2116b3
4
+ data.tar.gz: 2e985c4fb97b52082d67effbf9484ed2a2386441
5
5
  SHA512:
6
- metadata.gz: 641be2541ffe9cca5a775a3f691678db4685ef6c99c4f31584266e229123b3c6d3bea85e511724c7bb8880c6cb84d55cf52a6f48f5498f0bb8b2a876b78b4f13
7
- data.tar.gz: 0c2c35043330ab3b389cb97d1d05104cff383b7bd5b96b875ab0fe012c07919491bf06b624053aa8a8b13873ac362985e08bc256a71d705cfa3a5464d517ece7
6
+ metadata.gz: 9718d82bb50144e069b250df27e1c95cabb52de0c19f44f0004e250c4e7f0743a57f547e04e20c19ca1d96775eda1c7d90a243b7a9ac9df5fbbf3ce9e156f144
7
+ data.tar.gz: 27c7666a0be7acb52d1118ae6ea389695af048997df091c236c4894e8d221130a900753298fe79308b100d2ccc2bbf63e41e4d018e6711a9e39c1e5c841e107e
data/README.md CHANGED
@@ -1,13 +1,19 @@
1
- # Rack::App
1
+ # Rack::APP
2
2
 
3
- Super bare bone Rack::App for writing minimalist/masochist rack apps
3
+ Your next favourite rack based micro framework that is totally addition free!
4
+ Have a cup of awesomeness with your to performance designed framework!
4
5
 
5
6
  The idea behind is simple.
6
- Have a little framework that can allow you write pure rack apps,
7
+ Keep the dependencies and everything as little as possible,
8
+ while able to write pure rack apps,
7
9
  that will do nothing more than what you defined.
8
10
 
9
- This includes that it do not depend on fat libs like activesupport.
10
-
11
+ If you want see fancy magic, you are in a bad place buddy!
12
+ This includes that it do not have such core extensions like activesupport that monkey patch the whole world.
13
+
14
+ Routing can handle large amount of endpoints so if you that crazy to use more than 10k endpoint,
15
+ you still dont have to worry about response speed.
16
+
11
17
  ## Installation
12
18
 
13
19
  Add this line to your application's Gemfile:
@@ -31,8 +37,12 @@ config.ru
31
37
 
32
38
  require 'rack/app'
33
39
 
40
+ require_relative 'lib/bootstrap'
41
+
34
42
  class YourAwesomeApp < Rack::APP
35
43
 
44
+ mount AwesomeController
45
+
36
46
  get '/hello' do
37
47
  'Hello World!'
38
48
  end
@@ -40,27 +50,64 @@ class YourAwesomeApp < Rack::APP
40
50
  get '/nope' do
41
51
  request.env
42
52
  response.write 'some response body'
43
-
44
53
  end
45
54
 
46
- post '/lol_post' do
55
+ post '/lol_post_fail' do
47
56
  status 500
48
57
  'LOL'
49
58
  end
50
-
59
+
60
+ get '/users/:user_id' do
61
+ params['user_id']
62
+ end
63
+
64
+ post '/some/endpoint/for/the/rabbit/:queue_name' do
65
+ mq_request # helper are the class instance method
66
+ end
67
+
68
+ def mq_request
69
+ q = BUNNY_CONN_CHANNEL.queue(params['queue_name'])
70
+ BUNNY_CONN_CHANNEL.default_exchange.publish(request.body.read, :routing_key => q.name)
71
+ end
72
+
51
73
  end
52
74
 
53
75
  run YourAwesomeApp
54
76
  ```
55
77
 
78
+ you can access Rack::Request with the request method and
79
+ Rack::Response as response method.
80
+
81
+ By default if you dont write anything to the response 'body' the endpoint block logic return will be used
82
+
83
+ ## Example Apps To start with
84
+
85
+ * [Basic](https://github.com/adamluzsi/rack-app.rb-examples/tree/master/basic)
86
+ * bare bone simple example app
87
+
88
+ * [Escher Authorized Api](https://github.com/adamluzsi/rack-app.rb-examples/tree/master/escher_authorized)
89
+ * complex authorization for corporal level api use
90
+
56
91
  ## TODO
57
92
 
58
- * benchmark for rails, padrino, sinatra, grape etc to prove awesomeness
93
+ * benchmark for rails, padrino, sinatra, grape etc to prove awesomeness in term of speed
59
94
  * more verbose readme
60
95
  * drink less coffee
61
- * support restful endpoints
62
- * params
63
- * route-matching
96
+
97
+ ## Roadmap
98
+
99
+ ### 0.3.0
100
+
101
+ * add TESTING module for rspec helpers that allow easy to test controllers
102
+
103
+ ### 0.4.0
104
+
105
+ * serializer block/method for class shared serialization logic
106
+
107
+ ### 0.5.0
108
+
109
+ * content_type syntax sugar on class level
110
+ * response_headers syntax sugar for request processing
64
111
 
65
112
  ## Development
66
113
 
@@ -70,5 +117,5 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
70
117
 
71
118
  ## Contributing
72
119
 
73
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/rack-app. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
120
+ Bug reports and pull requests are welcome on GitHub at https://github.com/adamluzsi/rack-app.rb This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
74
121
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
data/rack-app.gemspec CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Adam Luzsi"]
11
11
  spec.email = ["adamluzsi@gmail.com"]
12
12
 
13
- spec.summary = %q{Bare bone minimalistic (masochistic) pico framework for building rack apps}
14
- spec.description = %q{Bare bone minimalistic (masochistic) pico framework for building rack apps}
13
+ spec.summary = %q{Your next favourite, performance designed micro framework!}
14
+ spec.description = %q{Your next favourite rack based micro framework that is totally addition free! Have a cup of awesomeness with your to performance designed framework!}
15
15
  spec.homepage = "https://github.com/adamluzsi/rack-app.rb"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-app
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
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-04 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,8 +66,8 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Bare bone minimalistic (masochistic) pico framework for building rack
70
- apps
69
+ description: Your next favourite rack based micro framework that is totally addition
70
+ free! Have a cup of awesomeness with your to performance designed framework!
71
71
  email:
72
72
  - adamluzsi@gmail.com
73
73
  executables: []
@@ -83,9 +83,6 @@ files:
83
83
  - Rakefile
84
84
  - VERSION
85
85
  - bin/setup
86
- - example/config.ru
87
- - example/mounted_controller.rb
88
- - example/ping.sh
89
86
  - lib/rack/app.rb
90
87
  - lib/rack/app/class_methods.rb
91
88
  - lib/rack/app/endpoint.rb
@@ -121,5 +118,5 @@ rubyforge_project:
121
118
  rubygems_version: 2.2.2
122
119
  signing_key:
123
120
  specification_version: 4
124
- summary: Bare bone minimalistic (masochistic) pico framework for building rack apps
121
+ summary: Your next favourite, performance designed micro framework!
125
122
  test_files: []
data/example/config.ru DELETED
@@ -1,24 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__),'..','lib'))
2
- require 'rack/app'
3
-
4
- require_relative 'mounted_controller'
5
-
6
- class YourAwesomeApp < Rack::APP
7
-
8
- mount MountedController
9
-
10
- get '/hello' do
11
- 'Hello World!'
12
- end
13
-
14
- get '/nope' do
15
- response.write 'nope nope nope...'
16
- end
17
-
18
- get '/users/:user_id' do
19
- params['user_id']
20
- end
21
-
22
- end
23
-
24
- run YourAwesomeApp
@@ -1,11 +0,0 @@
1
- class MountedController < Rack::APP
2
-
3
- get '/first' do
4
- first
5
- end
6
-
7
- def first
8
- 'some text'
9
- end
10
-
11
- end
data/example/ping.sh DELETED
@@ -1,5 +0,0 @@
1
- faraday-cli http://localhost:9292/nope
2
- faraday-cli http://localhost:9292/hello
3
- faraday-cli http://localhost:9292/first
4
- faraday-cli http://localhost:9292/users/123
5
- faraday-cli http://localhost:9292/not_found