├── .editorconfig ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── cli.js ├── hearts.json ├── index.js ├── logo.png ├── package.json ├── src ├── cli.ls ├── hearts.json.ls └── index.ls └── test └── app.ls /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Folders ### 2 | node_modules 3 | 4 | ### Files ### 5 | **/npm-debug.log 6 | **/.DS_Store 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | before_script: 3 | - npm install 4 | script: 5 | - npm run build 6 | node_js: 7 | - v5 8 | - v4 9 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | #Contributing 2 | 3 | Contributions are very welcome! If you'd like to contribute, these guidelines may help you. 4 | 5 | ##Table of Contents 6 | 7 | - [Versioning](#versioning) 8 | - [Reporting a bug](#reporting-a-bug) 9 | - [The 5 magic steps](#the-5-magic-steps) 10 | - [License](#license) 11 | 12 | ## Versioning 13 | 14 | It is intended to maintain this project under the [Semantic Versioning] (http://semver.org/) guidelines. Releases will 15 | be numbered with the following format: 16 | 17 | `..` 18 | 19 | ## Reporting a bug 20 | 21 | 1. Look for any related issues [here](https://github.com/mabrasil/happy-valentines/issues). 22 | 2. If you find an issue that seems related, please comment there instead of creating a new issue. If it is determined to be a unique bug, we will let you know that a new issue can be created. 23 | 3. If you find no related issue, create a new issue by clicking [here](https://github.com/mabrasil/happy-valentines/issues/new). 24 | If we find an issue that's related, we will reference it and close your issue, showing you where to follow the bug. 25 | 4. Tell us important details like what operating system you are using. 26 | 5. Include any errors that may be displayed (see [Chrome Console instructions](https://developer.chrome.com/devtools/docs/console#opening_the_console) for how to do that). 27 | 6. Update us if you have any new info, or if the problem resolves itself! 28 | 29 | ## The 5 magic steps 30 | 31 | 1. Fork it! 32 | 2. Create your feature branch: `git checkout -b my-new-feature` 33 | 3. Commit your changes: `git commit -m 'Add some feature'` 34 | 4. Push to the branch: `git push origin my-new-feature` 35 | 5. Submit a pull request :) 36 | 37 | ## License 38 | 39 | [happy-valentines](https://github.com/mabrasil/happy-valentines) is distributed under the 40 | MIT License, available in this repository. All contributions are assumed to be also licensed under 41 | the MIT License. 42 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 [Matheus Brasil](https://github.com/mabrasil) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Logo 4 | 5 |

6 | 7 |

8 | Simple module to show your love on this Valentine's Day. 9 |

10 | 11 |

12 | 13 | Build Status 14 | 15 | Build Status 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |

24 | 25 | ## Table of Contents 26 | 27 | - [Installation](#installation) 28 | - [Usage](#usage) 29 | - [Development](#development) 30 | - [Contributing](#contributing) 31 | - [Motivation](#motivation) 32 | - [License](#license) 33 | - [Credits](#credits) 34 | 35 | ## Installation 36 | 37 | ### Node 38 | 39 | ```sh 40 | $ npm install --save happy-valentines 41 | ``` 42 | 43 | ### CLI 44 | 45 | ```sh 46 | $ npm install -g happy-valentines 47 | ``` 48 | 49 | ## Usage 50 | 51 |

52 | 53 | Screenshot 54 | 55 |

