objectsframework 1.0.0

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 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: []