aboutsummaryrefslogtreecommitdiff
path: root/lib/some
diff options
context:
space:
mode:
Diffstat (limited to 'lib/some')
-rw-r--r--lib/some/config.rb5
-rw-r--r--lib/some/database.rb19
-rw-r--r--lib/some/helpers.rb13
-rw-r--r--lib/some/message.rb23
-rw-r--r--lib/some/messages.rb103
-rw-r--r--lib/some/ruleset.rb11
6 files changed, 0 insertions, 174 deletions
diff --git a/lib/some/config.rb b/lib/some/config.rb
deleted file mode 100644
index 916db0c..0000000
--- a/lib/some/config.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-# frozen_string_literal: true
-
-class Config
- attr_accessor :database_path
-end
diff --git a/lib/some/database.rb b/lib/some/database.rb
deleted file mode 100644
index d481dd5..0000000
--- a/lib/some/database.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-module Some
- class Database
- attr_reader :db
-
- def initialize(path:)
- @db = ::Notmuch::Database.new(path)
- end
-
- def query(query)
- db.query(query)
- end
-
- def search_messages(query)
- query(query).search_messages
- end
- end
-end
diff --git a/lib/some/helpers.rb b/lib/some/helpers.rb
deleted file mode 100644
index 36dcdef..0000000
--- a/lib/some/helpers.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-module Some
- module Helpers
- def self.header_name_from_dsl(method_name)
- method_name
- .to_s
- .split('_')
- .map(&:capitalize)
- .join('-')
- end
- end
-end
diff --git a/lib/some/message.rb b/lib/some/message.rb
deleted file mode 100644
index cd352f1..0000000
--- a/lib/some/message.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# frozen_string_literal: true
-
-module Some
- class Message
- attr_reader :message
-
- def initialize(msg:)
- @message = msg
- end
-
- def method_missing(method_name, *_args)
- handle_get(Some::Helpers.header_name_from_dsl(method_name))
- end
-
- def handle_get(header_name)
- message.header(header_name) if message.header(header_name)
- end
-
- def tags
- @message.tags
- end
- end
-end
diff --git a/lib/some/messages.rb b/lib/some/messages.rb
deleted file mode 100644
index 9f2520b..0000000
--- a/lib/some/messages.rb
+++ /dev/null
@@ -1,103 +0,0 @@
-# frozen_string_literal: true
-
-require 'pry'
-module Some
- class Messages
- AND_CONJUCTION = :and
- OR_CONJUCTION = :or
- DEFAULT_CONJUCTION = AND_CONJUCTION
-
- Token = Struct.new(:conjuction, :field, :value, :messages) do
- def to_query
- conjuction_to_use = messages.next_token_id > 1 ? conjuction : ''
- return "#{conjuction_to_use} (#{value})" if field == :direct
-
- "#{conjuction_to_use} (#{field}:#{value})"
- end
- end
-
- TokenGroup = Struct.new(:conjuction, :tokens, :messages) do
- def initialize(*)
- super
- end
-
- def to_query
- tokens.flat_map(&:to_query).join(' ').to_s
- end
-
- def push_token(field, value)
- if value.is_a? String
- tokens.push(Token.new(conjuction, field, value, messages))
- elsif value.is_a? Array
- group = TokenGroup.new(OR_CONJUCTION, [], messages)
- value.each do |val|
- group.push_token(field, val)
- end
- tokens.push group
-
- end
- end
-
- def next_token_id
- @token_count += 1
- end
- end
-
- attr_accessor :query, :current_conjuction, :token_count
- attr_reader :db
-
- def initialize(db:)
- @db = db
- @query = []
- @current_conjuction = AND_CONJUCTION
- @token_count = 0
- end
-
- def or
- @current_conjuction = OR_CONJUCTION
- self
- end
-
- def and
- @current_conjuction = AND_CONJUCTION
- self
- end
-
- def filter(params)
- case params
- when String
- add_filter_from_string(params)
- when Hash
- add_filter_from_hash(params)
- end
-
- self
- end
-
- def each
- db.search_messages(query_string).each do |msg|
- yield(Message.new(msg: msg))
- end
- end
-
- def add_filter_from_string(string)
- @query << Token.new(current_conjuction, :direct, string, self)
- end
-
- def add_filter_from_hash(hash)
- group = TokenGroup.new(current_conjuction, [], self)
- hash.each do |key, value|
- group.push_token(key, value)
- end
- @query << group
- end
-
- def query_string
- query.map(&:to_query).join(' ')
- end
-
- def next_token_id
- @token_count += 1
- end
- end
-end
diff --git a/lib/some/ruleset.rb b/lib/some/ruleset.rb
deleted file mode 100644
index 6df1eff..0000000
--- a/lib/some/ruleset.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-module Some
- RuleSet = Struct.new(:name, :rule) do
- def messages
- Messages.new(db: Some.db)
- end
-
- def run
- instance_eval(&rule)
- end
- end
-end