56 | 57 | > Send this project to whom you **love** and as soon as the person installs and 58 | runs, it will wish that special person a *Happy Valentine's Day*. 59 | 60 | ### Node 61 | 62 | ```js 63 | const valentines = require('happy-valentines'); 64 | 65 | valentines(); 66 | 67 | 68 | /* => 69 | LoveLoveLov eLoveLoveLo 70 | veLoveLoveLoveLove LoveLoveLoveLoveLo 71 | veLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLove 72 | LoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLo 73 | veLoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLove 74 | LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove 75 | LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove 76 | LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo 77 | veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove 78 | veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove 79 | LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo 80 | veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove 81 | LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo 82 | veLoveLoveLoveLoveLoveLoveLoveLoveLove 83 | LoveLoveLoveLoveLoveLoveLoveLoveLo 84 | veLoveLoveLoveLoveLoveLoveLove 85 | LoveLoveLoveLoveLoveLoveLo 86 | veLoveLoveLoveLoveLo 87 | veLoveLoveLo 88 | ve 89 | 90 | Happy Valentine's Day, dear Matheus Brasil. 91 | 92 | */ 93 | ``` 94 | 95 | ### CLI 96 | 97 | ![Screenshot](http://i.imgur.com/8wXTrc0.gif) 98 | 99 | ```sh 100 | $ happy-valentines 101 | ``` 102 | 103 | #### Options 104 | 105 | | **Option** | **Description** | 106 | |-------------|----------------------------------------------| 107 | | `--help` | Shows project description and how to use it. | 108 | | `--version` | Displays the current version. | 109 | 110 | ## Development 111 | 112 | All the tasks needed for development automation are defined in the 113 | [`package.json`](package.json) *scripts* property and can be run via: 114 | 115 | `npm run ` 116 | 117 | Here is a summary of all the commands: 118 | 119 | | **Command** | **Description** | 120 | |---------------|------------------------------------------------------------------------------------------| 121 | | `compile` | Runs the Livescript compiler on the source. | 122 | | `test` | Runs [Mocha](https://mochajs.org/) in BDD mode. | 123 | | `build` | Runs both `compile` and `test` commands. | 124 | 125 | ## Contributing 126 | 127 | Contributions are very welcome! If you'd like to contribute, these 128 | [guidelines](CONTRIBUTING.md) may help you. 129 | 130 | ## Motivation 131 | 132 | You know what they say: *love is in the air* 133 | 134 | ¯\\\_(ツ)_/¯ 135 | 136 | ## License 137 | 138 | [happy-valentines](https://github.com/mabrasil/happy-valentines) is distributed under 139 | the MIT License, available in this repository. All contributions are assumed to 140 | be also licensed under the MIT License. 141 | 142 | ## Credits 143 | 144 | Part of the [*hearts art*](hearts.json) was taken from 145 | [AsciiWorld.com](http://www.asciiworld.com/-Hearts-.html). 146 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | var meow, valentines, cli; 4 | meow = require('meow'); 5 | valentines = require('./'); 6 | cli = meow({ 7 | help: ['', 'Happy Valentine\'s Day!', '', 'How about wishing someone special a Happy Valentine\'s Day as well?', '', 'Options:', ' --help Guess what? It brings you here.', ' --version Displays the current version.', '', 'Example:', ' $ happy-valentines', '', ' LoveLoveLov eLoveLoveLo', ' veLoveLoveLoveLove LoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLo', 'veLoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLove', 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove', 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove', ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLoveLoveLove', ' LoveLoveLoveLoveLoveLoveLo', ' veLoveLoveLoveLoveLo', ' veLoveLoveLo', ' ve', '', 'Happy Valentine\'s Day, dear Matheus Brasil.', ''] 8 | }); 9 | valentines(); -------------------------------------------------------------------------------- /hearts.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | " @@@@@@ @@@@@@ \n", 4 | " @@@@@@@@@@ @@@@@@@@@@ \n", 5 | " @@@@@@@@@@@@@@ @@@@@@@@@@@@@@ \n", 6 | " @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ \n", 7 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 8 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 9 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 10 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 11 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 12 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 13 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 14 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 15 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@ \n", 16 | " @@@@@@@@@@@@@@@@@@@@@@@ \n", 17 | " @@@@@@@@@@@@@@@@@@@ \n", 18 | " @@@@@@@@@@@@@@@ \n", 19 | " @@@@@@@@@@@ \n", 20 | " @@@@@@@ \n", 21 | " @@@ \n", 22 | " @ \n" 23 | ], 24 | [ 25 | " *********** *********** \n", 26 | " ***************** ***************** \n", 27 | " ********************* ********************* \n", 28 | "*********************** *********************** \n", 29 | "************************ ************************ \n", 30 | "************************* ************************* \n", 31 | " ************************************************** \n", 32 | " ************************************************ \n", 33 | " ******************************************** \n", 34 | " **************************************** \n", 35 | " ********************************** \n", 36 | " ****************************** \n", 37 | " ************************ \n", 38 | " ******************** \n", 39 | " ************** \n", 40 | " ********** \n", 41 | " ****** \n", 42 | " ** \n" 43 | ], 44 | [ 45 | " LoveLoveLov eLoveLoveLo \n", 46 | " veLoveLoveLoveLove LoveLoveLoveLoveLo \n", 47 | " veLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLove \n", 48 | " LoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLo \n", 49 | "veLoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLove \n", 50 | "LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n", 51 | "LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n", 52 | " LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n", 53 | " veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n", 54 | " LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n", 55 | " veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n", 56 | " LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n", 57 | " veLoveLoveLoveLoveLoveLoveLoveLoveLove \n", 58 | " LoveLoveLoveLoveLoveLoveLoveLoveLo \n", 59 | " veLoveLoveLoveLoveLoveLoveLove \n", 60 | " LoveLoveLoveLoveLoveLoveLo \n", 61 | " veLoveLoveLoveLoveLo \n", 62 | " veLoveLoveLo \n", 63 | " ve \n" 64 | ], 65 | [ 66 | " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n", 67 | "< :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: > \n", 68 | "< :::::::::::: :::::::::::: :::::::::::: > \n", 69 | "< ::::::::: :::: ::::::::: > \n", 70 | "< ::::::: ******** :: ******** ::::::: > \n", 71 | "< ::::: **** **** **** **** ::::: > \n", 72 | "< :::: **** **** **** :::: > \n", 73 | "< ::: **** ** **** ::: > \n", 74 | "< ::: **** **** ::: > \n", 75 | "< :::: **** ***** :::: > \n", 76 | "< ::::: **** **** ::::: > \n", 77 | "< ::::::: **** **** ::::::: > \n", 78 | "< ::::::::: **** **** ::::::::: > \n", 79 | "< ::::::::::: **** **** ::::::::::: > \n", 80 | "< :::::::::::::: **** **** :::::::::::::: > \n", 81 | "< ::::::::::::::::: **** **** ::::::::::::::::: > \n", 82 | "< :::::::::::::::::::: **** :::::::::::::::::::: > \n", 83 | "< ::::::::::::::::::::::: ** ::::::::::::::::::::::: > \n", 84 | "< ::::::::::::::::::::::::: ::::::::::::::::::::::::: > \n", 85 | "< ::::::::::::::::::::::::::: ::::::::::::::::::::::::::: > \n", 86 | "< ::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::: > \n", 87 | "< :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: > \n", 88 | " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n" 89 | ], 90 | [ 91 | " ♥♥♥♥♥♥ ♥♥♥♥♥♥ \n", 92 | " ♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥ \n", 93 | " ♥♥♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 94 | "♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 95 | "♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 96 | "♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 97 | "♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 98 | "♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 99 | " ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 100 | " ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 101 | " ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 102 | " ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n", 103 | " ♥♥♥♥♥♥♥♥♥♥♥ \n", 104 | " ♥♥♥♥♥♥♥ \n", 105 | " ♥♥♥ \n", 106 | " ♥ \n" 107 | ] 108 | ] 109 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var fs, path, parser, colors, uniqueRandomArray, fullname, hearts; 3 | fs = require('fs'); 4 | path = require('path'); 5 | parser = require('iniparser'); 6 | colors = require('chalk'); 7 | uniqueRandomArray = require('unique-random-array'); 8 | fullname = require('fullname'); 9 | hearts = require('./hearts.json'); 10 | module.exports = function(){ 11 | var heart; 12 | heart = uniqueRandomArray(hearts); 13 | console.log(colors.red('\n' + heart().join(''))); 14 | console.log(colors.gray('\n Happy Valentine\'s Day, dear ')); 15 | return fullname().then(function(name){ 16 | return console.log(colors.red(name) + colors.gray('.')); 17 | }); 18 | }; -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ythecombinator/happy-valentines/8ba073b08a225eee30685a56ffd8be3e057f0ed6/logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "happy-valentines", 3 | "version": "0.1.1", 4 | "description": "Simple module to show your love on this Valentine's Day.", 5 | "main": "index.js", 6 | "bin": "cli.js", 7 | "engines": { 8 | "node": ">=0.10.0" 9 | }, 10 | "scripts": { 11 | "compile": "lsc --no-header -b -c -o ./ src", 12 | "test": "mocha --compilers ls:livescript", 13 | "build": "npm run compile && npm run test" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/mabrasil/happy-valentines" 18 | }, 19 | "keywords": [ 20 | "Love", 21 | "Valentine", 22 | "Valentine's day", 23 | "Terminal", 24 | "Console", 25 | "CLI" 26 | ], 27 | "author": { 28 | "name": "Matheus Brasil", 29 | "email": "matheus.brasil10@gmail.com", 30 | "url": "https://github.com/mabrasil/happy-valentines" 31 | }, 32 | "license": { 33 | "type": "MIT", 34 | "url": "" 35 | }, 36 | "bugs": { 37 | "url": "https://github.com/mabrasil/happy-valentines/issues" 38 | }, 39 | "homepage": "https://github.com/mabrasil/happy-valentines", 40 | "dependencies": { 41 | "chalk": "^1.1.1", 42 | "iniparser": "^1.0.5", 43 | "meow": "^3.7.0", 44 | "unique-random-array": "^1.0.0", 45 | "fullname": "^3.0.0" 46 | }, 47 | "devDependencies": { 48 | "chai": "^3.5.0", 49 | "livescript": "^1.4.0", 50 | "mocha": "^2.4.5" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/cli.ls: -------------------------------------------------------------------------------- 1 | ``#!/usr/bin/env node`` 2 | 3 | 'use strict' 4 | 5 | require! { 6 | meow 7 | './': valentines 8 | } 9 | 10 | cli = meow {help: [ 11 | '' 12 | 'Happy Valentine\'s Day!' 13 | '' 14 | 'How about wishing someone special a Happy Valentine\'s Day as well?' 15 | '' 16 | 'Options:' 17 | ' --help Guess what? It brings you here.' 18 | ' --version Displays the current version.' 19 | '' 20 | 'Example:' 21 | ' $ happy-valentines' 22 | '' 23 | ' LoveLoveLov eLoveLoveLo' 24 | ' veLoveLoveLoveLove LoveLoveLoveLoveLo' 25 | ' veLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLove' 26 | ' LoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLo' 27 | 'veLoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLove' 28 | 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove' 29 | 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove' 30 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo' 31 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove' 32 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove' 33 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo' 34 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove' 35 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo' 36 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLove' 37 | ' LoveLoveLoveLoveLoveLoveLoveLoveLo' 38 | ' veLoveLoveLoveLoveLoveLoveLove' 39 | ' LoveLoveLoveLoveLoveLoveLo' 40 | ' veLoveLoveLoveLoveLo' 41 | ' veLoveLoveLo' 42 | ' ve' 43 | '' 44 | 'Happy Valentine\'s Day, dear Matheus Brasil.' 45 | '' 46 | ]} 47 | 48 | valentines! 49 | -------------------------------------------------------------------------------- /src/hearts.json.ls: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | ' @@@@@@ @@@@@@ \n' 4 | ' @@@@@@@@@@ @@@@@@@@@@ \n' 5 | ' @@@@@@@@@@@@@@ @@@@@@@@@@@@@@ \n' 6 | ' @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ \n' 7 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 8 | '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 9 | '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 10 | '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 11 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 12 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 13 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 14 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 15 | ' @@@@@@@@@@@@@@@@@@@@@@@@@@@ \n' 16 | ' @@@@@@@@@@@@@@@@@@@@@@@ \n' 17 | ' @@@@@@@@@@@@@@@@@@@ \n' 18 | ' @@@@@@@@@@@@@@@ \n' 19 | ' @@@@@@@@@@@ \n' 20 | ' @@@@@@@ \n' 21 | ' @@@ \n' 22 | ' @ \n' 23 | ] 24 | [ 25 | ' *********** *********** \n' 26 | ' ***************** ***************** \n' 27 | ' ********************* ********************* \n' 28 | '*********************** *********************** \n' 29 | '************************ ************************ \n' 30 | '************************* ************************* \n' 31 | ' ************************************************** \n' 32 | ' ************************************************ \n' 33 | ' ******************************************** \n' 34 | ' **************************************** \n' 35 | ' ********************************** \n' 36 | ' ****************************** \n' 37 | ' ************************ \n' 38 | ' ******************** \n' 39 | ' ************** \n' 40 | ' ********** \n' 41 | ' ****** \n' 42 | ' ** \n' 43 | ] 44 | [ 45 | ' LoveLoveLov eLoveLoveLo \n' 46 | ' veLoveLoveLoveLove LoveLoveLoveLoveLo \n' 47 | ' veLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLove \n' 48 | ' LoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLo \n' 49 | 'veLoveLoveLoveLoveLoveLoveL oveLoveLoveLoveLoveLoveLove \n' 50 | 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n' 51 | 'LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n' 52 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n' 53 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n' 54 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n' 55 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove \n' 56 | ' LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo \n' 57 | ' veLoveLoveLoveLoveLoveLoveLoveLoveLove \n' 58 | ' LoveLoveLoveLoveLoveLoveLoveLoveLo \n' 59 | ' veLoveLoveLoveLoveLoveLoveLove \n' 60 | ' LoveLoveLoveLoveLoveLoveLo \n' 61 | ' veLoveLoveLoveLoveLo \n' 62 | ' veLoveLoveLo \n' 63 | ' ve \n' 64 | ] 65 | [ 66 | ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n' 67 | '< :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: > \n' 68 | '< :::::::::::: :::::::::::: :::::::::::: > \n' 69 | '< ::::::::: :::: ::::::::: > \n' 70 | '< ::::::: ******** :: ******** ::::::: > \n' 71 | '< ::::: **** **** **** **** ::::: > \n' 72 | '< :::: **** **** **** :::: > \n' 73 | '< ::: **** ** **** ::: > \n' 74 | '< ::: **** **** ::: > \n' 75 | '< :::: **** ***** :::: > \n' 76 | '< ::::: **** **** ::::: > \n' 77 | '< ::::::: **** **** ::::::: > \n' 78 | '< ::::::::: **** **** ::::::::: > \n' 79 | '< ::::::::::: **** **** ::::::::::: > \n' 80 | '< :::::::::::::: **** **** :::::::::::::: > \n' 81 | '< ::::::::::::::::: **** **** ::::::::::::::::: > \n' 82 | '< :::::::::::::::::::: **** :::::::::::::::::::: > \n' 83 | '< ::::::::::::::::::::::: ** ::::::::::::::::::::::: > \n' 84 | '< ::::::::::::::::::::::::: ::::::::::::::::::::::::: > \n' 85 | '< ::::::::::::::::::::::::::: ::::::::::::::::::::::::::: > \n' 86 | '< ::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::: > \n' 87 | '< :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: > \n' 88 | ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n' 89 | ] 90 | [ 91 | ' ♥♥♥♥♥♥ ♥♥♥♥♥♥ \n' 92 | ' ♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥ \n' 93 | ' ♥♥♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 94 | '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 95 | '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 96 | '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 97 | '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 98 | '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 99 | ' ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 100 | ' ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 101 | ' ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 102 | ' ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ \n' 103 | ' ♥♥♥♥♥♥♥♥♥♥♥ \n' 104 | ' ♥♥♥♥♥♥♥ \n' 105 | ' ♥♥♥ \n' 106 | ' ♥ \n' 107 | ] 108 | ] 109 | -------------------------------------------------------------------------------- /src/index.ls: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | require! { 4 | fs 5 | path 6 | 'iniparser': parser 7 | 'chalk': colors 8 | 'unique-random-array' 9 | 'fullname' 10 | './hearts.json': hearts 11 | } 12 | 13 | module.exports = -> 14 | 15 | heart = unique-random-array hearts 16 | 17 | console.log colors.red '\n' + heart!.join '' 18 | console.log colors.gray '\n Happy Valentine\'s Day, dear ' 19 | fullname!then ((name) -> console.log (colors.red name) + (colors.gray '.')) 20 | -------------------------------------------------------------------------------- /test/app.ls: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | require! { 4 | '../src/index.ls': valentines 5 | '../hearts.json': hearts 6 | 'chai': {expect} 7 | } 8 | 9 | describe "Happy Valentine's Testing Specifications" -> 10 | 11 | specify 'Used hearts should be in a valid array' -> 12 | expect hearts .to.be instanceof Array 13 | 14 | specify 'Each heart should have a valid size' -> 15 | expect hearts.0.length .to.be.above 10 16 | --------------------------------------------------------------------------------