wire-framework 0.1.4.1 → 0.1.4.2

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 +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