Apatite 0.0.1.pre
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 +7 -0
- data/Action.rb +25 -0
- data/Apatite.rb +49 -0
- data/Data/Redis.rb +31 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4864bea9319b626e3d6436e84cc859961cc1f522b14afd2e3d8a164aef443bcd
|
4
|
+
data.tar.gz: dd49f2c7d9736aa6d4cd5b42123ccedf4766afd342f0ac5f37afa7841f6d83d7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8cf5f335fbb9177a928174646ca829ac5c40a6dc15290a459344df6c8d68fb705440fdea94c6e045a6b344bcfa6d30dd58f7ae8cf26bd4ac4711a66bdfac85bc
|
7
|
+
data.tar.gz: 6b5563be7ec6ad70285dad035bd8abc7da1017d34f5ccd9d6039bfc5921ee1e2366724e0e4b4a522b0cdf5fe5ce371fc01a2a5d454c4f5152899c6950f53fe2a
|
data/Action.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
class Action
|
2
|
+
attr_reader :headers, :body, :request
|
3
|
+
|
4
|
+
def initialize(&block)
|
5
|
+
@block = block
|
6
|
+
@status = 200
|
7
|
+
@headers = {"Content-Type" => "text/html"}
|
8
|
+
@body = ""
|
9
|
+
end
|
10
|
+
|
11
|
+
def status(value = nil)
|
12
|
+
value ? @status = value : @status
|
13
|
+
end
|
14
|
+
|
15
|
+
def params
|
16
|
+
request.params
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(env)
|
20
|
+
@request = Rack::Request.new(env)
|
21
|
+
@body = self.instance_eval(&@block)
|
22
|
+
[status, headers, [body]]
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/Apatite.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rack'
|
2
|
+
require 'Data/Redis.rb'
|
3
|
+
require 'Action.rb'
|
4
|
+
|
5
|
+
class Apatite
|
6
|
+
@app = nil
|
7
|
+
@redis = Redis.new(@redisURL, @SENTINELS, @role)
|
8
|
+
@redisURL = nil
|
9
|
+
@SENTINELS = nil
|
10
|
+
@role = nil
|
11
|
+
# Initializes the class
|
12
|
+
# @param URL
|
13
|
+
# Redis URL
|
14
|
+
# @param SENTINELS
|
15
|
+
# Redis SENTINELS
|
16
|
+
# @param role
|
17
|
+
# Redis role
|
18
|
+
def initialize(URL, SENTINELS=nil, role=:master)
|
19
|
+
@redisURL = URL
|
20
|
+
@SENTINELS = SENTINELS
|
21
|
+
@role = role
|
22
|
+
end
|
23
|
+
def self.app
|
24
|
+
@app ||= begin
|
25
|
+
Rack::Builder.new do
|
26
|
+
map "/" do
|
27
|
+
run ->(env) {[200, {'Content-Type' => 'text/plain'}, ['Witaj!']] }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
# Call function
|
33
|
+
def call(env)
|
34
|
+
[200, {"Content-Type" => "text/html"}, ["Witaj!"]]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
# Creates a route
|
38
|
+
def route(pattern, &block)
|
39
|
+
Apatite.app.map(pattern) do
|
40
|
+
run Action.new(&block)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# To create a route use
|
45
|
+
# apatite = Apatite.new
|
46
|
+
# route("/example") do
|
47
|
+
# "Hello"
|
48
|
+
# end
|
49
|
+
# run apatite.app
|
data/Data/Redis.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'redis'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Redis
|
5
|
+
# Redis Class
|
6
|
+
@redis = Redis.new(url: @url, sentinels: @SENTINELS, role: @role)
|
7
|
+
@url = nil
|
8
|
+
@SENTINELS = nil
|
9
|
+
@role = nil
|
10
|
+
def initialize(URL, SENTINELS, role=:master)
|
11
|
+
@url = URL
|
12
|
+
@SENTINELS = SENTINELS
|
13
|
+
@role = role
|
14
|
+
end
|
15
|
+
# Redis set
|
16
|
+
def set(key, value)
|
17
|
+
@redis.set(key, value)
|
18
|
+
end
|
19
|
+
# Redis set but value is converted to JSON
|
20
|
+
def setJSON (key, &block)
|
21
|
+
@redis.set(key,&block.to_json)
|
22
|
+
end
|
23
|
+
# Redis get
|
24
|
+
def get(key)
|
25
|
+
return @redis.get(key)
|
26
|
+
end
|
27
|
+
# Redis set but value is converted from JSON
|
28
|
+
def getJSON(key)
|
29
|
+
return JSON.parse(@redis.get(key))
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: Apatite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- VirtualFox
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-21 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
14
|
+
email:
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- Action.rb
|
20
|
+
- Apatite.rb
|
21
|
+
- Data/Redis.rb
|
22
|
+
homepage:
|
23
|
+
licenses:
|
24
|
+
- NGPL
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.3.1
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.7.6
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Apatite web framework
|
46
|
+
test_files: []
|