objectsframework 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 036dc858f283c874b1396b872158b08366976217
4
+ data.tar.gz: c93a605577e55feb0a31881a04e8105d20efbd64
5
+ SHA512:
6
+ metadata.gz: 6735426bfb604e40998a02a60abe994b79905efbb8e84777cad89375756078eca3329d7d4d02e6c3ef8104ec4bf57779498de657c0d671438449fccce5a60de1
7
+ data.tar.gz: 994ecb820c0318997c6e8258adcbda7e0a019dfeaba6eca2eb5c86410cfe788a18826f325d4d2b52bf781af2ada3fcae5b59e5ed45f2b6cbeba6fc1b7a7d0676
@@ -0,0 +1,15 @@
1
+ module ObjectsFramework
2
+ class Object
3
+ def initialize(request,response)
4
+ @request,@response = request,response
5
+ end
6
+
7
+ def request
8
+ @request
9
+ end
10
+
11
+ def response
12
+ @response
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module ObjectsFramework
2
+ class ObjectHandler
3
+ def self.run_methods(request,response)
4
+ path = request.path
5
+ parts = path.split("/")
6
+ begin
7
+ klass = Object.const_get(parts[1].capitalize).new(request,response)
8
+ if(parts[3].nil?)
9
+ klass.send(request.request_method.downcase!+"_"+parts[2])
10
+ else
11
+ klass.send(request.request_method.downcase!+"_"+parts[2],parts[3..parts.length])
12
+ end
13
+ rescue
14
+ response.status = 404
15
+ response.write "<h1>404 Not Found</h1><hr/><i>Ruby Rack Server powered by ObjectsFramework <br/><pre>#{e.to_s}</pre></i>"
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,10 @@
1
+ # I do this in order to have access to Ruby's File class instead of Rack::File
2
+ $file = File
3
+ module Rack
4
+ class Response
5
+ # Send file
6
+ def send(filename)
7
+ self.write $file.read(filename);
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ module ObjectsFramework
2
+ class Server
3
+ def initialize
4
+
5
+ end
6
+
7
+ def call(env)
8
+ request = Rack::Request.new(env)
9
+ response = Rack::Response.new(env)
10
+ # Solves some weird bug where ENV is added to the response body
11
+ response.body = []
12
+ response.length = 0
13
+ # Set text/html as Content-type by default
14
+ response.header["Content-type"] = "text/html"
15
+ ObjectsFramework::ObjectHandler.run_methods(request,response);
16
+ response.finish
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,4 @@
1
+ require 'objectsframework/overrides'
2
+ require 'objectsframework/object'
3
+ require 'objectsframework/server'
4
+ require 'objectsframework/object_handler'
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: objectsframework
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Bram Vandenbogaerde
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Very simple http application framework, no special extras, just the basics.
14
+ More documentation is coming!
15
+ email: contact@bramvdb.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/objectsframework.rb
21
+ - lib/objectsframework/object.rb
22
+ - lib/objectsframework/object_handler.rb
23
+ - lib/objectsframework/overrides.rb
24
+ - lib/objectsframework/server.rb
25
+ homepage: https://rubygems.org/gems/objectsframework
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.3.0
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: HTTP routes based on objects
49
+ test_files: []