@alejandrolf/oop
v1.0.4
Published
examples of inheritance in object oriented programming.
Downloads
5
Maintainers
Readme
Eloquent JavaScript. Chapter 6: The Secret Life of Objects. Section Laying out a table
Documentation
Introduction
Example corresponds to the section Laying out a table of Chapter 6 The Secret Life of Objects, book Eloquent javaScript
Files:
package.json - configuration and dependencies
gulpfile.js - test: run mocha tests
- debugger: run the debbugger
- run: run the program
src - source folder
input.json - input file
main.js - main program
Cell.js - class cell
RCell.js - class rcell
UnderlinedCell.js - class underlinedcell
Table.js - class table
test - mocha test
test.js
Description
This example consist in a program that, given an array of arrays of table cells in json format, builds up a string that contains a nicely laid out table.
The src folder has the input file and the different classes, the main, all types of cell and the table. Also, in the test folder has the file the file with the developed tests.
Example of input used:
~/ejs-chapter-6-oop-KevMCh $ cat src/input.json
[
{"name": "Kilimanjaro\nMontaña mágica", "height": 5895, "country": "Tanzania"},
{"name": "Everest", "height": 8848, "country": "Nepal\nPaís lejano"},
{"name": "Mount Fuji", "height": 3776, "country": "Japan"},
{"name": "Mont Blanc", "height": 4808, "country": "Italy/France"},
{"name": "Vaalserberg", "height": 323, "country": "Netherlands"},
{"name": "Denali", "height": 6168, "country": "United States"},
{"name": "Popocatepetl", "height": 5465, "country": "Mexico"}
]
If you want to run the code the different tasks is available in the gulp file.
- Run the program with the debugger.
- Run the program with the standard input.
- Run the tests.
Final result:
~/ejs-chapter-6-oop-KevMCh $ gulp run
[12:42:05] Using gulpfile ~/Desktop/ejs-chapter-6-oop-KevMCh/gulpfile.js
[12:42:05] Starting 'run'...
name height country
-------------- ------ -------------
Kilimanjaro 5895 Tanzania
Montaña mágica
Everest 8848 Nepal
País lejano
Mount Fuji 3776 Japan
Mont Blanc 4808 Italy/France
Vaalserberg 323 Netherlands
Denali 6168 United States
Popocatepetl 5465 Mexico
[12:42:05] Finished 'run' after 84 ms
StretchCell
It is a new type of cell that wraps another one and makes sure that it has at least the specified width and height. It stores the inner cell in the "inner" attribute and uses the same "draw(width, height)" method.
minWidth() and minHeight() return the maximum between the inner cell method and the specified width and height, respectively.