From 2fb033d8406b8e41949c809b39309efd47b31f2a Mon Sep 17 00:00:00 2001 From: Eric Budd Date: Fri, 26 Jan 2018 00:59:23 -0500 Subject: [PATCH] Adding corpus functionality --- iris.rb | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/iris.rb b/iris.rb index 1270487..00973c8 100644 --- a/iris.rb +++ b/iris.rb @@ -32,8 +32,8 @@ class Config return @@loaded_config = JSON.load(filepath) end - def self.load_corpus - @@message_corpus ||= (`ls /home/**/.iris.config.json`).split("\n") + def self.find_files + @@message_corpus ||= (`ls /home/**/.iris.messages`).split("\n") end end @@ -56,6 +56,30 @@ class IrisFile new_message end end + + def self.write_corpus(corpus) + File.write(Config::MESSAGE_FILE, corpus) + end +end + +class Corpus + def self.load + @@corpus = Config.find_files.map { |filepath| IrisFile.load_messages(filepath) }.flatten.sort_by(&:timestamp) + @@topics = @@corpus.select{ |m| m.parent == nil } + @@my_corpus = IrisFile.load_messages + end + + def self.all + @@corpus + end + + def self.topics + @@topics + end + + def self.mine + @@my_corpus + end end class Message @@ -99,6 +123,14 @@ class Message @errors.empty? end + def save! + new_corpus = Corpus.mine << self + p new_corpus + p new_corpus.to_json + IrisFile.write_corpus(new_corpus.to_json) + Corpus.load + end + def hash(payload = nil) payload ||= unconfirmed_payload.to_json Base64.encode64(Digest::SHA1.digest(payload)) @@ -108,7 +140,8 @@ class Message parent.nil? end - def to_json + def to_json(*args) + p args { hash: hash, edit_hash: edit_hash, @@ -126,3 +159,6 @@ class Message end end +Corpus.load +puts "#{Config::AUTHOR}>" +