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.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/Action.rb +25 -0
  3. data/Apatite.rb +49 -0
  4. data/Data/Redis.rb +31 -0
  5. 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: []