wire-framework 0.1.4.1 → 0.1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/app.rb +1 -0
  3. data/lib/app/cache.rb +64 -0
  4. data/lib/wire.rb +1 -1
  5. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ede8e48ae87a4c9ad0d4fbbc0946be9c593e24d6
4
- data.tar.gz: c644fe6e3564283216a4f37a9ce9c081d58dbf93
3
+ metadata.gz: 8fb0cb127428e965623ad670dfcdf591c54dcb84
4
+ data.tar.gz: 9bffa2b55ea5271e0dfdc87a5f5b5a916af48f73
5
5
  SHA512:
6
- metadata.gz: 2fcdb06bed96613279f9f1434026deeaf3f3690b07143d3e75d4b8d71d5a4f0012d9bbece49d3a5c8493c9fd319fc1666b004653360ac1fc8e310f8dc5782077
7
- data.tar.gz: 4071c50684edc0aaf5df08e46f938c259809685517c6e8a40aea06b69eb1a044831b5ec98ac6a275c4c4af8072abaee72f65e098ef00b665e72103331b89ed6d
6
+ metadata.gz: 28e3e80dd115e2e217e69bd6faf5033232569ae3f4584c7151cab5a26fada4067665d91dd03068922ef6c07100ab4fec8a0434e00c610eccd028356de541548d
7
+ data.tar.gz: 319d6e21f2f09a68b57a12a4732a74b4974b2031dc519b98e2da0b8868cdaa1fe6ae0d502d4190d974f46d5648584373fd3ec6aff27e4b67a53706ce67a43233
data/lib/app.rb CHANGED
@@ -21,6 +21,7 @@ module Wire
21
21
  end
22
22
  end
23
23
 
24
+ require_relative 'app/cache'
24
25
  require_relative 'app/db'
25
26
  require_relative 'app/file'
26
27
  require_relative 'app/login'
data/lib/app/cache.rb ADDED
@@ -0,0 +1,64 @@
1
+ require_relative '../app'
2
+ require_relative '../closet/resource'
3
+ require_relative '../app/render'
4
+
5
+ module Cache
6
+ module Memory
7
+ include Wire::App
8
+ include Wire::Resource
9
+ extend Render
10
+
11
+ $cache = {}
12
+
13
+ def self.write_aware
14
+ $current_resource[:write_aware] = true
15
+ end
16
+
17
+ def self.update_cache(context)
18
+ action = (context.uri.length == 3) ? :readAll : :read
19
+ content = forward(action,context)
20
+ temp = context.uri.dup
21
+ temp.shift
22
+ target = $cache
23
+ until temp.empty?
24
+ current = temp.shift
25
+ unless target[current]
26
+ target[current] = {}
27
+ end
28
+ target = target[current]
29
+ end
30
+ target = (context.uri.length == 3) ? target[:all] : target
31
+ target = content
32
+ end
33
+
34
+ def self.get_cached(context)
35
+ temp = context.uri.dup
36
+ temp.shift
37
+ result = $cache
38
+ until temp.empty?
39
+ result = result[temp.shift]
40
+ end
41
+ if context.uri.length == 3
42
+ result = result[:all]
43
+ end
44
+ result
45
+ end
46
+
47
+ def self.invoke(actions,context)
48
+ case context.action
49
+ when :create,:update,:delete
50
+ result = forward(context.action,context)
51
+ if context.resource[:write_aware]
52
+ update_cache(context)
53
+ end
54
+ result
55
+ when :read
56
+ cached = get_cached(context)
57
+ unless cached
58
+ cached = update_cache(context)
59
+ end
60
+ cached
61
+ end
62
+ end
63
+ end
64
+ end
data/lib/wire.rb CHANGED
@@ -24,5 +24,5 @@ end
24
24
  # @author Bryan T. Meyers
25
25
  module Wire
26
26
  # Current version of the Wire Gem
27
- VERSION = '0.1.4.1'
27
+ VERSION = '0.1.4.2'
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wire-framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4.1
4
+ version: 0.1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan T. Meyers
@@ -160,6 +160,7 @@ files:
160
160
  - LICENSE
161
161
  - README.md
162
162
  - lib/app.rb
163
+ - lib/app/cache.rb
163
164
  - lib/app/db.rb
164
165
  - lib/app/file.rb
165
166
  - lib/app/history.rb