You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
2.6 KiB

Squib::DataFrame
================
As described in :doc:`/data`, the ``Squib::DataFrame`` is what is returned by Squib's data import methods (:doc:`/dsl/csv` and :doc:`/dsl/xlsx`).
It behaves like a ``Hash`` of ``Arrays``, so acessing an individual column can be done via the square brackets, e.g. ``data['title']``.
Here are some other convenience methods in ``Squib::DataFrame``
columns become methods
----------------------
Through magic of Ruby metaprogramming, every column also becomes a method on the data frame. So these two are equivalent:
.. code-block:: irb
irb(main):002:0> data = Squib.csv file: 'basic.csv'
=> #<Squib::DataFrame:0x00000003764550 @hash={"h1"=>[1, 3], "h2"=>[2, 4]}>
irb(main):003:0> data.h1
=> [1, 3]
irb(main):004:0> data['h1']
=> [1, 3]
#columns
--------
Returns an array of the column names in the data frame
#ncolumns
---------
Returns the number of columns in the data frame
#col?(name)
-----------
Returns ``true`` if there is column ``name``.
#row(i)
-------
Returns a hash of values across all columns in the i-th row of the dataframe. Represents a single card.
#nrows
------
Returns the number of rows the data frame has, computed by the maximum length of any column array.
#to_json
--------
Returns a ``json`` representation of the entire data frame.
#to_pretty_json
---------------
Returns a ``json`` representation of the entire data frame, formatted with indentation for human viewing.
#to_pretty_text
---------------
Returns a textual representation of the dataframe that emulates what the information looks like on an individual card. Here's an example:
.. code-block:: text
╭------------------------------------╮
Name | Mage |
Cost | 1 |
Description | You may cast 1 spell per turn |
Snark | Magic, dude. |
╰------------------------------------╯
╭------------------------------------╮
Name | Rogue |
Cost | 2 |
Description | You always take the first turn. |
Snark | I like to be sneaky |
╰------------------------------------╯
╭------------------------------------╮
Name | Warrior |
Cost | 3 |
Description |
Snark | I have a long story to tell to tes |
| t the word-wrapping ability of pre |
| tty text formatting. |
╰------------------------------------╯