Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into add-nullable-from…
Browse files Browse the repository at this point in the history
…-json
  • Loading branch information
Fabio Teles committed Mar 23, 2016
2 parents fac3538 + 9e0122e commit 70720a7
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 17 deletions.
13 changes: 7 additions & 6 deletions .travis.yml
@@ -1,5 +1,5 @@
language: objective-c
osx_image: xcode7.2
osx_image: xcode7.3

env:
global:
Expand All @@ -10,10 +10,10 @@ env:
- OSX_FRAMEWORK_SCHEME="ObjectMapper-Mac"
- TVOS_FRAMEWORK_SCHEME="ObjectMapper-tvOS"
- WATCHOS_FRAMEWORK_SCHEME="ObjectMapper-watchOS"
- IOS_SDK=iphonesimulator9.2
- IOS_SDK=iphonesimulator9.3
- OSX_SDK=macosx10.11
- TVOS_SDK=appletvsimulator9.1
- WATCHOS_SDK=watchsimulator2.1
- TVOS_SDK=appletvsimulator9.2
- WATCHOS_SDK=watchsimulator2.2
matrix:
- DESTINATION="OS=8.1,name=iPhone 4S" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=8.2,name=iPhone 5" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
Expand All @@ -22,9 +22,10 @@ env:
- DESTINATION="OS=9.0,name=iPhone 6 Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=9.1,name=iPhone 6S" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=9.2,name=iPhone 6S Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=9.3,name=iPhone 6S Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" SDK="$IOS_SDK" RUN_TESTS="YES"
- DESTINATION="arch=x86_64" SCHEME="$OSX_FRAMEWORK_SCHEME" SDK="$OSX_SDK" RUN_TESTS="YES"
- DESTINATION="OS=9.1,name=Apple TV 1080p" SCHEME="$TVOS_FRAMEWORK_SCHEME" SDK="$TVOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=2.1,name=Apple Watch - 38mm" SCHEME="$WATCHOS_FRAMEWORK_SCHEME" SDK="$WATCHOS_SDK" RUN_TESTS="NO"
- DESTINATION="OS=9.2,name=Apple TV 1080p" SCHEME="$TVOS_FRAMEWORK_SCHEME" SDK="$TVOS_SDK" RUN_TESTS="YES"
- DESTINATION="OS=2.2,name=Apple Watch - 38mm" SCHEME="$WATCHOS_FRAMEWORK_SCHEME" SDK="$WATCHOS_SDK" RUN_TESTS="NO"

before_install:
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet
Expand Down
2 changes: 1 addition & 1 deletion ObjectMapper/Core/Map.swift
Expand Up @@ -94,7 +94,7 @@ public final class Map {
return value
} else {
// Collects failed count
failedCount++
failedCount += 1

// Returns dummy memory as a proxy for type `T`
let pointer = UnsafeMutablePointer<T>.alloc(0)
Expand Down
19 changes: 11 additions & 8 deletions ObjectMapper/Core/Mapper.swift
Expand Up @@ -59,10 +59,11 @@ public final class Mapper<N: Mappable> {

/// Maps a JSON dictionary to an existing object that conforms to Mappable.
/// Usefull for those pesky objects that have crappy designated initializers like NSManagedObject
public func map(JSONDictionary: [String : AnyObject], var toObject object: N) -> N {
public func map(JSONDictionary: [String : AnyObject], toObject object: N) -> N {
var mutableObject = object
let map = Map(mappingType: .FromJSON, JSONDictionary: JSONDictionary, toObject: true)
object.mapping(map)
return object
mutableObject.mapping(map)
return mutableObject
}

//MARK: Mapping functions that create an object
Expand Down Expand Up @@ -198,16 +199,17 @@ public final class Mapper<N: Mappable> {
}

/// Maps a JSON dictionary of dictionaries to an existing dictionary of Mappble objects
public func mapDictionary(JSONDictionary: [String : [String : AnyObject]], var toDictionary dictionary: [String : N]) -> [String : N] {
public func mapDictionary(JSONDictionary: [String : [String : AnyObject]], toDictionary dictionary: [String : N]) -> [String : N] {
var mutableDictionary = dictionary
for (key, value) in JSONDictionary {
if let object = dictionary[key] {
Mapper().map(value, toObject: object)
} else {
dictionary[key] = Mapper().map(value)
mutableDictionary[key] = Mapper().map(value)
}
}

return dictionary
return mutableDictionary
}

/// Maps a JSON object to a dictionary of arrays of Mappable objects
Expand Down Expand Up @@ -291,9 +293,10 @@ extension Mapper {
// MARK: Functions that create JSON from objects

///Maps an object that conforms to Mappable to a JSON dictionary <String : AnyObject>
public func toJSON(var object: N) -> [String : AnyObject] {
public func toJSON( object: N) -> [String : AnyObject] {
var mutableObject = object
let map = Map(mappingType: .ToJSON, JSONDictionary: [:])
object.mapping(map)
mutableObject.mapping(map)
return map.JSONDictionary
}

Expand Down
4 changes: 2 additions & 2 deletions ObjectMapper/Transforms/TransformType.swift
Expand Up @@ -27,8 +27,8 @@
// THE SOFTWARE.

public protocol TransformType {
typealias Object
typealias JSON
associatedtype Object
associatedtype JSON

func transformFromJSON(value: AnyObject?) -> Object?
func transformToJSON(value: Object?) -> JSON?
Expand Down

0 comments on commit 70720a7

Please sign in to comment.