motion-firebase 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|