@@ -191,126 +191,3 @@ public class Goal: NSManagedObject {
191191 lastModifiedLocal = Date ( )
192192 }
193193}
194-
195- @objc ( DueByTableValueTransformer)
196- public class DueByTableValueTransformer : ValueTransformer {
197- public override class func transformedValueClass( ) -> AnyClass {
198- return NSData . self
199- }
200-
201- public override func transformedValue( _ value: Any ? ) -> Any ? {
202- guard let dueByTable = value as? DueByTable else { return nil }
203- do {
204- return try JSONEncoder ( ) . encode ( dueByTable)
205- } catch {
206- print ( " Error encoding due by table: \( error) " )
207- }
208- return nil
209- }
210-
211- public override func reverseTransformedValue( _ value: Any ? ) -> Any ? {
212- guard let data = ( value as? Data ) else { return nil }
213- do {
214- return try JSONDecoder ( ) . decode ( DueByTable . self, from: data)
215- } catch {
216- print ( " Error decoding dictionary: \( error) " )
217- return nil
218- }
219- }
220-
221- public static var name : NSValueTransformerName {
222- . init( rawValue: String ( describing: DueByTableValueTransformer . self) )
223- }
224-
225- public static func register( ) {
226- ValueTransformer . setValueTransformer ( DueByTableValueTransformer ( ) ,
227- forName: DueByTableValueTransformer . name)
228- }
229- }
230-
231- @objc ( DueByTable)
232- public class DueByTable : NSObject , NSSecureCoding , Codable {
233- public private( set) var entries : [ String : BeeminderDueByEntry ]
234-
235- private enum Key : String {
236- case entries
237- }
238-
239- public init ( entries: [ String : BeeminderDueByEntry ] ) {
240- self . entries = entries
241- }
242-
243- public static var supportsSecureCoding : Bool { true }
244-
245- public func encode( with coder: NSCoder ) {
246- coder. encode ( entries, forKey: Key . entries. rawValue)
247- }
248-
249- public required convenience init ? ( coder: NSCoder ) {
250- let entries = coder. decodeObject ( forKey: Key . entries. rawValue) as? [ String : BeeminderDueByEntry ] ?? [ : ]
251-
252- self . init ( entries: entries)
253- }
254-
255- convenience init ( dueByJson: JSON ? ) {
256- var entries : [ String : BeeminderDueByEntry ] {
257- dueByJson? . dictionary? . compactMapValues ( BeeminderDueByEntry . init)
258- ?? dueByJson? . dictionary? . mapValues ( BeeminderDueByEntry . init)
259- ?? [ : ]
260- }
261- self . init ( entries: entries)
262- }
263- }
264-
265- public class BeeminderDueByEntry : NSObject , NSSecureCoding , Codable {
266- public let total : Double
267- public let delta : Double
268- public let formatted_total_for_beedroid : String
269- public let formatted_delta_for_beedroid : String
270-
271- public init ( json: JSON ) {
272- self . delta = json [ " delta " ] . doubleValue
273- self . total = json [ " total " ] . doubleValue
274-
275- self . formatted_delta_for_beedroid = json [ " formatted_delta_for_beedroid " ] . stringValue
276- self . formatted_total_for_beedroid = json [ " formatted_total_for_beedroid " ] . stringValue
277- }
278-
279- init ( total: Double , delta: Double , formatted_total_for_beedroid: String , formatted_delta_for_beedroid: String ) {
280- self . total = total
281- self . delta = delta
282- self . formatted_total_for_beedroid = formatted_total_for_beedroid
283- self . formatted_delta_for_beedroid = formatted_delta_for_beedroid
284- }
285-
286- public static var supportsSecureCoding : Bool { true }
287-
288- private enum Key : String {
289- case total
290- case delta
291- case formattedTotalForBeedroid
292- case formattedDeltaForBeedroid
293- }
294-
295- public func encode( with coder: NSCoder ) {
296- coder. encode ( total, forKey: Key . total. rawValue)
297- coder. encode ( delta, forKey: Key . delta. rawValue)
298- coder. encode ( formatted_total_for_beedroid, forKey: Key . formattedTotalForBeedroid. rawValue)
299- coder. encode ( formatted_delta_for_beedroid, forKey: Key . formattedDeltaForBeedroid. rawValue)
300- }
301-
302- public required convenience init ? ( coder: NSCoder ) {
303- let total = coder. decodeDouble ( forKey: Key . total. rawValue)
304- let delta = coder. decodeDouble ( forKey: Key . delta. rawValue)
305-
306- guard
307- let formatted_total_for_beedroid = coder. decodeObject ( of: NSString . self, forKey: Key . formattedTotalForBeedroid. rawValue) as? String ,
308- let formatted_delta_for_beedroid = coder. decodeObject ( of: NSString . self, forKey: Key . formattedDeltaForBeedroid. rawValue) as? String
309- else { return nil }
310-
311- self . init ( total: total,
312- delta: delta,
313- formatted_total_for_beedroid: formatted_total_for_beedroid,
314- formatted_delta_for_beedroid: formatted_delta_for_beedroid)
315- }
316- }
0 commit comments