Project

pms

0.0
No commit activity in last 3 years
No release in over 3 years
A simple searching facility for (nearly) arbitrary input.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0.8.1, ~> 0.8
>= 0
>= 0

Runtime

>= 0.0.2, ~> 0.0
~> 0.4
 Project Readme
= pms - Poor Man's Search

== VERSION

This documentation refers to pms version 0.0.7


== DESCRIPTION

Provides a simple searching facility for (nearly) arbitrary input. It allows
searching by Strings (exact match) or Regexps (full control, but slower).
Boolean operators AND, OR, and NOT are supported, as well as proximity
operators NEAR (with configurable distance) and ADJACENT (taking order into
account). You can chain operators and also group them into sub-queries.

Inspiration came from a discussion on ruby-talk, starting with message
ruby-talk:322014[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/322014],
but PMS has a more document-centric attitude (everything that <tt>input#each</tt>
yields is considered a document of its own).

Example:

  require 'pms/ext'

  text = <<EOT
  Hello world, how are you today? I said "Hello"
  to the other guy but he would not answer although
  all the world could hear me.
  EOT

  search = text.search('hello').near('world', 3)

  p search.results
  #=> [0]

  p search.results_with_positions
  #=> {0=>[0, 8]}

  p search.matches
  #=> ["Hello world, how are you today? I said \"Hello\"\n"]

You can find more examples in the <tt>spec/</tt> directory.


== LINKS

Documentation:: https://blackwinter.github.com/pms
Source code::   https://github.com/blackwinter/pms
RubyGem::       https://rubygems.org/gems/pms
Travis CI::     https://travis-ci.org/blackwinter/pms


== AUTHORS

* Jens Wille <mailto:jens.wille@gmail.com>


== LICENSE AND COPYRIGHT

Copyright (C) 2008-2014 Jens Wille

pms is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

pms is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.

You should have received a copy of the GNU Affero General Public License
along with pms. If not, see <http://www.gnu.org/licenses/>.