motion-icebox 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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: