nano-store 0.4.3 → 0.5.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.
- data/.gitignore +1 -0
- data/CHANGELOG +40 -0
- data/README.md +25 -0
- data/Rakefile +0 -1
- data/lib/nano_store/association.rb +51 -0
- data/lib/nano_store/bag.rb +29 -15
- data/lib/nano_store/model.rb +6 -7
- data/lib/nano_store/version.rb +1 -1
- data/nano-store.gemspec +0 -1
- data/spec/association_spec.rb +59 -0
- data/spec/bag_spec.rb +15 -3
- data/spec/model_spec.rb +14 -0
- data/spec/nano_store_spec.rb +6 -2
- data/vendor/Podfile.lock +1 -1
- data/vendor/Pods/Pods-resources.sh +4 -0
- data/vendor/Pods/Pods.xcconfig +3 -3
- metadata +12 -18
data/.gitignore
CHANGED
data/CHANGELOG
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# [0.4.3](https://github.com/siuying/NanoStoreInMotion/compare/v0.4.2%E2%80%A6v0.4.3)
|
|
2
|
+
|
|
3
|
+
- Fix bug saving bag to store
|
|
4
|
+
|
|
5
|
+
# [0.4.2](https://github.com/siuying/NanoStoreInMotion/compare/v0.4.1%E2%80%A6v0.4.2)
|
|
6
|
+
|
|
7
|
+
- Supports hashes with string keys in model initializer
|
|
8
|
+
|
|
9
|
+
# [0.4.1](https://github.com/siuying/NanoStoreInMotion/compare/v0.4.0%E2%80%A6v0.4.1)
|
|
10
|
+
|
|
11
|
+
- Fix bug when nil is inserted in field
|
|
12
|
+
|
|
13
|
+
# [0.4.0](https://github.com/siuying/NanoStoreInMotion/compare/v0.3.14%E2%80%A6v0.4.0)
|
|
14
|
+
|
|
15
|
+
- Use define_method in model instead of method_missing hacks (as rubymotion support define_method now)
|
|
16
|
+
|
|
17
|
+
# [0.3.13](https://github.com/siuying/NanoStoreInMotion/compare/v0.3.12%E2%80%A6v0.3.13)
|
|
18
|
+
|
|
19
|
+
- Add find_by_key
|
|
20
|
+
- Fix NameError when there's exception in store extension
|
|
21
|
+
- Update motion-cocoapods and bubble-wrap
|
|
22
|
+
|
|
23
|
+
# [0.3.12](https://github.com/siuying/NanoStoreInMotion/compare/v0.3.11%E2%80%A6v0.3.12)
|
|
24
|
+
|
|
25
|
+
- Update NanoStore pods to 2.1.4
|
|
26
|
+
|
|
27
|
+
# [0.3.0 - 0.3.11](https://github.com/siuying/NanoStoreInMotion/compare/v0.3.0%E2%80%A6v0.3.11)
|
|
28
|
+
|
|
29
|
+
- Fix crash on find_keys
|
|
30
|
+
- Fix finder
|
|
31
|
+
- Updated to NanoStore 2.1.3
|
|
32
|
+
- Add bulk delete
|
|
33
|
+
- Fix bug that #find and #all returning objects of any classes
|
|
34
|
+
- Add support array as parameter of finder (OR)
|
|
35
|
+
- Add sort to all finder
|
|
36
|
+
- Improved finder: now support specify multiple criteria with Array and Hash, as well as using hash for equality
|
|
37
|
+
|
|
38
|
+
# 0.2.3
|
|
39
|
+
|
|
40
|
+
- Initial gem release
|
data/README.md
CHANGED
|
@@ -170,6 +170,31 @@ bag.save
|
|
|
170
170
|
bags = store.bags
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
+
### Association
|
|
174
|
+
|
|
175
|
+
Use ```bag``` to declare a Bag that associated with a Model.
|
|
176
|
+
|
|
177
|
+
````ruby
|
|
178
|
+
|
|
179
|
+
class User < NanoStore::Model
|
|
180
|
+
attribute :name
|
|
181
|
+
attribute :age
|
|
182
|
+
attribute :created_at
|
|
183
|
+
bag :cars
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
class Car < NanoStore::Model
|
|
187
|
+
attribute :name
|
|
188
|
+
attribute :age
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
user = User.new(:name => "Peter", :age => 20, :created_at => Time.now)
|
|
192
|
+
user.cars << Car.new(:name => "Mini", :age => 0)
|
|
193
|
+
user.save
|
|
194
|
+
|
|
195
|
+
user.cars # => #<NanoStore::Bag:0x7411410>
|
|
196
|
+
````
|
|
197
|
+
|
|
173
198
|
## Performance Tips
|
|
174
199
|
|
|
175
200
|
NanoStore by defaults saves every object to disk one by one. To speed up inserts and edited objects, increase NSFNanoStore's ```saveInterval``` property.
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module NanoStore
|
|
2
|
+
module AssociationClassMethods
|
|
3
|
+
def bag(name)
|
|
4
|
+
define_method(name) do |*args, &block|
|
|
5
|
+
return _bags[name] if _bags[name]
|
|
6
|
+
|
|
7
|
+
bag_key = self.info[name]
|
|
8
|
+
if bag_key.nil?
|
|
9
|
+
bag = Bag.bag
|
|
10
|
+
self.info[name] = bag.key
|
|
11
|
+
else
|
|
12
|
+
bag = self.class.store.bagsWithKeysInArray([bag_key]).first
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
_bags[name] = bag
|
|
16
|
+
|
|
17
|
+
bag
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
define_method((name + "=").to_sym) do |*args, &block|
|
|
21
|
+
bag = self.send(name)
|
|
22
|
+
case args[0]
|
|
23
|
+
when Bag
|
|
24
|
+
bag.clear
|
|
25
|
+
bag += args[0].saved.values
|
|
26
|
+
when Array
|
|
27
|
+
bag.clear
|
|
28
|
+
bag += args[0]
|
|
29
|
+
else
|
|
30
|
+
raise NanoStoreError, "Unexpected type assigned to bags, must be an Array or NanoStore::Bag, now: #{args[0].class}"
|
|
31
|
+
end
|
|
32
|
+
bag
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
module AssociationInstanceMethods
|
|
38
|
+
def _bags
|
|
39
|
+
@_bags ||= {}
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def save
|
|
43
|
+
_bags.values.each do |bag|
|
|
44
|
+
bag.store = self.class.store
|
|
45
|
+
bag.save
|
|
46
|
+
end
|
|
47
|
+
super
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
data/lib/nano_store/bag.rb
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
module NanoStore
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
module BagInstanceMethods
|
|
3
|
+
def self.included(base)
|
|
4
|
+
base.class_eval do
|
|
5
|
+
alias_method :saved, :savedObjects
|
|
6
|
+
alias_method :unsaved, :unsavedObjects
|
|
7
|
+
alias_method :removed, :removedObjects
|
|
8
|
+
alias_method :size, :count
|
|
9
|
+
alias_method :clear, :removeAllObjects
|
|
10
|
+
alias_method :inflate, :inflateBag
|
|
11
|
+
alias_method :deflate, :deflateBag
|
|
12
|
+
end
|
|
13
|
+
end
|
|
7
14
|
|
|
8
15
|
def originalClassString
|
|
9
16
|
'NSFNanoBag'
|
|
@@ -13,6 +20,10 @@ module NanoStore
|
|
|
13
20
|
self.hasUnsavedChanges
|
|
14
21
|
end
|
|
15
22
|
|
|
23
|
+
def to_a
|
|
24
|
+
self.savedObjects.values + self.unsavedObjects.values
|
|
25
|
+
end
|
|
26
|
+
|
|
16
27
|
## Adding and Removing Objects
|
|
17
28
|
|
|
18
29
|
# Add an object to bag
|
|
@@ -24,9 +35,6 @@ module NanoStore
|
|
|
24
35
|
self
|
|
25
36
|
end
|
|
26
37
|
|
|
27
|
-
# Clear the bag - remove all objects
|
|
28
|
-
alias_method :clear, :removeAllObjects
|
|
29
|
-
|
|
30
38
|
# Add an object or array of objects to bag
|
|
31
39
|
# Return the bag
|
|
32
40
|
def +(object_or_array)
|
|
@@ -58,7 +66,7 @@ module NanoStore
|
|
|
58
66
|
self
|
|
59
67
|
end
|
|
60
68
|
|
|
61
|
-
#
|
|
69
|
+
# Remove an object or array of objects from bag
|
|
62
70
|
# Return the bag
|
|
63
71
|
def -(object_or_array)
|
|
64
72
|
error_ptr = Pointer.new(:id)
|
|
@@ -72,8 +80,13 @@ module NanoStore
|
|
|
72
80
|
end
|
|
73
81
|
|
|
74
82
|
## Saving, Reloading and Undoing
|
|
75
|
-
|
|
83
|
+
|
|
84
|
+
def store=(store)
|
|
85
|
+
store.addObject(self, error:nil)
|
|
86
|
+
end
|
|
87
|
+
|
|
76
88
|
def save
|
|
89
|
+
self.store = NanoStore.shared_store unless self.store
|
|
77
90
|
error_ptr = Pointer.new(:id)
|
|
78
91
|
result = self.saveAndReturnError(error_ptr)
|
|
79
92
|
raise NanoStoreError, error_ptr[0].description if error_ptr[0]
|
|
@@ -93,10 +106,11 @@ module NanoStore
|
|
|
93
106
|
raise NanoStoreError, error_ptr[0].description if error_ptr[0]
|
|
94
107
|
result
|
|
95
108
|
end
|
|
96
|
-
|
|
97
|
-
## Inflating and Deflating
|
|
98
|
-
|
|
99
|
-
alias_method :inflate, :inflateBag
|
|
100
|
-
alias_method :deflate, :deflateBag
|
|
101
109
|
end
|
|
110
|
+
|
|
111
|
+
Bag = ::NSFNanoBag
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
class NSFNanoBag
|
|
115
|
+
include NanoStore::BagInstanceMethods
|
|
102
116
|
end
|
data/lib/nano_store/model.rb
CHANGED
|
@@ -39,7 +39,7 @@ module NanoStore
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def attribute(name)
|
|
42
|
-
|
|
42
|
+
attributes << name
|
|
43
43
|
|
|
44
44
|
define_method(name) do |*args, &block|
|
|
45
45
|
self.info[name]
|
|
@@ -55,7 +55,7 @@ module NanoStore
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def attributes
|
|
58
|
-
@attributes
|
|
58
|
+
@attributes ||= []
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def store
|
|
@@ -77,16 +77,15 @@ module NanoStore
|
|
|
77
77
|
keys = find_keys(*args)
|
|
78
78
|
self.store.delete_keys(keys)
|
|
79
79
|
end
|
|
80
|
-
|
|
81
|
-
def inherited(subclass)
|
|
82
|
-
subclass.instance_variable_set(:@attributes, [])
|
|
83
|
-
subclass.instance_variable_set(:@store, nil)
|
|
84
|
-
end
|
|
85
80
|
end
|
|
86
81
|
|
|
87
82
|
class Model < NSFNanoObject
|
|
88
83
|
include ModelInstanceMethods
|
|
89
84
|
extend ModelClassMethods
|
|
90
85
|
extend ::NanoStore::FinderMethods
|
|
86
|
+
|
|
87
|
+
include AssociationInstanceMethods
|
|
88
|
+
extend AssociationClassMethods
|
|
91
89
|
end
|
|
90
|
+
|
|
92
91
|
end
|
data/lib/nano_store/version.rb
CHANGED
data/nano-store.gemspec
CHANGED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
describe "Associations" do
|
|
2
|
+
class Todo < NanoStore::Model
|
|
3
|
+
attribute :title
|
|
4
|
+
bag :items
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class TodoItem < NanoStore::Model
|
|
8
|
+
attribute :completed
|
|
9
|
+
attribute :text
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
before do
|
|
13
|
+
NanoStore.shared_store = NanoStore.store
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
after do
|
|
17
|
+
NanoStore.shared_store = nil
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe "#bag" do
|
|
21
|
+
it "adds a reader to the class" do
|
|
22
|
+
todo = Todo.create(:title => "Today Tasks")
|
|
23
|
+
todo.items.is_a?(NanoStore::Bag).should == true
|
|
24
|
+
todo.items.size.should == 0
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "adds a writer to the class that can take an array" do
|
|
28
|
+
todo = Todo.create(:title => "Today Tasks")
|
|
29
|
+
todo.items = [TodoItem.new(:text => "Hi"), TodoItem.new(:text => "Foo"), TodoItem.new(:text => "Bar")]
|
|
30
|
+
todo.items.is_a?(NanoStore::Bag).should == true
|
|
31
|
+
todo.items.size.should == 3
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "adds a writer to the class that can take a Bag" do
|
|
35
|
+
todo = Todo.create(:title => "Today Tasks")
|
|
36
|
+
todo.items = NanoStore::Bag.bag
|
|
37
|
+
todo.items.is_a?(NanoStore::Bag).should == true
|
|
38
|
+
todo.items.size.should == 0
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe "#save" do
|
|
43
|
+
it "save a model also save associated fields" do
|
|
44
|
+
todo = Todo.create(:title => "Today Tasks")
|
|
45
|
+
todo.items = [TodoItem.new(:text => "Hi"), TodoItem.new(:text => "Foo"), TodoItem.new(:text => "Bar")]
|
|
46
|
+
todo.items.is_a?(NanoStore::Bag).should == true
|
|
47
|
+
todo.save
|
|
48
|
+
|
|
49
|
+
todo2 = Todo.find(:title => "Today Tasks").first
|
|
50
|
+
todo2.should.not.be.nil
|
|
51
|
+
todo2.items.is_a?(NSFNanoBag).should == true
|
|
52
|
+
todo2.items.key.should == todo.items.key
|
|
53
|
+
todo2.items.size.should == 3
|
|
54
|
+
todo2.items.to_a.each do |item|
|
|
55
|
+
item.is_a?(TodoItem).should.be.true
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
data/spec/bag_spec.rb
CHANGED
|
@@ -16,7 +16,6 @@ describe NanoStore::Bag do
|
|
|
16
16
|
|
|
17
17
|
it "should add objects to bag" do
|
|
18
18
|
bag = Bag.bag
|
|
19
|
-
NanoStore.shared_store.addObject(bag, error:nil)
|
|
20
19
|
|
|
21
20
|
# use << method to add object to bag
|
|
22
21
|
page = Page.new
|
|
@@ -41,7 +40,6 @@ describe NanoStore::Bag do
|
|
|
41
40
|
|
|
42
41
|
it "should delete object from bag" do
|
|
43
42
|
bag = Bag.bag
|
|
44
|
-
NanoStore.shared_store.addObject(bag, error:nil)
|
|
45
43
|
|
|
46
44
|
# use << method to add object to bag
|
|
47
45
|
page = Page.new
|
|
@@ -67,7 +65,6 @@ describe NanoStore::Bag do
|
|
|
67
65
|
before_count = NanoStore.shared_store.bags.count
|
|
68
66
|
|
|
69
67
|
bag = Bag.bag
|
|
70
|
-
NanoStore.shared_store.addObject(bag, error:nil)
|
|
71
68
|
|
|
72
69
|
# use << method to add object to bag
|
|
73
70
|
page = Page.new
|
|
@@ -78,4 +75,19 @@ describe NanoStore::Bag do
|
|
|
78
75
|
bag.save
|
|
79
76
|
NanoStore.shared_store.bags.count.should.be == before_count + 1
|
|
80
77
|
end
|
|
78
|
+
|
|
79
|
+
describe "#to_a" do
|
|
80
|
+
it "convert a bag to array" do
|
|
81
|
+
bag = Bag.bag
|
|
82
|
+
bag << Page.new(:text => "1", :index => 1)
|
|
83
|
+
bag << Page.new(:text => "2", :index => 2)
|
|
84
|
+
|
|
85
|
+
bag.to_a.is_a?(Array).should.be.true
|
|
86
|
+
bag.to_a.size.should == 2
|
|
87
|
+
bag.to_a[0].text.should == "1"
|
|
88
|
+
bag.to_a[1].text.should == "2"
|
|
89
|
+
bag.save
|
|
90
|
+
bag.to_a.size.should == 2
|
|
91
|
+
end
|
|
92
|
+
end
|
|
81
93
|
end
|
data/spec/model_spec.rb
CHANGED
|
@@ -10,6 +10,10 @@ describe NanoStore::Model do
|
|
|
10
10
|
attribute :name
|
|
11
11
|
attribute :age
|
|
12
12
|
end
|
|
13
|
+
|
|
14
|
+
class Listing < NanoStore::Model
|
|
15
|
+
attribute :name
|
|
16
|
+
end
|
|
13
17
|
|
|
14
18
|
def stub_user(name, age, created_at)
|
|
15
19
|
user = User.new
|
|
@@ -115,5 +119,15 @@ describe NanoStore::Model do
|
|
|
115
119
|
Plane.count.should == 1
|
|
116
120
|
end
|
|
117
121
|
|
|
122
|
+
# see github issue #15
|
|
123
|
+
# https://github.com/siuying/NanoStoreInMotion/issues/15
|
|
124
|
+
it "should handle some class name with conflicts" do
|
|
125
|
+
listing = Listing.new
|
|
126
|
+
listing.name = "A"
|
|
127
|
+
listing.save
|
|
128
|
+
|
|
129
|
+
Listing.count.should == 1
|
|
130
|
+
Listing.all.size.should == 1
|
|
131
|
+
end
|
|
118
132
|
|
|
119
133
|
end
|
data/spec/nano_store_spec.rb
CHANGED
|
@@ -3,6 +3,10 @@ describe NanoStore do
|
|
|
3
3
|
attribute :name
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
+
def documents_path
|
|
7
|
+
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0]
|
|
8
|
+
end
|
|
9
|
+
|
|
6
10
|
it "create :memory store" do
|
|
7
11
|
store = NanoStore.store
|
|
8
12
|
store.filePath.should == ":memory:"
|
|
@@ -12,11 +16,11 @@ describe NanoStore do
|
|
|
12
16
|
end
|
|
13
17
|
|
|
14
18
|
it "create :persistent store" do
|
|
15
|
-
path =
|
|
19
|
+
path = documents_path + "/nano.db"
|
|
16
20
|
store = NanoStore.store :persistent, path
|
|
17
21
|
store.filePath.should == path
|
|
18
22
|
|
|
19
|
-
path =
|
|
23
|
+
path = documents_path + "/nano.db"
|
|
20
24
|
store = NanoStore.store :file, path
|
|
21
25
|
store.filePath.should == path
|
|
22
26
|
end
|
data/vendor/Podfile.lock
CHANGED
|
@@ -11,6 +11,10 @@ install_resource()
|
|
|
11
11
|
echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
|
|
12
12
|
ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
|
|
13
13
|
;;
|
|
14
|
+
*.framework)
|
|
15
|
+
echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
|
16
|
+
rsync -rp "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
|
17
|
+
;;
|
|
14
18
|
*)
|
|
15
19
|
echo "cp -R ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
|
16
20
|
cp -R "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
data/vendor/Pods/Pods.xcconfig
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
PODS_ROOT = ${SRCROOT}/Pods
|
|
2
|
-
PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS}
|
|
3
1
|
ALWAYS_SEARCH_USER_PATHS = YES
|
|
4
2
|
OTHER_LDFLAGS = -ObjC -lsqlite3
|
|
5
3
|
HEADER_SEARCH_PATHS = ${PODS_HEADERS_SEARCH_PATHS}
|
|
4
|
+
PODS_ROOT = ${SRCROOT}/Pods
|
|
6
5
|
PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/NanoStore"
|
|
7
|
-
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/NanoStore"
|
|
6
|
+
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/NanoStore"
|
|
7
|
+
PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nano-store
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,24 +9,8 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-12-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
|
-
- !ruby/object:Gem::Dependency
|
|
15
|
-
name: bubble-wrap
|
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
|
-
requirements:
|
|
19
|
-
- - ~>
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: 1.1.4
|
|
22
|
-
type: :runtime
|
|
23
|
-
prerelease: false
|
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- - ~>
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: 1.1.4
|
|
30
14
|
- !ruby/object:Gem::Dependency
|
|
31
15
|
name: motion-cocoapods
|
|
32
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,6 +54,7 @@ files:
|
|
|
70
54
|
- .gitignore
|
|
71
55
|
- .gitmodules
|
|
72
56
|
- .rvmrc
|
|
57
|
+
- CHANGELOG
|
|
73
58
|
- Gemfile
|
|
74
59
|
- LICENSE
|
|
75
60
|
- README.md
|
|
@@ -77,6 +62,7 @@ files:
|
|
|
77
62
|
- app/app_delegate.rb
|
|
78
63
|
- lib/nano-store.rb
|
|
79
64
|
- lib/nano_store.rb
|
|
65
|
+
- lib/nano_store/association.rb
|
|
80
66
|
- lib/nano_store/bag.rb
|
|
81
67
|
- lib/nano_store/finder.rb
|
|
82
68
|
- lib/nano_store/model.rb
|
|
@@ -85,6 +71,7 @@ files:
|
|
|
85
71
|
- lib/nano_store/version.rb
|
|
86
72
|
- nano-store.gemspec
|
|
87
73
|
- resources/.gitignore
|
|
74
|
+
- spec/association_spec.rb
|
|
88
75
|
- spec/bag_spec.rb
|
|
89
76
|
- spec/finder_spec.rb
|
|
90
77
|
- spec/model_spec.rb
|
|
@@ -188,12 +175,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
188
175
|
- - ! '>='
|
|
189
176
|
- !ruby/object:Gem::Version
|
|
190
177
|
version: '0'
|
|
178
|
+
segments:
|
|
179
|
+
- 0
|
|
180
|
+
hash: 1759206666722295826
|
|
191
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
182
|
none: false
|
|
193
183
|
requirements:
|
|
194
184
|
- - ! '>='
|
|
195
185
|
- !ruby/object:Gem::Version
|
|
196
186
|
version: '0'
|
|
187
|
+
segments:
|
|
188
|
+
- 0
|
|
189
|
+
hash: 1759206666722295826
|
|
197
190
|
requirements: []
|
|
198
191
|
rubyforge_project:
|
|
199
192
|
rubygems_version: 1.8.24
|
|
@@ -202,6 +195,7 @@ specification_version: 3
|
|
|
202
195
|
summary: Wrapper for NanoStore, a lightweight schema-less key-value document database
|
|
203
196
|
based on sqlite, for RubyMotion.
|
|
204
197
|
test_files:
|
|
198
|
+
- spec/association_spec.rb
|
|
205
199
|
- spec/bag_spec.rb
|
|
206
200
|
- spec/finder_spec.rb
|
|
207
201
|
- spec/model_spec.rb
|