I hereby claim:
- I am russmatney on github.
- I am russmatney (https://keybase.io/russmatney) on keybase.
- I have a public key whose fingerprint is 3378 B53A B12A 8811 99F2 0F0C 38B4 5CA1 46C8 CD72
To claim this, I am signing this object:
| 'use strict'; | |
| angular.module('pig-latin', []) | |
| .filter 'pig-latin', () -> | |
| # input is handed into the filter | |
| (input) -> | |
| # equals itself or '' | |
| input ||= '' | |
| if input.length > 0 |
| 'use strict'; | |
| describe('Controller: ScenesCtrl', function(){ | |
| beforeEach(module('app')); | |
| var scope, scenesCtrl; | |
| var actId = '987'; | |
| var listOfScenes = [ | |
| {_id: '123', name:'scene one'}, | |
| {_id: '456', name:'scene two'} | |
| ]; |
I hereby claim:
To claim this, I am signing this object:
| {-# LANGUAGE OverloadedStrings #-} | |
| module LensCheatSheet where | |
| import Control.Lens | |
| import Data.Text | |
| import qualified Data.Text as T | |
| import qualified Data.HashMap.Lazy as HM |
| -- | A newtype wrapper to force UserNames to be labeled, and prevent us from | |
| -- passing the wrong type of name around. | |
| newtype UserName = UserName Text deriving (Show, Eq) | |
| newtype PetName = PetName Text deriving (Show, Eq) | |
| -- | A type alias to improve the readability of our types. | |
| -- An inventory is a HashMap with a Text key and Item value. | |
| type Inventory = HM.HashMap Text Item | |
| -- | A User record. |
| -- | A lens from a User to Text. | |
| -- | |
| -- Written quite explicitly with getter and setter helper functions to expose | |
| -- Lens's nature. | |
| userName :: Lens' User UserName | |
| userName = lens getter setter | |
| where | |
| getter user = _userName user | |
| setter user newName = user { _userName = newName } |
| viewExamples :: IO () | |
| viewExamples = do | |
| let bob = User (UserName "Bob") 42 Nothing HM.empty | |
| print "Bob's name is: " | |
| print $ view userName bob | |
| -- UserName "bob" | |
| print $ bob ^. userName | |
| -- UserName "bob" |
| composedViewExamples :: IO () | |
| composedViewExamples = do | |
| let | |
| bob = User (UserName "bob") 42 Nothing HM.empty | |
| fitzgerald = Pet (PetName "Fitzgerald") | |
| jeff = User (UserName "jeff") 42 (Just fitzgerald) HM.empty | |
| print "Bob's pet's name is: " | |
| print $ preview (pet . _Just . petName) bob | |
| -- Nothing |
| previewExamples :: IO () | |
| previewExamples = do | |
| let maybeIntA = Just 1 | |
| -- Have to tell the compiler this was a 'Maybe Int' for it to be printable | |
| maybeIntB = Nothing :: Maybe Int | |
| print "maybeIntA" | |
| print $ maybeIntA ^? _Just | |
| -- Just 1 | |
| print "maybeIntB" |
| setExamples :: IO () | |
| setExamples = do | |
| let bob = User (UserName "bob") 0 Nothing HM.empty | |
| print "Bob, with an updated score" | |
| print $ set score 42 bob | |
| -- User {_userName = UserName "bob", _userScore = 42, _userPet = Nothing, _userInventory = fromList []} | |
| print $ (score .~ 42) bob | |
| -- User {_userName = UserName "bob", _userScore = 42, _userPet = Nothing, _userInventory = fromList []} |