sinatra-simplecache 0.0.1 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8322dbc5868b8340fb2728fc8b451c16b918fd6f
4
- data.tar.gz: aa27a293f6fb17070e8b49daa9a8df6b1e3d0624
3
+ metadata.gz: b78abec2742d26290b181e67e53a2a65976f6cae
4
+ data.tar.gz: edfa96bed9423298cf47f195273f494dacfdd39e
5
5
  SHA512:
6
- metadata.gz: 206d2be8312f58f232ab9bf107246d561d9c0e326c99e20531e7ba0f1956d36f1afb05418ed389e806693aa7931de2c71cacbcae2e167b7eeaedb18af8aa47b8
7
- data.tar.gz: 2b4e0cdb1250883ca876e5a7edf6efa818d4196c67ea39ae46c86e6a3d40ff0fd0710f7b0f8f4921085c71d8abf1fd3988ebbf0688cb5dff92d86888e27c4d8c
6
+ metadata.gz: 4ef941d40b97062c4dad36e8aedb35f8a35b7c0c19321d2b655c292b36067e6ff7fbb4cd2146668c195efcd879a4dec9b8e162f856717668461ddfce87d7caf2
7
+ data.tar.gz: 02cde8e9a7247e50f968796bbefcbe62c4ddb3443d28362bae92aa2f26f0d235ca09150dcca27373e6f64b085f2b365d9e2a2da13d23e6f55d1795035865aec6
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Sinatra::Simplecache
2
2
 
3
- TODO: Write a gem description
3
+ Simple cache helpers for Sinatra.
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,7 +18,33 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ Modular Application:
22
+
23
+ ``` ruby
24
+ require 'sinatra/base'
25
+ require 'sinatra/simplecache'
26
+ require 'erubis'
27
+
28
+ class TestApp < Sinatra::Base
29
+ helpers Sinatra::SimpleCache
30
+ set :erb, escape_html: true
31
+
32
+ get '/' do
33
+ cache(key: "index", expire: 10) { erb :index, locals: { _time: Time.now }}
34
+ end
35
+
36
+ run! if app_file == $0
37
+ end
38
+ ```
39
+
40
+ `sinatra-simplecache` provide `cache` helper method.
41
+ This helper method take two args,
42
+
43
+ * options
44
+ - key: cache key
45
+ - expire: set expire time(Time or Numeric)
46
+ * block
47
+ - evaluate Template, RDB/KVS Query etc.
22
48
 
23
49
  ## Contributing
24
50
 
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module SimpleCache
3
- VERSION = "0.0.1"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -3,8 +3,7 @@ require "sinatra/base"
3
3
 
4
4
  module Sinatra
5
5
  module SimpleCache
6
- # Example.
7
- #
6
+ # @example
8
7
  # For operation cache:
9
8
  # @@users = MySQL.query("...").to_a
10
9
  # //=> @@users = cache(key: "users", expire: 0.6) { MySQL.query("...").to_a }
@@ -17,19 +16,24 @@ module Sinatra
17
16
  # @@sidebar = cache(key: "sidebar", expire: 1) { slim: sidebar }
18
17
  # slim :detail, :locales = { :sidebar => @@sidebar }
19
18
  #
19
+ # @param [Hash] opts Must specified :key and :expire
20
+ # @option opts [String] :key Cache key
21
+ # @option opts [Numeric] :expire(Infinity) Expire time
22
+ # @yield Evaluate template, RDB/KVS query etc
23
+ # @return [String] Block evaluated value, or cached value.
20
24
  def cache(opts={}, &block)
21
- @@entries ||= {}
25
+ @@__entries__ ||= {}
22
26
 
23
27
  now = Time.now.to_f
24
- expire = opts[:expire] ? (opts[:expire] + now) : (@@inf ||= 1/0.0)
28
+ (expire = opts[:expire]) ? (expire + now) : (@@inf ||= 1/0.0)
25
29
  key = opts[:key] || (defined?(Sinatra) && request.path) || abort("set key")
26
30
 
27
- if (e = @@entries[key]) && (e[:expire] > now)
31
+ if (e = @@__entries__[key]) && (e[:expire] > now)
28
32
  return e[:value]
29
33
  end
30
34
 
31
35
  value = block.call
32
- @@entries[key] = {
36
+ @@__entries__[key] = {
33
37
  expire: expire,
34
38
  value: value
35
39
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-simplecache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoppi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-06 00:00:00.000000000 Z
11
+ date: 2013-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -92,3 +92,4 @@ signing_key:
92
92
  specification_version: 4
93
93
  summary: Simple cache helper for Sinatra
94
94
  test_files: []
95
+ has_rdoc: