motion-icebox 0.1.2 → 0.1.3

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.
data/lib/motion-icebox.rb CHANGED
@@ -1,64 +1,9 @@
1
- class Icebox
1
+ unless defined?(Motion::Project::Config)
2
+ raise 'This file must be required within a RubyMotion project Rakefile.'
3
+ end
2
4
 
3
- def self.freeze(obj, name, options = {})
4
- instance.freeze(obj, name, options)
5
+ Motion::Project::App.setup do |app|
6
+ Dir.glob(File.join(File.dirname(__FILE__), 'motion-icebox/*.rb')).each do |file|
7
+ app.files.unshift(file)
5
8
  end
6
-
7
- def self.unfreeze(name = nil)
8
- instance.unfreeze(name)
9
- end
10
-
11
- def self.instance
12
- @instance ||= new
13
- end
14
-
15
- attr_reader :storage
16
-
17
- def freeze(obj, name, options)
18
- storage[name] = val(obj)
19
- end
20
-
21
- def unfreeze(name)
22
- storage[name].load
23
- end
24
-
25
- def initialize
26
- @storage = {}
27
- end
28
-
29
- def val(obj)
30
- StoredObject.new(obj)
31
- end
32
-
33
- class StoredObject
34
-
35
- attr_reader :time_stored
36
- attr_accessor :storage_type
37
-
38
- def initialize(original_obj)
39
- @obj = save(original_obj)
40
- @time_stored = Time.now
41
- end
42
-
43
- def save(obj)
44
- begin
45
- self.storage_type = :marshal
46
- Marshal.dump obj
47
- rescue
48
- self.storage_type = :clone
49
- obj.clone
50
- end
51
- end
52
-
53
- def load
54
- case storage_type
55
- when :marshal
56
- Marshal.load @obj
57
- when :clone
58
- @obj
59
- end
60
- end
61
-
62
- end
63
-
64
9
  end
@@ -0,0 +1,36 @@
1
+ module IB
2
+ class Icebox
3
+
4
+ def self.freeze(obj, name, options = {})
5
+ instance.freeze(obj, name, options)
6
+ end
7
+
8
+ def self.unfreeze(name = nil)
9
+ instance.unfreeze(name)
10
+ end
11
+
12
+ def self.instance
13
+ @instance ||= new
14
+ end
15
+
16
+ attr_reader :storage
17
+
18
+ def freeze(obj, name, options)
19
+ storage[name] = val(obj)
20
+ end
21
+
22
+ def unfreeze(name)
23
+ storage[name].load
24
+ end
25
+
26
+ def initialize
27
+ @storage = {}
28
+ end
29
+
30
+ def val(obj)
31
+ StoredObject.new(obj)
32
+ end
33
+ end
34
+ end
35
+
36
+
@@ -0,0 +1,32 @@
1
+ module IB
2
+ class StoredObject
3
+
4
+ attr_reader :time_stored
5
+ attr_accessor :storage_type
6
+
7
+ def initialize(original_obj)
8
+ @obj = save(original_obj)
9
+ @time_stored = Time.now
10
+ end
11
+
12
+ def save(obj)
13
+ begin
14
+ self.storage_type = :marshal
15
+ Marshal.dump obj
16
+ rescue
17
+ self.storage_type = :clone
18
+ obj.clone
19
+ end
20
+ end
21
+
22
+ def load
23
+ case storage_type
24
+ when :marshal
25
+ Marshal.load @obj
26
+ when :clone
27
+ @obj
28
+ end
29
+ end
30
+
31
+ end
32
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-icebox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -19,6 +19,8 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - README.md
22
+ - lib/motion-icebox/icebox.rb
23
+ - lib/motion-icebox/stored_object.rb
22
24
  - lib/motion-icebox.rb
23
25
  homepage: http://rubymotionquery.com
24
26
  licenses: