tablestakes 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +0 -18
- data/lib/tablestakes.rb +34 -11
- data/spec/table_spec.rb +12 -2
- metadata +74 -31
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 712201016806acdde2ba71077b3b9d22adbb2901
         | 
| 4 | 
            +
              data.tar.gz: b3a10d461c4676c63ca3913f54785dd1333cf0fe
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bb5e169a7636d4b01236b28944b0f07c6f4576615dc587026d5f4e25316f8934e0f172e6393517dc2777537b966cbaa1789fa4304542105e177255f3fb3ea96b
         | 
| 7 | 
            +
              data.tar.gz: d79187e12a20e858dc1416f65231d3413f31b26285ac17177d850245747fa929c785e57001e44e5204c337a90bf5e6c3977116b75b6cddcb9c7adc06d864046f
         | 
    
        data/README.md
    CHANGED
    
    | @@ -2,31 +2,13 @@ Tablestakes | |
| 2 2 | 
             
            ===========
         | 
| 3 3 |  | 
| 4 4 | 
             
            [![Gem Version][GV img]][Gem Version]
         | 
| 5 | 
            -
            [![Build Status][BS img]][Build Status]
         | 
| 6 5 | 
             
            [![Dependency Status][DS img]][Dependency Status]
         | 
| 7 | 
            -
            [![Code Climate][CC img]][Code Climate]
         | 
| 8 | 
            -
            [![Coverage Status][CS img]][Coverage Status]
         | 
| 9 6 |  | 
| 10 7 | 
             
            [Gem Version]: https://rubygems.org/gems/tablestakes
         | 
| 11 | 
            -
            <<<<<<< HEAD
         | 
| 12 8 | 
             
            [Dependency Status]: https://gemnasium.com/jbfolkerts/tablestakes
         | 
| 13 | 
            -
            [Coverage Status]: https://coveralls.io/r/jbfolkerts/tablestakes
         | 
| 14 9 |  | 
| 15 10 | 
             
            [GV img]: https://badge.fury.io/rb/tablestakes.png
         | 
| 16 11 | 
             
            [DS img]: https://gemnasium.com/jbfolkerts/tablestakes.png
         | 
| 17 | 
            -
            =======
         | 
| 18 | 
            -
            [Build Status]: https://travis-ci.org/jbfolkerts/tablestakes
         | 
| 19 | 
            -
            [travis pull requests]: https://travis-ci.org/jbfolkerts/tablestakes/pull_requests
         | 
| 20 | 
            -
            [Dependency Status]: https://gemnasium.com/jbfolkerts/tablestakes
         | 
| 21 | 
            -
            [Code Climate]: https://codeclimate.com/github/jbfolkerts/tablestakes
         | 
| 22 | 
            -
            [Coverage Status]: https://coveralls.io/r/jbfolkerts/tablestakes
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            [GV img]: https://badge.fury.io/rb/tablestakes.png
         | 
| 25 | 
            -
            [BS img]: https://travis-ci.org/jbfolkerts/tablestakes.png
         | 
| 26 | 
            -
            [DS img]: https://gemnasium.com/jbfolkerts/tablestakes.png
         | 
| 27 | 
            -
            [CC img]: https://codeclimate.com/github/jbfolkerts/tablestakes.png
         | 
| 28 | 
            -
            >>>>>>> 12f008f26e005a9519dc7cc6664c218fca72a01c
         | 
| 29 | 
            -
            [CS img]: https://coveralls.io/repos/jbfolkerts/tablestakes/badge.png?branch=master
         | 
| 30 12 |  | 
| 31 13 | 
             
            Tablestakes is a gem for processing tabular data.  It is for people who would rather not meddle with
         | 
| 32 14 | 
             
            a spreadsheet, or load their data into a SQL database.  You get the instant gratification of being
         | 
    
        data/lib/tablestakes.rb
    CHANGED
    
    | @@ -172,6 +172,8 @@ class Table | |
| 172 172 | 
             
                return self
         | 
| 173 173 | 
             
              end
         | 
| 174 174 |  | 
| 175 | 
            +
              alias :<< :add_row
         | 
| 176 | 
            +
             | 
| 175 177 | 
             
              # Delete a column from the Table. Raises ArgumentError if the column name does not exist. 
         | 
| 176 178 | 
             
              #
         | 
| 177 179 | 
             
              # ==== Attributes
         | 
| @@ -447,30 +449,53 @@ class Table | |
| 447 449 |  | 
| 448 450 |  | 
| 449 451 | 
             
              # Given a field/column, and a regular expression to match against, and a replacement string,
         | 
| 450 | 
            -
              #  | 
| 451 | 
            -
              #  | 
| 452 | 
            +
              # create a new table which performs a substitute operation on column data.  In the case that the
         | 
| 453 | 
            +
              # given replacement is a +String+, a direct substitute is performed. In the case that it is a +Hash+
         | 
| 454 | 
            +
              # and the matched text is one of its keys, the corresponding +Hash+ value will be substituted.
         | 
| 455 | 
            +
              #
         | 
| 456 | 
            +
              # Optionally takes a block containing an operation to perform on all matching data elements 
         | 
| 457 | 
            +
              # in the given column. Raises ArgumentError if the column is not found.
         | 
| 452 458 | 
             
              # 
         | 
| 453 459 | 
             
              # ==== Attributes
         | 
| 454 460 | 
             
              # +colname+:: +String+ to identify the column to join on
         | 
| 455 461 | 
             
              # +re+:: +Regexp+ to match the value in the selected column
         | 
| 456 | 
            -
              # +replace+:: +String+ to specify the replacement text for the given +Regexp+
         | 
| 462 | 
            +
              # +replace+:: OPTIONAL +String+ or +Hash+ to specify the replacement text for the given +Regexp+
         | 
| 463 | 
            +
              # +&block+:: OPTIONAL block to execute against matching values
         | 
| 457 464 | 
             
              #
         | 
| 458 465 | 
             
              # ==== Examples
         | 
| 459 466 | 
             
              #     cities.sub("Population", /(.*?),(.*?)/, '\1\2')  # eliminate commas
         | 
| 460 467 | 
             
              #     capitals.sub("State", /NY/, "New York")  # replace acronym with full name
         | 
| 468 | 
            +
              #     capitals.sub("State") { |state| state.downcase } # Lowercase for all values
         | 
| 461 469 | 
             
              #
         | 
| 462 | 
            -
              def sub(colname, re, replace)
         | 
| 470 | 
            +
              def sub(colname, re=nil, replace=nil, &block)
         | 
| 463 471 | 
             
                # check arguments
         | 
| 464 472 | 
             
                raise ArgumentError, "No regular expression to match against" unless re
         | 
| 465 | 
            -
                raise ArgumentError, "No replacement string specified" unless replace
         | 
| 466 473 | 
             
                raise ArgumentError, "Invalid column name" unless @table.has_key?(colname)
         | 
| 467 | 
            -
                
         | 
| 468 | 
            -
                 | 
| 469 | 
            -
                   | 
| 474 | 
            +
                replace_str = ""
         | 
| 475 | 
            +
                if replace.respond_to?(:fetch)
         | 
| 476 | 
            +
                  replace_str = replace.fetch(re)
         | 
| 477 | 
            +
                elsif replace.respond_to?(:to_str)
         | 
| 478 | 
            +
                  replace_str = replace.to_str
         | 
| 479 | 
            +
                else
         | 
| 480 | 
            +
                  raise ArgumentError, "Replacement must be String or Hash"
         | 
| 470 481 | 
             
                end
         | 
| 471 | 
            -
             | 
| 482 | 
            +
             | 
| 483 | 
            +
                result = Table.new([@headers])
         | 
| 484 | 
            +
                col_index = @headers.index(colname)
         | 
| 485 | 
            +
             | 
| 486 | 
            +
                self.each do |row|
         | 
| 487 | 
            +
                  if block_given?
         | 
| 488 | 
            +
                    row[col_index] = block.call row[col_index]
         | 
| 489 | 
            +
                  else
         | 
| 490 | 
            +
                    row[col_index] = row[col_index].sub(re, replace_str)
         | 
| 491 | 
            +
                  end  
         | 
| 492 | 
            +
                  result.add_row(row)
         | 
| 493 | 
            +
                end
         | 
| 494 | 
            +
                return result
         | 
| 472 495 | 
             
              end
         | 
| 473 496 |  | 
| 497 | 
            +
              # alias :sub! :sub  
         | 
| 498 | 
            +
             | 
| 474 499 | 
             
              # Return Array with the union of elements columns in the given tables, eliminating duplicates.
         | 
| 475 500 | 
             
              # Raises an ArgumentError if a column is not found.
         | 
| 476 501 | 
             
              #
         | 
| @@ -511,8 +536,6 @@ class Table | |
| 511 536 | 
             
                return self.column(colname) & table2.column(col2name)
         | 
| 512 537 | 
             
              end
         | 
| 513 538 |  | 
| 514 | 
            -
              alias :sub! :sub  
         | 
| 515 | 
            -
             | 
| 516 539 | 
             
              # Sort the table based on given column. Uses precedence as defined in the 
         | 
