cdq 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ca83058a084e81380741e9f398d491ded74fb38
4
- data.tar.gz: 7a3da15d054b1de39f696cca1357d66b2586a47c
3
+ metadata.gz: 40687c7bb978a42e8018636e181599a5bad96e54
4
+ data.tar.gz: 1efc9104e3ecb1aa442c749746e7f492d9c09241
5
5
  SHA512:
6
- metadata.gz: 25e10d54dede83dcc44ead98586d04260a8618cb41aff696e5c2290091adf0838a70c8d84fa6a9f802fd56c376205b5003c8137d8288dfb3c8caa65a52078fa0
7
- data.tar.gz: 88dd18915e1222995a1b6334bbe72e51f182274ae327ec04d646038bd2d1b93a8c9a41da47c40d1866e0db971d36b818567a72065fb8fd620cb488a3e9808e98
6
+ metadata.gz: 12e4ea59094e3ab367ba9825ff4af63b269276446c5efd285d943d0fd73b8fce45853b3dada60a86b59587fa2c8878b19e50d7caae051594377b0b6c9449c1dd
7
+ data.tar.gz: aa8b8f842e72d1ba36b05dcc25d25109403e84493b123c1a6e56152ce1d48a1b15ebee686664f07a393dd919211563100f7c54d91731aa52ff9a2565eb2d4f37
data/README.md CHANGED
@@ -153,6 +153,25 @@ operations on objects use the topmost context. You just call `cdq.save`
153
153
  and it saves the whole stack. Or you can get a list of all the contexts in
154
154
  order with `cdq.contexts.all` and do more precise work.
155
155
 
156
+ To access the `cdq` object from a class method inside a class that is not a `CDQManagedObject`
157
+ subclass, make sure to include the `CDQ` module in your class like this:
158
+
159
+ ```ruby
160
+ class MyClass
161
+ class << self
162
+ include CDQ
163
+
164
+ def my_class_method
165
+ # Do something
166
+ cdq.save
167
+ end
168
+ end
169
+ end
170
+
171
+ # Elsewhere
172
+ MyClass.my_class_method
173
+ ```
174
+
156
175
  Settings things up the way you want is easy. Here's how you'd set it up for asynchronous
157
176
  saves:
158
177
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  module CDQ
3
- VERSION = '1.0.3'
3
+ VERSION = '1.0.4'
4
4
  end
@@ -95,6 +95,9 @@ module CDQ
95
95
  end
96
96
  end
97
97
 
98
+ def self.default_config=(config_obj)
99
+ @default = config_obj
100
+ end
98
101
 
99
102
  private
100
103
 
@@ -24,7 +24,26 @@ module CDQ
24
24
  @@store_manager = nil
25
25
  end
26
26
 
27
+ # Save any data and close down the contexts and store manager.
28
+ # You should be able create a new CDQConfig object and run setup
29
+ # again to attach to a different database. However, you need to be sure
30
+ # that all activity is finished, and that any exisitng model instances
31
+ # have been deallocated.
32
+ #------------------------------------------------------------------------------
33
+ def close
34
+ save
35
+ @@context_manager.reset! if @@context_manager
36
+ @@context_manager = nil
37
+ @@store_manager = nil
38
+ CDQConfig.default_config = nil
39
+ end
40
+
41
+ # You can now pass in a CDQConfig object, which will be used instead of the
42
+ # one loaded from the cdq.yml file. However, the model file is loaded during
43
+ # the loading of the code - so it can only be overridden using the cdq.yml.
44
+ #------------------------------------------------------------------------------
27
45
  def setup(opts = {})
46
+ CDQConfig.default_config = opts[:config] || nil
28
47
  if opts[:context]
29
48
  contexts.push(opts[:context])
30
49
  return true
@@ -72,6 +72,7 @@ module CDQ #:nodoc:
72
72
  # Causes execution.
73
73
  #
74
74
  def last(n = 1)
75
+ return nil if count == 0
75
76
  result = offset(count - n).limit(n).array
76
77
  n == 1 ? result.first : result
77
78
  end
@@ -120,21 +121,21 @@ module CDQ #:nodoc:
120
121
  end
121
122
  end
122
123
 
123
- # Calculates the sum of values on a given column.
124
+ # Calculates the sum of values on a given column.
124
125
  #
125
126
  # Author.sum(:fee) # => 6.0
126
127
  def sum(column_name)
127
128
  calculate(:sum, column_name)
128
129
  end
129
-
130
- # Calculates the average of values on a given column.
130
+
131
+ # Calculates the average of values on a given column.
131
132
  #
132
133
  # Author.average(:fee) # => 2.0
133
134
  def average(column_name)
134
135
  calculate(:average, column_name)
135
136
  end
136
137
 
137
- # Calculates the minimum of values on a given column.
138
+ # Calculates the minimum of values on a given column.
138
139
  #
139
140
  # Author.min(:fee) # => 1.0
140
141
  def min(column_name)
@@ -142,7 +143,7 @@ module CDQ #:nodoc:
142
143
  end
143
144
  alias :minimum :min
144
145
 
145
- # Calculates the maximum of values on a given column.
146
+ # Calculates the maximum of values on a given column.
146
147
  #
147
148
  # Author.max(:fee) # => 3.0
148
149
  def max(column_name)
@@ -155,6 +155,16 @@ class CDQManagedObject < CoreDataQueryManagedObjectBase
155
155
  end
156
156
  end
157
157
 
158
+ # Opt-in support for motion_print
159
+ def motion_print(mp, options)
160
+ if respond_to? :attributes
161
+ "OID: " + mp.colorize(oid.gsub('"',''), options[:force_color]) + "\n" + mp.l_hash(attributes, options)
162
+ else
163
+ # old colorless method, still more informative than nothing
164
+ log
165
+ end
166
+ end
167
+
158
168
  def ordered_set?(name)
159
169
  # isOrdered is returning 0/1 instead of documented BOOL
160
170
  ordered = entity.relationshipsByName[name].isOrdered
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cdq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - infinitered
@@ -9,15 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-20 00:00:00.000000000 Z
12
+ date: 2015-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ruby-xcdm
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '0.0'
21
18
  - - ">="
22
19
  - !ruby/object:Gem::Version
23
20
  version: 0.0.9
@@ -25,9 +22,6 @@ dependencies:
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '0.0'
31
25
  - - ">="
32
26
  - !ruby/object:Gem::Version
33
27
  version: 0.0.9