Module: Mailmate Private
- Defined in:
- lib/mailmate.rb,
lib/mailmate.rb,
lib/mailmate/ast.rb,
lib/mailmate/lexer.rb,
lib/mailmate/config.rb,
lib/mailmate/parser.rb,
lib/mailmate/message.rb,
lib/mailmate/mid_url.rb,
lib/mailmate/version.rb,
lib/mailmate/cli/send.rb,
lib/mailmate/identity.rb,
lib/mailmate/evaluator.rb,
lib/mailmate/operators.rb,
lib/mailmate/attributes.rb,
lib/mailmate/cli/modify.rb,
lib/mailmate/cli/search.rb,
lib/mailmate/eml_lookup.rb,
lib/mailmate/cli/message.rb,
lib/mailmate/cli/discover.rb,
lib/mailmate/index_reader.rb,
lib/mailmate/var_resolver.rb,
lib/mailmate/header_reader.rb,
lib/mailmate/mailbox_graph.rb,
lib/mailmate/platform_error.rb,
lib/mailmate/source_resolver.rb,
lib/mailmate/duplicate_scanner.rb,
lib/mailmate/filter_classifier.rb,
lib/mailmate/applescript_driver.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
FilterClassifier — walks an AST and answers questions about what’s required to evaluate it. Used by ‘mailmate-search` to pick the cheapest `.eml` loading tier per query:
:index — every path is index-backed; never open the .eml at all.
:header — every path resolves from headers (or index); read header block only.
:full — at least one path needs body content; full Mail.read.
Also extracts ASCII string literals from top-level AND-chained header-path comparisons so the raw-bytes pre-filter can short-circuit without parsing.
Defined Under Namespace
Modules: AST, Attributes, CLI, DuplicateScanner, EmlLookup, FilterClassifier, HeaderReader, Identity, Lexer, MidUrl, Operators Classes: AppleScriptDriver, Config, Evaluator, IndexReader, MailboxGraph, Message, Parser, PlatformError, SourceResolver, VarResolver
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .compile_filter(str) ⇒ Object
-
.config ⇒ Object
Convenience: ‘Mailmate.config.imap_root` etc.
-
.localize(time) ⇒ Object
Convert a Time to the configured display zone.
Class Method Details
.compile_filter(str) ⇒ Object
53 54 55 |
# File 'lib/mailmate.rb', line 53 def self.compile_filter(str) Parser.parse(Lexer.lex(str)) end |
.config ⇒ Object
Convenience: ‘Mailmate.config.imap_root` etc.
131 132 133 |
# File 'lib/mailmate/config.rb', line 131 def self.config Config.instance end |
.localize(time) ⇒ Object
Convert a Time to the configured display zone. If ‘display_timezone` is set in config, use it as the offset (e.g. “-07:00”). Otherwise fall back to the system local zone (which honors macOS’s DST rules, so Mountain users get MDT in summer and MST in winter).
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/mailmate.rb', line 61 def self.localize(time) return nil unless time t = time.respond_to?(:to_time) ? time.to_time : time zone = config.display_timezone if zone && !zone.empty? t.getlocal(zone) else t.getlocal end rescue StandardError time end |