| 517 540 | 
             
              # column. By default will sort by the value in the first column.
         | 
| 518 541 | 
             
              #
         | 
    
        data/spec/table_spec.rb
    CHANGED
    
    | @@ -2,6 +2,7 @@ | |
| 2 2 | 
             
            #
         | 
| 3 3 | 
             
            #
         | 
| 4 4 | 
             
            require 'spec_helper'
         | 
| 5 | 
            +
            require 'rspec/its'
         | 
| 5 6 | 
             
            require_relative '../lib/tablestakes'
         | 
| 6 7 |  | 
| 7 8 |  | 
| @@ -205,7 +206,7 @@ describe "Table" do | |
| 205 206 | 
             
                  expect((t.select("Name","Address","Records")).headers).to eq(["Name","Address","Records"])
         | 
| 206 207 | 
             
                end
         | 
| 207 208 | 
             
                it "does not select columns that are not given as arguments" do
         | 
| 208 | 
            -
                  expect((t.select("Name","Address","Records")).headers.include?("Phone")).to  | 
| 209 | 
            +
                  expect((t.select("Name","Address","Records")).headers.include?("Phone")).to eq(false)
         | 
| 209 210 | 
             
                end
         | 
| 210 211 | 
             
                it "raise ArgumentError when the given arguments don't match a column" do
         | 
| 211 212 | 
             
                  expect { t.select("Silly") }.to raise_error(ArgumentError)
         | 
| @@ -243,11 +244,20 @@ describe "Table" do | |
| 243 244 | 
             
                  expect(cities.sub("State", /Jersey/, "York")).to be_a(Table)
         | 
| 244 245 | 
             
                end
         | 
| 245 246 | 
             
                it "substitutes the values in a given field" do
         | 
