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' => #[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. | ╰------------------------------------╯