<commit_before>Feature: Adding columns
  Scenario: With the :include option
    Given a class named Foo
    Given Foo has attributes herp, blog

    Given a class named Foo::Blog
    Given Foo::Blog has attributes title, author
    Given Foo::Blog has a class method named foo with lambda{"just testing!"}
    Given Foo::Blog has a method named two_args with lambda{|a, b| "Called with #{a}, #{b}"}

    When I instantiate a Foo with {:herp => "derp"}
    When I instantiate a Foo::Blog with {:title => "post!", :author => 'Ryan'} and assign it to foo.blog
    And table_print Foo, {:include => ["blog.author", "blog.title"]}
    Then the output should contain
    """
    HERP | BLOG.AUTHOR | BLOG.TITLE
    -------------------------------
    derp | Ryan        | post!
    """

  Scenario: Providing a proc
  Scenario: Providing a named proc
    Given a class named Blog

    Given Blog has attributes title, author

    When I instantiate a Blog with {:title => "post!", :author => 'Ryan'}
    And table_print Blog, {:wombat => {:display_method => lambda{|blog| blog.author.gsub(/[aeiou]/, "").downcase}}}
    Then the output should contain
    """
    WOMBAT
    ------
    ryn
    """
  Scenario: Providing a named proc without saying 'display_method', eg :foo => lambda{}
    Given a class named Blog

    Given Blog has attributes title, author

    When I instantiate a Blog with {:title => "post!", :author => 'Ryan'}
    And table_print Blog, {:wombat => lambda{|blog| blog.author.gsub(/[aeiou]/, "").downcase}}
    Then the output should contain
    """
    WOMBAT
    ------
    ryn
    """
  Scenario: Using a proc as a filter (ie, overriding an existing column with a proc)<commit_msg>remove duplicate test<commit_after>Feature: Adding columns
  Scenario: With the :include option
    Given a class named Foo
    Given Foo has attributes herp, blog

    Given a class named Foo::Blog
    Given Foo::Blog has attributes title, author
    Given Foo::Blog has a class method named foo with lambda{"just testing!"}
    Given Foo::Blog has a method named two_args with lambda{|a, b| "Called with #{a}, #{b}"}

    When I instantiate a Foo with {:herp => "derp"}
    When I instantiate a Foo::Blog with {:title => "post!", :author => 'Ryan'} and assign it to foo.blog
    And table_print Foo, {:include => ["blog.author", "blog.title"]}
    Then the output should contain
    """
    HERP | BLOG.AUTHOR | BLOG.TITLE
    -------------------------------
    derp | Ryan        | post!
    """

  Scenario: Providing a named proc
    Given a class named Blog

    Given Blog has attributes title, author

    When I instantiate a Blog with {:title => "post!", :author => 'Ryan'}
    And table_print Blog, {:wombat => {:display_method => lambda{|blog| blog.author.gsub(/[aeiou]/, "").downcase}}}
    Then the output should contain
    """
    WOMBAT
    ------
    ryn
    """
  Scenario: Providing a named proc without saying 'display_method', eg :foo => lambda{}
    Given a class named Blog

    Given Blog has attributes title, author

    When I instantiate a Blog with {:title => "post!", :author => 'Ryan'}
    And table_print Blog, {:wombat => lambda{|blog| blog.author.gsub(/[aeiou]/, "").downcase}}
    Then the output should contain
    """
    WOMBAT
    ------
    ryn
    """
  Scenario: Using a proc as a filter (ie, overriding an existing column with a proc)
{'fraction_non_alphanumeric': 0.13939035217519977, 'fraction_numerical': 0.0, 'mean_word_length': 2.793490460157127, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6589560', 'n_tokens_mistral': 1056, 'n_tokens_neox': 964, 'n_words': 399}