| 246 | 
            -
                  expect( | 
| 247 | 
            +
                  expect(cities.sub("State", /Jersey/, "York").column("State")).to include("New York")
         | 
| 247 248 | 
             
                end
         | 
| 248 249 | 
             
                it "raises ArgumentError when the given arguments don't match a column" do
         | 
| 249 250 | 
             
                  expect {cities.sub("Silly", /NJ/, "NY") }.to raise_error(ArgumentError)
         | 
| 250 251 | 
             
                end
         | 
| 252 | 
            +
                it "raises ArgumentError when not given a Match string" do
         | 
| 253 | 
            +
                  expect {cities.sub("State") }.to raise_error(ArgumentError)
         | 
| 254 | 
            +
                end
         | 
| 255 | 
            +
                it "raises ArgumentError when replacement is not a String or Hash" do
         | 
| 256 | 
            +
                  expect {cities.sub("State", /New/, 9)}.to raise_error(ArgumentError)
         | 
| 257 | 
            +
                end
         | 
| 258 | 
            +
                it "does not modify the given table" do
         | 
| 259 | 
            +
                  expect(cities.sub("State", /New/, "Old") && cities.column("State")).to include("New York")
         | 
| 260 | 
            +
                end
         | 
| 251 261 | 
             
              end
         | 
| 252 262 |  | 
| 253 263 | 
             
              describe ".union" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,71 +1,113 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tablestakes
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.9. | 
| 4 | 
            +
              version: 0.9.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - J.B. Folkerts
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-03-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rspec
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 2 | 
| 19 | 
            +
                    version: '3.2'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 2 | 
| 26 | 
            +
                    version: '3.2'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rspec-its
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '1.2'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '1.2'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rspec-core
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '3.2'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '3.2'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: rspec-expectations
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '3.2'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '3.2'
         | 
| 27 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 70 | 
             
              name: factory_girl
         | 
| 29 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 72 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 73 | 
            +
                - - "~>"
         | 
| 32 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: 4.4 | 
| 75 | 
            +
                    version: '4.4'
         | 
| 34 76 | 
             
              type: :development
         | 
| 35 77 | 
             
              prerelease: false
         | 
| 36 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 79 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 80 | 
            +
                - - "~>"
         | 
| 39 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: 4.4 | 
| 82 | 
            +
                    version: '4.4'
         | 
| 41 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 84 | 
             
              name: simplecov
         | 
| 43 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 86 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 87 | 
            +
                - - "~>"
         | 
| 46 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 0. | 
| 89 | 
            +
                    version: '0.9'
         | 
| 48 90 | 
             
              type: :development
         | 
| 49 91 | 
             
              prerelease: false
         | 
| 50 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 93 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 94 | 
            +
                - - "~>"
         | 
| 53 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: 0. | 
| 96 | 
            +
                    version: '0.9'
         | 
| 55 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 98 | 
             
              name: coveralls
         | 
| 57 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 100 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 101 | 
            +
                - - "~>"
         | 
| 60 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 0.7 | 
| 103 | 
            +
                    version: '0.7'
         | 
| 62 104 | 
             
              type: :development
         | 
| 63 105 | 
             
              prerelease: false
         | 
| 64 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 107 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 108 | 
            +
                - - "~>"
         | 
| 67 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: 0.7 | 
| 110 | 
            +
                    version: '0.7'
         | 
| 69 111 | 
             
            description: A simple implementation of Tables, for use in summing, joining, slicing
         | 
| 70 112 | 
             
              and dicing data tables
         | 
| 71 113 | 
             
            email: jbf@pentambic.com
         | 
| @@ -73,7 +115,12 @@ executables: [] | |
| 73 115 | 
             
            extensions: []
         | 
| 74 116 | 
             
            extra_rdoc_files: []
         | 
| 75 117 | 
             
            files:
         | 
| 76 | 
            -
            -  | 
| 118 | 
            +
            - README.md
         | 
| 119 | 
            +
            - capitals.sorted
         | 
| 120 | 
            +
            - capitals.txt
         | 
| 121 | 
            +
            - cities.txt
         | 
| 122 | 
            +
            - doc/OrderedRow.html
         | 
| 123 | 
            +
            - doc/Table.html
         | 
| 77 124 | 
             
            - doc/created.rid
         | 
| 78 125 | 
             
            - doc/images/add.png
         | 
| 79 126 | 
             
            - doc/images/arrow_up.png
         | 
| @@ -105,20 +152,15 @@ files: | |
| 105 152 | 
             
            - doc/js/jquery.js
         | 
| 106 153 | 
             
            - doc/js/navigation.js
         | 
| 107 154 | 
             
            - doc/js/search.js
         | 
| 108 | 
            -
            - doc/js/searcher.js
         | 
| 109 155 | 
             
            - doc/js/search_index.js
         | 
| 110 | 
            -
            - doc/ | 
| 156 | 
            +
            - doc/js/searcher.js
         | 
| 111 157 | 
             
            - doc/rdoc.css
         | 
| 112 | 
            -
            - doc/Table.html
         | 
| 113 158 | 
             
            - doc/table_of_contents.html
         | 
| 114 | 
            -
            -  | 
| 115 | 
            -
            - test.tab
         | 
| 116 | 
            -
            - cities.txt
         | 
| 117 | 
            -
            - capitals.txt
         | 
| 118 | 
            -
            - capitals.sorted
         | 
| 159 | 
            +
            - lib/tablestakes.rb
         | 
| 119 160 | 
             
            - spec/factories.rb
         | 
| 120 | 
            -
            - spec/table_spec.rb
         | 
| 121 161 | 
             
            - spec/spec_helper.rb
         | 
| 162 | 
            +
            - spec/table_spec.rb
         | 
| 163 | 
            +
            - test.tab
         | 
| 122 164 | 
             
            homepage: http://rubygems.org/gems/tablestakes
         | 
| 123 165 | 
             
            licenses:
         | 
| 124 166 | 
             
            - MIT
         | 
| @@ -129,17 +171,17 @@ require_paths: | |
| 129 171 | 
             
            - lib
         | 
| 130 172 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 131 173 | 
             
              requirements:
         | 
| 132 | 
            -
              - -  | 
| 174 | 
            +
              - - ">="
         | 
| 133 175 | 
             
                - !ruby/object:Gem::Version
         | 
| 134 176 | 
             
                  version: '0'
         | 
| 135 177 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 136 178 | 
             
              requirements:
         | 
| 137 | 
            -
              - -  | 
| 179 | 
            +
              - - ">="
         | 
| 138 180 | 
             
                - !ruby/object:Gem::Version
         | 
| 139 181 | 
             
                  version: '0'
         | 
| 140 182 | 
             
            requirements: []
         | 
| 141 183 | 
             
            rubyforge_project: 
         | 
| 142 | 
            -
            rubygems_version: 2. | 
| 184 | 
            +
            rubygems_version: 2.2.2
         | 
| 143 185 | 
             
            signing_key: 
         | 
| 144 186 | 
             
            specification_version: 4
         | 
| 145 187 | 
             
            summary: Implementation of in-memory Tables
         | 
| @@ -151,3 +193,4 @@ test_files: | |
| 151 193 | 
             
            - spec/factories.rb
         | 
| 152 194 | 
             
            - spec/table_spec.rb
         | 
| 153 195 | 
             
            - spec/spec_helper.rb
         | 
| 196 | 
            +
            has_rdoc: 
         |