motion-firebase 1.0.5
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 +17 -0
- data/.travis.yml +2 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +28 -0
- data/README.md +511 -0
- data/Rakefile +11 -0
- data/app/app_delegate.rb +156 -0
- data/lib/firebase/firebase.rb +242 -0
- data/lib/firebase/firebase_auth_client.rb +49 -0
- data/lib/firebase/version.rb +5 -0
- data/lib/motion-firebase-auth.rb +19 -0
- data/lib/motion-firebase-facebook.rb +17 -0
- data/lib/motion-firebase.rb +19 -0
- data/lib/vendor/FacebookSDK.framework/FacebookSDK +0 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBAccessTokenData.h +115 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBCacheDescriptor.h +42 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBError.h +274 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBFrictionlessRecipientCache.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBFriendPickerViewController.h +290 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBGraphLocation.h +77 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBGraphObject.h +224 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBGraphPlace.h +60 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBGraphUser.h +90 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBInsights.h +271 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBLoginView.h +178 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBNativeDialogs.h +170 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBOpenGraphAction.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBPlacePickerViewController.h +257 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBProfilePictureView.h +80 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBRequest.h +504 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBRequestConnection.h +389 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBSession.h +751 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBSessionTokenCachingStrategy.h +152 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBSettings.h +136 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBTestSession.h +135 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBUserSettingsViewController.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBViewController.h +118 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FBWebDialogs.h +234 -0
- data/lib/vendor/FacebookSDK.framework/Headers/FacebookSDK.h +132 -0
- data/lib/vendor/FacebookSDK.framework/Headers/NSError+FBError.h +59 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBDialog/images/close.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBDialog/images/close@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBDialog/images/fbicon.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBFriendPickerView/images/default.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/bluetint.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/f_logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/facebook.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBPlacePickerView/images/fb_generic_place.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_portrait.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_square.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Resources/Info.plist +20 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBAccessTokenData.h +115 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBCacheDescriptor.h +42 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBConnect.h +22 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBDialog.h +165 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBError.h +274 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBFrictionlessRecipientCache.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBFrictionlessRequestSettings.h +85 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBFriendPickerViewController.h +290 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBGraphLocation.h +77 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBGraphObject.h +224 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBGraphPlace.h +60 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBGraphUser.h +90 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBInsights.h +271 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBLoginDialog.h +48 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBLoginView.h +178 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBNativeDialogs.h +170 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBOpenGraphAction.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBPlacePickerViewController.h +257 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBProfilePictureView.h +80 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBRequest.h +504 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBRequestConnection.h +389 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSBJSON.h +75 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSBJsonBase.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSBJsonParser.h +87 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSBJsonWriter.h +129 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSession.h +751 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSessionManualTokenCachingStrategy.h +32 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSessionTokenCachingStrategy.h +152 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBSettings.h +136 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBTestSession.h +135 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBUserSettingsViewController.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBViewController.h +118 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FBWebDialogs.h +234 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/Facebook.h +281 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/FacebookSDK.h +132 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/DeprecatedHeaders/NSError+FBError.h +59 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/FacebookSDK +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBAccessTokenData.h +115 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBCacheDescriptor.h +42 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBError.h +274 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBFrictionlessRecipientCache.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBFriendPickerViewController.h +290 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBGraphLocation.h +77 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBGraphObject.h +224 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBGraphPlace.h +60 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBGraphUser.h +90 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBInsights.h +271 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBLoginView.h +178 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBNativeDialogs.h +170 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBOpenGraphAction.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBPlacePickerViewController.h +257 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBProfilePictureView.h +80 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBRequest.h +504 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBRequestConnection.h +389 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBSession.h +751 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBSessionTokenCachingStrategy.h +152 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBSettings.h +136 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBTestSession.h +135 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBUserSettingsViewController.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBViewController.h +118 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FBWebDialogs.h +234 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/FacebookSDK.h +132 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Headers/NSError+FBError.h +59 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBDialog/images/close.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBDialog/images/close@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBDialog/images/fbicon.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBFriendPickerView/images/default.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/bluetint.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/f_logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/facebook.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBPlacePickerView/images/fb_generic_place.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_portrait.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_square.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/A/Resources/Info.plist +20 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBAccessTokenData.h +115 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBCacheDescriptor.h +42 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBConnect.h +22 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBDialog.h +165 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBError.h +274 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBFrictionlessRecipientCache.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBFrictionlessRequestSettings.h +85 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBFriendPickerViewController.h +290 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBGraphLocation.h +77 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBGraphObject.h +224 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBGraphPlace.h +60 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBGraphUser.h +90 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBInsights.h +271 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBLoginDialog.h +48 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBLoginView.h +178 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBNativeDialogs.h +170 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBOpenGraphAction.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBPlacePickerViewController.h +257 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBProfilePictureView.h +80 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBRequest.h +504 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBRequestConnection.h +389 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSBJSON.h +75 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSBJsonBase.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSBJsonParser.h +87 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSBJsonWriter.h +129 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSession.h +751 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSessionManualTokenCachingStrategy.h +32 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSessionTokenCachingStrategy.h +152 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBSettings.h +136 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBTestSession.h +135 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBUserSettingsViewController.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBViewController.h +118 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FBWebDialogs.h +234 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/Facebook.h +281 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/FacebookSDK.h +132 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/DeprecatedHeaders/NSError+FBError.h +59 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/FacebookSDK +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBAccessTokenData.h +115 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBCacheDescriptor.h +42 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBError.h +274 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBFrictionlessRecipientCache.h +86 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBFriendPickerViewController.h +290 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBGraphLocation.h +77 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBGraphObject.h +224 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBGraphPlace.h +60 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBGraphUser.h +90 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBInsights.h +271 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBLoginView.h +178 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBNativeDialogs.h +170 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBOpenGraphAction.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBPlacePickerViewController.h +257 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBProfilePictureView.h +80 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBRequest.h +504 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBRequestConnection.h +389 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBSession.h +751 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBSessionTokenCachingStrategy.h +152 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBSettings.h +136 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBTestSession.h +135 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBUserSettingsViewController.h +127 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBViewController.h +118 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FBWebDialogs.h +234 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/FacebookSDK.h +132 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Headers/NSError+FBError.h +59 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/facebook-logo@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadLandscape@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPadPortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/loginBackgroundIPhonePortrait@2x.jpg +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/silver-button-normal@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FBUserSettingsViewResources.bundle/images/silver-button-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/Contents/Resources/en.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/Contents/Resources/he.lproj/Localizable.strings +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBDialog/images/close.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBDialog/images/close@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBDialog/images/fbicon.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBFriendPickerView/images/default.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/bluetint.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/f_logo.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/facebook.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small-pressed@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBLoginView/images/login-button-small@2x.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBPlacePickerView/images/fb_generic_place.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_portrait.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/FacebookSDKResources.bundle/FBProfilePictureView/images/fb_blank_profile_square.png +0 -0
- data/lib/vendor/FacebookSDK.framework/Versions/Current/Resources/Info.plist +20 -0
- data/lib/vendor/Firebase.framework/Firebase +0 -0
- data/lib/vendor/Firebase.framework/Headers/FDataSnapshot.h +146 -0
- data/lib/vendor/Firebase.framework/Headers/FEventType.h +43 -0
- data/lib/vendor/Firebase.framework/Headers/FMutableData.h +134 -0
- data/lib/vendor/Firebase.framework/Headers/FQuery.h +229 -0
- data/lib/vendor/Firebase.framework/Headers/FTransactionResult.h +50 -0
- data/lib/vendor/Firebase.framework/Headers/Firebase.h +629 -0
- data/lib/vendor/Firebase.framework/Versions/A/Firebase +0 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/FDataSnapshot.h +146 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/FEventType.h +43 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/FMutableData.h +134 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/FQuery.h +229 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/FTransactionResult.h +50 -0
- data/lib/vendor/Firebase.framework/Versions/A/Headers/Firebase.h +629 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Firebase +0 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/FDataSnapshot.h +146 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/FEventType.h +43 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/FMutableData.h +134 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/FQuery.h +229 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/FTransactionResult.h +50 -0
- data/lib/vendor/Firebase.framework/Versions/Current/Headers/Firebase.h +629 -0
- data/lib/vendor/FirebaseAuthClient.framework/FirebaseAuthClient +0 -0
- data/lib/vendor/FirebaseAuthClient.framework/Headers/FATypes.h +48 -0
- data/lib/vendor/FirebaseAuthClient.framework/Headers/FAUser.h +85 -0
- data/lib/vendor/FirebaseAuthClient.framework/Headers/FirebaseAuthClient.h +149 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/A/FirebaseAuthClient +0 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/A/Headers/FATypes.h +48 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/A/Headers/FAUser.h +85 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/A/Headers/FirebaseAuthClient.h +149 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/Current/FirebaseAuthClient +0 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/Current/Headers/FATypes.h +48 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/Current/Headers/FAUser.h +85 -0
- data/lib/vendor/FirebaseAuthClient.framework/Versions/Current/Headers/FirebaseAuthClient.h +149 -0
- data/motion-firebase.gemspec +23 -0
- data/resources/Default-568h@2x.png +0 -0
- metadata +357 -0
data/app/app_delegate.rb
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
class AppDelegate
|
|
2
|
+
def application(application, didFinishLaunchingWithOptions:launchOptions)
|
|
3
|
+
true
|
|
4
|
+
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
|
5
|
+
ctlr = MyController.new
|
|
6
|
+
first = UINavigationController.alloc.initWithRootViewController(ctlr)
|
|
7
|
+
@window.rootViewController = first
|
|
8
|
+
@window.makeKeyAndVisible
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
FirechatNS = 'https://firechat-ios.firebaseio-demo.com/'
|
|
14
|
+
|
|
15
|
+
class MyController < UIViewController
|
|
16
|
+
|
|
17
|
+
attr_accessor :chat
|
|
18
|
+
attr_accessor :firebase
|
|
19
|
+
|
|
20
|
+
attr_accessor :nameField
|
|
21
|
+
attr_accessor :textField
|
|
22
|
+
attr_accessor :tableView
|
|
23
|
+
|
|
24
|
+
def loadView
|
|
25
|
+
super
|
|
26
|
+
|
|
27
|
+
self.nameField = UIButton.rounded
|
|
28
|
+
self.nameField.frame = [[20, 20], [280, 44]]
|
|
29
|
+
self.nameField.on :touch {
|
|
30
|
+
#
|
|
31
|
+
}
|
|
32
|
+
self.nameField.autoresizingMask = UIViewAutoresizingFlexibleWidth
|
|
33
|
+
self.view << self.nameField
|
|
34
|
+
|
|
35
|
+
self.tableView = UITableView.plain
|
|
36
|
+
self.tableView.frame = [[20, 71], [280, 419]]
|
|
37
|
+
self.tableView.rowHeight = 44
|
|
38
|
+
self.tableView.delegate = self
|
|
39
|
+
self.tableView.dataSource = self
|
|
40
|
+
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
|
|
41
|
+
self.view << self.tableView
|
|
42
|
+
|
|
43
|
+
self.textField = UITextField.alloc.initWithFrame([[20, 464], [280, 30]])
|
|
44
|
+
self.textField.borderStyle = UITextBorderStyleRoundedRect
|
|
45
|
+
self.textField.autoresizingMask = UIViewAutoresizingFlexibleWidth
|
|
46
|
+
self.textField.delegate = self
|
|
47
|
+
self.view << self.textField
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def viewDidLoad
|
|
51
|
+
super
|
|
52
|
+
|
|
53
|
+
# Initialize array that will store chat messages.
|
|
54
|
+
self.chat = []
|
|
55
|
+
|
|
56
|
+
# Initialize the root of our Firebase namespace.
|
|
57
|
+
self.firebase = Firebase.alloc.initWithUrl(FirechatNS)
|
|
58
|
+
|
|
59
|
+
# Pick a random number between 1-1000 for our username.
|
|
60
|
+
self.title = "Guest0x#{(rand * 1000).round.to_s(16).upcase}"
|
|
61
|
+
nameField.setTitle(self.title, forState:UIControlStateNormal)
|
|
62
|
+
|
|
63
|
+
self.firebase.on(:added) { |snapshot|
|
|
64
|
+
# Add the chat message to the array.
|
|
65
|
+
self.chat << snapshot.value
|
|
66
|
+
# Reload the table view so the new message will show up.
|
|
67
|
+
self.tableView.reloadData
|
|
68
|
+
}
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# This method is called when the user enters text in the text field.
|
|
73
|
+
# We add the chat message to our Firebase.
|
|
74
|
+
def textFieldShouldReturn(text_field)
|
|
75
|
+
text_field.resignFirstResponder
|
|
76
|
+
|
|
77
|
+
# This will also add the message to our local array self.chat because
|
|
78
|
+
# the FEventTypeChildAdded event will be immediately fired.
|
|
79
|
+
self.firebase[].setValue({'name' => self.title, 'text' => text_field.text})
|
|
80
|
+
|
|
81
|
+
text_field.text = ''
|
|
82
|
+
false
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def numberOfSectionsInTableView(tableView)
|
|
86
|
+
1
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def tableView(tableView, numberOfRowsInSection:section)
|
|
90
|
+
self.chat.length
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
CellIdentifier = 'Cell'
|
|
94
|
+
def tableView(tableView, cellForRowAtIndexPath:index_path)
|
|
95
|
+
cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier)
|
|
96
|
+
|
|
97
|
+
unless cell
|
|
98
|
+
cell = UITableViewCell.alloc.initWithStyle(UITableViewCellStyleSubtitle, reuseIdentifier:CellIdentifier)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
chatMessage = self.chat[index_path.row]
|
|
102
|
+
|
|
103
|
+
cell.textLabel.text = chatMessage['text']
|
|
104
|
+
cell.detailTextLabel.text = chatMessage['name']
|
|
105
|
+
|
|
106
|
+
return cell
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Subscribe to keyboard show/hide notifications.
|
|
110
|
+
def viewWillAppear(animated)
|
|
111
|
+
super
|
|
112
|
+
UIKeyboardWillShowNotification.add_observer(self, 'keyboardWillShow:')
|
|
113
|
+
UIKeyboardWillHideNotification.add_observer(self, 'keyboardWillHide:')
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Unsubscribe from keyboard show/hide notifications.
|
|
117
|
+
def viewWillDisappear(animated)
|
|
118
|
+
super
|
|
119
|
+
UIKeyboardWillShowNotification.remove_observer(self)
|
|
120
|
+
UIKeyboardWillHideNotification.remove_observer(self)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Setup keyboard handlers to slide the view containing the table view and
|
|
124
|
+
# text field upwards when the keyboard shows, and downwards when it hides.
|
|
125
|
+
def keyboardWillShow(notification)
|
|
126
|
+
self.moveView(notification.userInfo, up:true)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def keyboardWillHide(notification)
|
|
130
|
+
self.moveView(notification.userInfo, up:false)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def moveView(userInfo, up:up)
|
|
134
|
+
keyboardEndFrame = userInfo[UIKeyboardFrameEndUserInfoKey].CGRectValue
|
|
135
|
+
|
|
136
|
+
animationCurve = userInfo[UIKeyboardAnimationCurveUserInfoKey]
|
|
137
|
+
animationDuration = userInfo[UIKeyboardAnimationDurationUserInfoKey]
|
|
138
|
+
|
|
139
|
+
# Get the correct keyboard size to we slide the right amount.
|
|
140
|
+
UIView.animate(duration:animationDuration, options:animationCurve | UIViewAnimationOptionBeginFromCurrentState) {
|
|
141
|
+
keyboardFrame = self.view.convertRect(keyboardEndFrame, toView:nil)
|
|
142
|
+
y = keyboardFrame.size.height * (up ? -1 : 1)
|
|
143
|
+
self.view.frame = CGRectOffset(self.view.frame, 0, y)
|
|
144
|
+
}
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# This method will be called when the user touches on the tableView, at
|
|
148
|
+
# which point we will hide the keyboard (if open). This method is called
|
|
149
|
+
# because UITouchTableView.m calls nextResponder in its touch handler.
|
|
150
|
+
def touchesBegan(touches, withEvent:event)
|
|
151
|
+
if textField.isFirstResponder
|
|
152
|
+
textField.resignFirstResponder
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
class Firebase
|
|
2
|
+
|
|
3
|
+
def self.new(url)
|
|
4
|
+
alloc.initWithUrl(url)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# @example
|
|
8
|
+
# Firebase.dispatch_queue(queue)
|
|
9
|
+
# # => Firebase.setDispatchQueue(queue)
|
|
10
|
+
def self.dispatch_queue=(queue)
|
|
11
|
+
setDispatchQueue(queue)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# @example
|
|
15
|
+
# firebase = Firebase.new('http://..../')
|
|
16
|
+
# firebase.auth('secretkey', then: ->{}, disconnect:{})
|
|
17
|
+
# # => firebase.authWithCredential(credential)
|
|
18
|
+
def auth(credential, options={}, &and_then)
|
|
19
|
+
and_then = and_then || options[:completion]
|
|
20
|
+
disconnect_block = options[:disconnect]
|
|
21
|
+
authWithCredential(credential, withCompletionBlock:and_then, withCancelBlock:disconnect_block)
|
|
22
|
+
return self
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def auth_state
|
|
26
|
+
self.root[".info/authenticated"]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def run(options={}, &transaction)
|
|
30
|
+
transaction = transaction || options[:transaction]
|
|
31
|
+
completion_block = options[:completion]
|
|
32
|
+
with_local_events = options[:local]
|
|
33
|
+
if with_local_events.nil?
|
|
34
|
+
if completion_block
|
|
35
|
+
runTransactionBlock(transaction, andCompletionBlock:completion_block)
|
|
36
|
+
else
|
|
37
|
+
runTransactionBlock(transaction)
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
runTransactionBlock(transaction, andCompletionBlock:completion_block, withLocalEvents:with_local_events)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @example
|
|
45
|
+
# firebase = Firebase.new('http://..../')
|
|
46
|
+
# firebase[] # => childByAutoId
|
|
47
|
+
# firebase['fred'] # => childByAppendingPath('fred')
|
|
48
|
+
# firebase['fred', 'name', 'first'] # => childByAppendingPath('fred/name/first')
|
|
49
|
+
# firebase['fred']['name']['first']
|
|
50
|
+
# # => childByAppendingPath('fred').childByAppendingPath('name').childByAppendingPath('first'),
|
|
51
|
+
# # same as => childByAppendingPath('fred/name/first')
|
|
52
|
+
def [](*names)
|
|
53
|
+
if names.length == 0
|
|
54
|
+
childByAutoId
|
|
55
|
+
else
|
|
56
|
+
childByAppendingPath(names.join('/'))
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def []=(key, value)
|
|
61
|
+
childByAppendingPath(key).set(value)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def clear!(&and_then)
|
|
65
|
+
if and_then
|
|
66
|
+
removeValueWithCompletionBlock(and_then)
|
|
67
|
+
else
|
|
68
|
+
removeValue
|
|
69
|
+
end
|
|
70
|
+
return self
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def <<(value)
|
|
74
|
+
ref = childByAutoId
|
|
75
|
+
ref.update(value)
|
|
76
|
+
return ref
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def value=(value)
|
|
80
|
+
setValue(value)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def set(value, &and_then)
|
|
84
|
+
if and_then
|
|
85
|
+
setValue(value, withCompletionBlock:and_then)
|
|
86
|
+
else
|
|
87
|
+
setValue(value)
|
|
88
|
+
end
|
|
89
|
+
return self
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def priority=(value)
|
|
93
|
+
priority(value)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def priority(value, &and_then)
|
|
97
|
+
if and_then
|
|
98
|
+
setPriority(value, withCompletionBlock:and_then)
|
|
99
|
+
else
|
|
100
|
+
setPriority(value)
|
|
101
|
+
end
|
|
102
|
+
return self
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def set(value, priority:priority, &and_then)
|
|
106
|
+
if and_then
|
|
107
|
+
setValue(value, andPriority:priority, withCompletionBlock:and_then)
|
|
108
|
+
else
|
|
109
|
+
setValue(value, andPriority:priority)
|
|
110
|
+
end
|
|
111
|
+
return self
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def update(values, &and_then)
|
|
115
|
+
if and_then
|
|
116
|
+
updateChildValues(values, withCompletionBlock:and_then)
|
|
117
|
+
else
|
|
118
|
+
updateChildValues(values)
|
|
119
|
+
end
|
|
120
|
+
return self
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def on(event_type, options={}, &and_then)
|
|
124
|
+
and_then = and_then || options[:completion]
|
|
125
|
+
raise "event handler is required" unless and_then
|
|
126
|
+
raise "event handler must accept one or two arguments" unless and_then.arity == 1 || and_then.arity == 2
|
|
127
|
+
|
|
128
|
+
event_type = Firebase._convert_event_type(event_type)
|
|
129
|
+
disconnect_block = options[:disconnect]
|
|
130
|
+
raise ":disconnect handler must not accept any arguments" if disconnect_block && disconnect_block.arity > 0
|
|
131
|
+
|
|
132
|
+
if and_then.arity == 1
|
|
133
|
+
if disconnect_block
|
|
134
|
+
observeEventType(event_type, withBlock:and_then, withCancelBlock:disconnect_block)
|
|
135
|
+
else
|
|
136
|
+
observeEventType(event_type, withBlock:and_then)
|
|
137
|
+
end
|
|
138
|
+
else
|
|
139
|
+
if disconnect_block
|
|
140
|
+
observeEventType(event_type, andPreviousSiblingNameWithBlock:and_then, withCancelBlock:disconnect_block)
|
|
141
|
+
else
|
|
142
|
+
observeEventType(event_type, andPreviousSiblingNameWithBlock:and_then)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def once(event_type, options={}, &and_then)
|
|
148
|
+
and_then = and_then || options[:completion]
|
|
149
|
+
raise "event handler is required" unless and_then
|
|
150
|
+
raise "event handler must accept one or two arguments" unless and_then.arity == 1 || and_then.arity == 2
|
|
151
|
+
|
|
152
|
+
event_type = Firebase._convert_event_type(event_type)
|
|
153
|
+
disconnect_block = options[:disconnect]
|
|
154
|
+
raise ":disconnect handler must not accept any arguments" if disconnect_block && disconnect_block.arity > 0
|
|
155
|
+
|
|
156
|
+
if and_then.arity == 1
|
|
157
|
+
if disconnect_block
|
|
158
|
+
observeSingleEventOfType(event_type, withBlock:and_then, withCancelBlock:disconnect_block)
|
|
159
|
+
else
|
|
160
|
+
observeSingleEventOfType(event_type, withBlock:and_then)
|
|
161
|
+
end
|
|
162
|
+
else
|
|
163
|
+
if disconnect_block
|
|
164
|
+
observeSingleEventOfType(event_type, andPreviousSiblingNameWithBlock:and_then, withCancelBlock:disconnect_block)
|
|
165
|
+
else
|
|
166
|
+
observeSingleEventOfType(event_type, andPreviousSiblingNameWithBlock:and_then)
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def off(handle=nil)
|
|
172
|
+
if handle
|
|
173
|
+
removeObserverWithHandle(handle)
|
|
174
|
+
else
|
|
175
|
+
removeAllObservers
|
|
176
|
+
end
|
|
177
|
+
return self
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def cancel_disconnect(&and_then)
|
|
181
|
+
if and_then
|
|
182
|
+
cancelDisconnectOperationsWithCompletionBlock(and_then)
|
|
183
|
+
else
|
|
184
|
+
cancelDisconnectOperations
|
|
185
|
+
end
|
|
186
|
+
return self
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def on_disconnect(value, &and_then)
|
|
190
|
+
if and_then
|
|
191
|
+
if value.nil?
|
|
192
|
+
onDisconnectRemoveValueWithCompletionBlock(and_then)
|
|
193
|
+
elsif NSDictionary === value
|
|
194
|
+
onDisconnectUpdateChildValues(value, withCompletionBlock:and_then)
|
|
195
|
+
else
|
|
196
|
+
onDisconnectSetValue(value, withCompletionBlock:and_then)
|
|
197
|
+
end
|
|
198
|
+
else
|
|
199
|
+
if value == :remove
|
|
200
|
+
onDisconnectRemoveValue
|
|
201
|
+
elsif NSDictionary === value
|
|
202
|
+
onDisconnectUpdateChildValues(value)
|
|
203
|
+
else
|
|
204
|
+
onDisconnectSetValue(value)
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
return self
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def on_disconnect(value, priority:priority, &and_then)
|
|
211
|
+
if and_then
|
|
212
|
+
onDisconnectSetValue(value, andPriority:priority, withCompletionBlock:and_then)
|
|
213
|
+
else
|
|
214
|
+
onDisconnectSetValue(value, andPriority:priority)
|
|
215
|
+
end
|
|
216
|
+
return self
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def inspect
|
|
220
|
+
"#<#{self.class}:0x#{self.object_id.to_s(16)}>"
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
private
|
|
224
|
+
def self._convert_event_type(event_type)
|
|
225
|
+
case event_type
|
|
226
|
+
when :child_added, :added
|
|
227
|
+
return FEventTypeChildAdded
|
|
228
|
+
when :child_moved, :moved
|
|
229
|
+
FEventTypeChildMoved
|
|
230
|
+
when :child_changed, :changed
|
|
231
|
+
return FEventTypeChildChanged
|
|
232
|
+
when :child_removed, :removed
|
|
233
|
+
return FEventTypeChildRemoved
|
|
234
|
+
when :value
|
|
235
|
+
return FEventTypeValue
|
|
236
|
+
else
|
|
237
|
+
NSLog("Unknown event type #{event_type.inspect}")
|
|
238
|
+
end
|
|
239
|
+
return event_type
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
class FirebaseAuthClient
|
|
2
|
+
|
|
3
|
+
def self.new(ref)
|
|
4
|
+
alloc.initWithRef(ref)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def check(&and_then)
|
|
8
|
+
checkAuthStatusWithBlock(and_then)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create(credentials, &block)
|
|
12
|
+
email = credentials[:email]
|
|
13
|
+
raise "email is required in #{__method__}" unless email
|
|
14
|
+
password = credentials[:password]
|
|
15
|
+
raise "password is required in #{__method__}" unless password
|
|
16
|
+
createUserWithEmail(email, password:password, andCompletionBlock:block)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def remove(credentials, &block)
|
|
20
|
+
email = credentials[:email]
|
|
21
|
+
raise "email is required in #{__method__}" unless email
|
|
22
|
+
password = credentials[:password]
|
|
23
|
+
raise "password is required in #{__method__}" unless password
|
|
24
|
+
removeUserWithEmail(email, password:password, andCompletionBlock:block)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def login(credentials, &block)
|
|
28
|
+
email = credentials[:email]
|
|
29
|
+
raise "email is required in #{__method__}" unless email
|
|
30
|
+
password = credentials[:password]
|
|
31
|
+
raise "password is required in #{__method__}" unless password
|
|
32
|
+
loginWithEmail(email, andPassword:password, withCompletionBlock:block)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def update(credentials, &block)
|
|
36
|
+
email = credentials[:email]
|
|
37
|
+
raise "email is required in #{__method__}" unless email
|
|
38
|
+
old_password = credentials[:old_password]
|
|
39
|
+
raise "old_password is required in #{__method__}" unless old_password
|
|
40
|
+
new_password = credentials[:new_password]
|
|
41
|
+
raise "new_password is required in #{__method__}" unless new_password
|
|
42
|
+
changePasswordForEmail(email, oldPassword:old_password, newPassword:new_password, completionBlock:block)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def inspect
|
|
46
|
+
"#<#{self.class}:0x#{self.object_id.to_s(16)}>"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
unless defined?(Motion::Project::Config)
|
|
2
|
+
raise "The motion-firebase-auth gem must be required within a RubyMotion project Rakefile."
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Motion::Project::App.setup do |app|
|
|
7
|
+
# scans app.files until it finds app/ (the default)
|
|
8
|
+
# if found, it inserts just before those files, otherwise it will insert to
|
|
9
|
+
# the end of the list
|
|
10
|
+
insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0
|
|
11
|
+
|
|
12
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'firebase-auth/**/*.rb')).reverse.each do |file|
|
|
13
|
+
app.files.insert(insert_point, file)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
app.vendor_project(File.join(File.dirname(__FILE__), 'vendor/FirebaseAuthClient.framework'), :static, headers_dir: 'Headers', products: ['FirebaseAuthClient'])
|
|
17
|
+
app.libs += ['/usr/lib/libsqlite3.dylib']
|
|
18
|
+
app.weak_frameworks += ['AdSupport', 'Accounts', 'Social']
|
|
19
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
unless defined?(Motion::Project::Config)
|
|
2
|
+
raise "The motion-firebase-auth gem must be required within a RubyMotion project Rakefile."
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Motion::Project::App.setup do |app|
|
|
7
|
+
# scans app.files until it finds app/ (the default)
|
|
8
|
+
# if found, it inserts just before those files, otherwise it will insert to
|
|
9
|
+
# the end of the list
|
|
10
|
+
insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0
|
|
11
|
+
|
|
12
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'firebase-auth/**/*.rb')).reverse.each do |file|
|
|
13
|
+
app.files.insert(insert_point, file)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
app.vendor_project(File.join(File.dirname(__FILE__), 'vendor/FacebookSDK.framework'), :static, headers_dir: 'Headers', products: ['FacebookSDK'])
|
|
17
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
unless defined?(Motion::Project::Config)
|
|
2
|
+
raise "The motion-firebase gem must be required within a RubyMotion project Rakefile."
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Motion::Project::App.setup do |app|
|
|
7
|
+
# scans app.files until it finds app/ (the default)
|
|
8
|
+
# if found, it inserts just before those files, otherwise it will insert to
|
|
9
|
+
# the end of the list
|
|
10
|
+
insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0
|
|
11
|
+
|
|
12
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'firebase/**/*.rb')).reverse.each do |file|
|
|
13
|
+
app.files.insert(insert_point, file)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
app.vendor_project(File.join(File.dirname(__FILE__), 'vendor/Firebase.framework'), :static, headers_dir: 'Headers', products: ['Firebase'])
|
|
17
|
+
app.libs += ['/usr/lib/libicucore.dylib']
|
|
18
|
+
app.frameworks += ['CFNetwork', 'Security', 'Foundation']
|
|
19
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2013 Facebook
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#import <Foundation/Foundation.h>
|
|
18
|
+
#import "FBSession.h"
|
|
19
|
+
|
|
20
|
+
/*!
|
|
21
|
+
@class FBAccessTokenData
|
|
22
|
+
|
|
23
|
+
@abstract Represents an access token used for the Facebook login flow
|
|
24
|
+
and includes associated metadata such as expiration date and permissions.
|
|
25
|
+
You should use factory methods (createToken...) to construct instances
|
|
26
|
+
and should be treated as immutable.
|
|
27
|
+
|
|
28
|
+
@discussion For more information, see
|
|
29
|
+
https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/.
|
|
30
|
+
*/
|
|
31
|
+
@interface FBAccessTokenData : NSObject <NSCopying>
|
|
32
|
+
|
|
33
|
+
/*!
|
|
34
|
+
@method
|
|
35
|
+
|
|
36
|
+
@abstract Creates an FBAccessTokenData from an App Link provided by the Facebook application
|
|
37
|
+
or nil if the url is not valid.
|
|
38
|
+
|
|
39
|
+
@param url The url provided.
|
|
40
|
+
@param appID needed in order to verify URL format.
|
|
41
|
+
@param urlSchemeSuffix needed in order to verify URL format.
|
|
42
|
+
|
|
43
|
+
*/
|
|
44
|
+
+ (FBAccessTokenData *) createTokenFromFacebookURL:(NSURL *)url appID:(NSString *)appID urlSchemeSuffix:(NSString *)urlSchemeSuffix;
|
|
45
|
+
|
|
46
|
+
/*!
|
|
47
|
+
@method
|
|
48
|
+
|
|
49
|
+
@abstract Creates an FBAccessTokenData from a dictionary or returns nil if required data is missing.
|
|
50
|
+
@param dictionary the dictionary with FBSessionTokenCachingStrategy keys.
|
|
51
|
+
*/
|
|
52
|
+
+ (FBAccessTokenData *) createTokenFromDictionary:(NSDictionary *)dictionary;
|
|
53
|
+
|
|
54
|
+
/*!
|
|
55
|
+
@method
|
|
56
|
+
|
|
57
|
+
@abstract Creates an FBAccessTokenData from existing information or returns nil if required data is missing.
|
|
58
|
+
|
|
59
|
+
@param accessToken The token string. If nil or empty, this method will return nil.
|
|
60
|
+
@param permissions The permissions set. A value of nil indicates basic permissions.
|
|
61
|
+
@param expirationDate The expiration date. A value of nil defaults to `[NSDate distantFuture]`.
|
|
62
|
+
@param loginType The login source of the token.
|
|
63
|
+
@param refreshDate The date that token was last refreshed. A value of nil defaults to `[NSDate date]`.
|
|
64
|
+
*/
|
|
65
|
+
+ (FBAccessTokenData *) createTokenFromString:(NSString *)accessToken
|
|
66
|
+
permissions:(NSArray *)permissions
|
|
67
|
+
expirationDate:(NSDate *)expirationDate
|
|
68
|
+
loginType:(FBSessionLoginType)loginType
|
|
69
|
+
refreshDate:(NSDate *)refreshDate;
|
|
70
|
+
|
|
71
|
+
/*!
|
|
72
|
+
@method
|
|
73
|
+
|
|
74
|
+
@abstract Returns a dictionary representation of this instance.
|
|
75
|
+
|
|
76
|
+
@discussion This is provided for backwards compatibility with previous
|
|
77
|
+
access token related APIs that used a NSDictionary (see `FBSessionTokenCachingStrategy`).
|
|
78
|
+
*/
|
|
79
|
+
- (NSMutableDictionary *) dictionary;
|
|
80
|
+
|
|
81
|
+
/*!
|
|
82
|
+
@method
|
|
83
|
+
|
|
84
|
+
@abstract Returns a Boolean value that indicates whether a given object is an FBAccessTokenData object and exactly equal the receiver.
|
|
85
|
+
|
|
86
|
+
@param accessTokenData the data to compare to the receiver.
|
|
87
|
+
*/
|
|
88
|
+
- (BOOL) isEqualToAccessTokenData:(FBAccessTokenData *)accessTokenData;
|
|
89
|
+
|
|
90
|
+
/*!
|
|
91
|
+
@abstract returns the access token NSString.
|
|
92
|
+
*/
|
|
93
|
+
@property (readonly, nonatomic, copy) NSString *accessToken;
|
|
94
|
+
|
|
95
|
+
/*!
|
|
96
|
+
@abstract returns the permissions associated with the access token.
|
|
97
|
+
*/
|
|
98
|
+
@property (readonly, nonatomic, copy) NSArray *permissions;
|
|
99
|
+
|
|
100
|
+
/*!
|
|
101
|
+
@abstract returns the expiration date of the access token.
|
|
102
|
+
*/
|
|
103
|
+
@property (readonly, nonatomic, copy) NSDate *expirationDate;
|
|
104
|
+
|
|
105
|
+
/*!
|
|
106
|
+
@abstract returns the login type associated with the token.
|
|
107
|
+
*/
|
|
108
|
+
@property (readonly, nonatomic) FBSessionLoginType loginType;
|
|
109
|
+
|
|
110
|
+
/*!
|
|
111
|
+
@abstract returns the date the token was last refreshed.
|
|
112
|
+
*/
|
|
113
|
+
@property (readonly, nonatomic, copy) NSDate *refreshDate;
|
|
114
|
+
|
|
115
|
+
@end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2012 Facebook
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#import <Foundation/Foundation.h>
|
|
18
|
+
#import "FBSession.h"
|
|
19
|
+
|
|
20
|
+
/*!
|
|
21
|
+
@class
|
|
22
|
+
|
|
23
|
+
@abstract
|
|
24
|
+
Base class from which CacheDescriptors derive, provides a method to fetch data for later use
|
|
25
|
+
|
|
26
|
+
@discussion
|
|
27
|
+
Cache descriptors allow your application to specify the arguments that will be
|
|
28
|
+
later used with another object, such as the FBFriendPickerViewController. By using a cache descriptor
|
|
29
|
+
instance, an application can choose to fetch data ahead of the point in time where the data is needed.
|
|
30
|
+
*/
|
|
31
|
+
@interface FBCacheDescriptor : NSObject
|
|
32
|
+
|
|
33
|
+
/*!
|
|
34
|
+
@method
|
|
35
|
+
@abstract
|
|
36
|
+
Fetches and caches the data described by the cache descriptor instance, for the given session.
|
|
37
|
+
|
|
38
|
+
@param session the <FBSession> to use for fetching data
|
|
39
|
+
*/
|
|
40
|
+
- (void)prefetchAndCacheForSession:(FBSession*)session;
|
|
41
|
+
|
|
42
|
+
@end
|