--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: bot
- !ruby/object:RI::MethodSummary 
  name: bot=
- !ruby/object:RI::MethodSummary 
  name: check_location
- !ruby/object:RI::MethodSummary 
  name: decode_html_entities
- !ruby/object:RI::MethodSummary 
  name: distance_of_time_in_words
- !ruby/object:RI::MethodSummary 
  name: get_first_pars
- !ruby/object:RI::MethodSummary 
  name: get_html_info
- !ruby/object:RI::MethodSummary 
  name: get_resp_html_info
- !ruby/object:RI::MethodSummary 
  name: get_string_html_info
- !ruby/object:RI::MethodSummary 
  name: ircify_first_html_par
- !ruby/object:RI::MethodSummary 
  name: ircify_first_html_par_wh
- !ruby/object:RI::MethodSummary 
  name: ircify_first_html_par_woh
- !ruby/object:RI::MethodSummary 
  name: safe_exec
- !ruby/object:RI::MethodSummary 
  name: safe_save
- !ruby/object:RI::MethodSummary 
  name: secs_to_short
- !ruby/object:RI::MethodSummary 
  name: secs_to_string
- !ruby/object:RI::MethodSummary 
  name: secs_to_string_case
- !ruby/object:RI::MethodSummary 
  name: timeago
- !ruby/object:RI::MethodSummary 
  name: try_htmlinfo_filters
comment: 
- !ruby/struct:SM::Flow::P 
  body: Miscellaneous useful functions
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: UNESCAPE_TABLE
  value: "{     'laquo' => '\xC2\xAB',     'raquo' => '\xC2\xBB',     'quot' => '\"',     'apos' => '\\'',     'micro' => '\xC2\xB5',     'copy' => '\xC2\xA9',     'trade' => '\xE2\x84\xA2',     'reg' => '\xC2\xAE',     'amp' => '&',     'lt' => '<',     'gt' => '>',     'hellip' => '\xE2\x80\xA6',     'nbsp' => '\xC2\xA0',     'Agrave' => '\xC3\x80',     'Aacute' => '\xC3\x81',     'Acirc' => '\xC3\x82',     'Atilde' => '\xC3\x83',     'Auml' => '\xC3\x84',     'Aring' => '\xC3\x85',     'AElig' => '\xC3\x86',     'OElig' => '\xC5\x92',     'Ccedil' => '\xC3\x87',     'Egrave' => '\xC3\x88',     'Eacute' => '\xC3\x89',     'Ecirc' => '\xC3\x8A',     'Euml' => '\xC3\x8B',     'Igrave' => '\xC3\x8C',     'Iacute' => '\xC3\x8D',     'Icirc' => '\xC3\x8E',     'Iuml' => '\xC3\x8F',     'ETH' => '\xC3\x90',     'Ntilde' => '\xC3\x91',     'Ograve' => '\xC3\x92',     'Oacute' => '\xC3\x93',     'Ocirc' => '\xC3\x94',     'Otilde' => '\xC3\x95',     'Ouml' => '\xC3\x96',     'Oslash' => '\xC3\x98',     'Ugrave' => '\xC3\x99',     'Uacute' => '\xC3\x9A',     'Ucirc' => '\xC3\x9B',     'Uuml' => '\xC3\x9C',     'Yacute' => '\xC3\x9D',     'THORN' => '\xC3\x9E',     'szlig' => '\xC3\x9F',     'agrave' => '\xC3\xA0',     'aacute' => '\xC3\xA1',     'acirc' => '\xC3\xA2',     'atilde' => '\xC3\xA3',     'auml' => '\xC3\xA4',     'aring' => '\xC3\xA5',     'aelig' => '\xC3\xA6',     'oelig' => '\xC5\x93',     'ccedil' => '\xC3\xA7',     'egrave' => '\xC3\xA8',     'eacute' => '\xC3\xA9',     'ecirc' => '\xC3\xAA',     'euml' => '\xC3\xAB',     'igrave' => '\xC3\xAC',     'iacute' => '\xC3\xAD',     'icirc' => '\xC3\xAE',     'iuml' => '\xC3\xAF',     'eth' => '\xC3\xB0',     'ntilde' => '\xC3\xB1',     'ograve' => '\xC3\xB2',     'oacute' => '\xC3\xB3',     'ocirc' => '\xC3\xB4',     'otilde' => '\xC3\xB5',     'ouml' => '\xC3\xB6',     'oslash' => '\xC3\xB8',     'ugrave' => '\xC3\xB9',     'uacute' => '\xC3\xBA',     'ucirc' => '\xC3\xBB',     'uuml' => '\xC3\xBC',     'yacute' => '\xC3\xBD',     'thorn' => '\xC3\xBE',     'yuml' => '\xC3\xBF'"
- !ruby/object:RI::Constant 
  comment: 
  name: AFTER_PAR_PATH
  value: /^(?:div|span)$/
- !ruby/object:RI::Constant 
  comment: 
  name: AFTER_PAR_EX
  value: /^(?:td|tr|tbody|table)$/
- !ruby/object:RI::Constant 
  comment: 
  name: AFTER_PAR_CLASS
  value: /body|message|text/i
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Title
  name: TITLE_REGEX
  value: /<\s*?title\s*?>(.+?)<\s*?\/title\s*?>/im
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: H1, H2, etc
  name: HX_REGEX
  value: /<h(\d)(?:\s+[^>]*)?>(.*?)<\/h\1>/im
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A paragraph
  name: PAR_REGEX
  value: /<p(?:\s+[^>]*)?>.*?<\/?(?:p|div|html|body|table|td|tr)(?:\s+[^>]*)?>/im
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Some blogging and forum platforms use spans or divs with a 'body' or 'message' or 'text' in their class to mark actual text
  name: AFTER_PAR1_REGEX
  value: /<\w+\s+[^>]*(?:body|message|text)[^>]*>.*?<\/?(?:p|div|html|body|table|td|tr)(?:\s+[^>]*)?>/im
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: At worst, we can try stuff which is comprised between two &lt;br&gt;
  name: AFTER_PAR2_REGEX
  value: /<br(?:\s+[^>]*)?\/?>.*?<\/?(?:br|p|div|html|body|table|td|tr)(?:\s+[^>]*)?\/?>/im
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds per minute
  name: SEC_PER_MIN
  value: "60"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds per hour
  name: SEC_PER_HR
  value: SEC_PER_MIN * 60
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds per day
  name: SEC_PER_DAY
  value: SEC_PER_HR * 24
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds per (30-day) month
  name: SEC_PER_MNTH
  value: SEC_PER_DAY * 30
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Second per (30*12 = 360 day) year
  name: SEC_PER_YR
  value: SEC_PER_MNTH * 12
full_name: "::Utils"
includes: []

instance_methods: []

name: Utils
superclass: 
