Skip to content

Commit 6e9208e

Browse files
committed
added decodingstrategy parameter
1 parent 7364175 commit 6e9208e

4 files changed

Lines changed: 19 additions & 7 deletions

File tree

‎Source/Codable/Codable.swift‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,17 @@ public extension Decodable {
105105
- parameter data: The json data
106106
- parameter keyPath: for if you want something else than the root object
107107
*/
108-
init(data: Data, keyPath: String? = nil) throws {
108+
init(data: Data, keyPath: String? = nil, codingStragegy: JSONDecoder.KeyDecodingStrategy = .convertFromSnakeCase) throws {
109+
let decoder = JSONDecoder()
110+
decoder.keyDecodingStrategy = .convertFromSnakeCase
109111
if let keyPath = keyPath {
110112
let topLevel = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers)
111113
guard let nestedJson = (topLevel as AnyObject).value(forKeyPath: keyPath) else { throw CodingError.RuntimeError("Cannot decode data to object") }
112114
let nestedData = try JSONSerialization.data(withJSONObject: nestedJson)
113-
self = try JSONDecoder().decode(Self.self, from: nestedData)
115+
self = try decoder.decode(Self.self, from: nestedData)
114116
return
115117
}
116-
self = try JSONDecoder().decode(Self.self, from: data)
118+
self = try decoder.decode(Self.self, from: data)
117119
}
118120

119121
/**

‎Stuff.podspec‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "Stuff"
3-
s.version = "0.6.0"
3+
s.version = "0.6.1"
44
s.summary = "Too small for a library, too important to just forget"
55

66
s.description = <<-EOS

‎Stuff.xcodeproj/project.pbxproj‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
isa = PBXProject;
108108
attributes = {
109109
LastSwiftUpdateCheck = 0820;
110-
LastUpgradeCheck = 0900;
110+
LastUpgradeCheck = 0930;
111111
ORGANIZATIONNAME = evict;
112112
TargetAttributes = {
113113
7F29F3761E4E05070048B915 = {
@@ -222,13 +222,15 @@
222222
CLANG_WARN_BOOL_CONVERSION = YES;
223223
CLANG_WARN_COMMA = YES;
224224
CLANG_WARN_CONSTANT_CONVERSION = YES;
225+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
225226
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
226227
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
227228
CLANG_WARN_EMPTY_BODY = YES;
228229
CLANG_WARN_ENUM_CONVERSION = YES;
229230
CLANG_WARN_INFINITE_RECURSION = YES;
230231
CLANG_WARN_INT_CONVERSION = YES;
231232
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
233+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
232234
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
233235
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
234236
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -278,13 +280,15 @@
278280
CLANG_WARN_BOOL_CONVERSION = YES;
279281
CLANG_WARN_COMMA = YES;
280282
CLANG_WARN_CONSTANT_CONVERSION = YES;
283+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
281284
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
282285
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
283286
CLANG_WARN_EMPTY_BODY = YES;
284287
CLANG_WARN_ENUM_CONVERSION = YES;
285288
CLANG_WARN_INFINITE_RECURSION = YES;
286289
CLANG_WARN_INT_CONVERSION = YES;
287290
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
291+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
288292
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
289293
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
290294
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -323,7 +327,6 @@
323327
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
324328
PRODUCT_BUNDLE_IDENTIFIER = nl.evict.StuffTests;
325329
PRODUCT_NAME = "$(TARGET_NAME)";
326-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
327330
SWIFT_VERSION = 4.0;
328331
};
329332
name = Debug;
@@ -337,7 +340,6 @@
337340
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
338341
PRODUCT_BUNDLE_IDENTIFIER = nl.evict.StuffTests;
339342
PRODUCT_NAME = "$(TARGET_NAME)";
340-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
341343
SWIFT_VERSION = 4.0;
342344
};
343345
name = Release;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

0 commit comments

Comments
 (0)