From 351f7db3e73142a3bc224af94d3cd72357829af2 Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Fri, 22 May 2020 08:36:02 -0500 Subject: [PATCH] Begin sigil renames --- README.md | 3 +-- lib/pigeon.rb | 7 +++---- lib/pigeon/lexer.rb | 6 +++--- spec/pigeon/bundle_spec.rb | 8 ++++---- spec/pigeon/lexer_spec.rb | 12 ++++++------ spec/pigeon/local_identity_spec.rb | 2 +- spec/pigeon/message_spec.rb | 4 ++-- spec/pigeon/parser_spec.rb | 2 +- spec/pigeon/template_spec.rb | 4 ++-- 9 files changed, 23 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index e7b0a41..dba0c93 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,7 @@ See `kitchen_sink.sh` examples. # Current Status - - [ ] Enforce canonical header ordering: `author`, `prev`, `lipmaa`, `depth`, `kind`. - - [ ] Change `@`, `%`, `&` to `feed.`, `mesg.`, `blob.`, respectively. Better readability, easier onboarding, URL friendly. + - [ ] Change `@`, `%`, `&` to `feed.`, `text.`, `file.`, respectively. Better readability, easier onboarding, URL friendly. - [ ] Update Dev docs in protocol spec to reflect changes to `lipmaa` header. - [ ] Update spec document CLI usage examples to reflect API changes in 2020. - [ ] 100% class / module documentation diff --git a/lib/pigeon.rb b/lib/pigeon.rb index 9eb5f3e..061f390 100644 --- a/lib/pigeon.rb +++ b/lib/pigeon.rb @@ -44,12 +44,11 @@ module Pigeon # ^ Internal namespaces for PStore keys - BLOB_SIGIL = "&" - MESSAGE_SIGIL = "%" - IDENTITY_SIGIL = "@" + BLOB_SIGIL = "FILE." + MESSAGE_SIGIL = "TEXT." + IDENTITY_SIGIL = "TEXT." STRING_SIGIL = "\"" IDENTITY_FOOTER = ".ed25519" - BLOB_FOOTER = ".sha256" SIG_FOOTER = ".sig.ed25519" # Error messages diff --git a/lib/pigeon/lexer.rb b/lib/pigeon/lexer.rb index 688707f..145630d 100644 --- a/lib/pigeon/lexer.rb +++ b/lib/pigeon/lexer.rb @@ -58,9 +58,9 @@ module Pigeon # TODO: Create regexes using string and Regexp.new() for cleaner regexes. NUMERIC = /\d{1,7}/ NULL_VALUE = /NONE/ - FEED_VALUE = /@.{52}\.ed25519/ - MESG_VALUE = /%.{52}\.sha256/ - BLOB_VALUE = /&.{52}\.sha256/ + FEED_VALUE = /FEED.{52}/ + MESG_VALUE = /TEXT.{52}/ + BLOB_VALUE = /FILE.{52}/ STRG_VALUE = /".{1,128}"/ # If you need other characters (but not spaces) submit an issue. ALPHANUMERICISH = /[a-zA-Z0-9_\-=\.\@\&]{1,90}/ diff --git a/spec/pigeon/bundle_spec.rb b/spec/pigeon/bundle_spec.rb index 91ece1c..58bd8cc 100644 --- a/spec/pigeon/bundle_spec.rb +++ b/spec/pigeon/bundle_spec.rb @@ -40,7 +40,7 @@ RSpec.describe Pigeon::Message do it "does not ingest messages from blocked peers" do db.reset_database - antagonist = "@YDVX7JWTVNRFEVYC8E8DS9MVWW9KB66F1XQYMNB2FQ6QBPXKAQX0.ed25519" + antagonist = "TEXT.YDVX7JWTVNRFEVYC8E8DS9MVWW9KB66F1XQYMNB2FQ6QBPXKAQX0.ed25519" db.block_peer(antagonist) db.import_bundle(BLOCKED_PEER_FIXTURE_PATH) expect(db.all_messages.count).to eq(0) @@ -49,9 +49,9 @@ RSpec.describe Pigeon::Message do it "ingests a bundle's blobs" do db.reset_database blobs = [ - "&622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG.sha256", - "&FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG.sha256", - "&YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG.sha256", + "FILE.622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG", + "FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG", + "FILE.YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG", ] db.import_bundle(HAS_BLOB_PATH) expect(db.all_messages.count).to eq(3) diff --git a/spec/pigeon/lexer_spec.rb b/spec/pigeon/lexer_spec.rb index d178a61..e7a7004 100644 --- a/spec/pigeon/lexer_spec.rb +++ b/spec/pigeon/lexer_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" RSpec.describe Pigeon::Lexer do EXPECTED_TOKENS1 = [ - [:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 69], + [:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 69], [:DEPTH, 0, 77], [:KIND, "unit_test1", 93], [:LIPMAA, "NONE", 105], @@ -12,21 +12,21 @@ RSpec.describe Pigeon::Lexer do [:BODY_END, 127], [:SIGNATURE, "2BTX69F6E30BBDNQ0XTT20NCG8C0B393SGQSW5M00G8KF33CAE1YB1MPT760KSTRV2ZJCCNJ883JXEWTTTEEJ8JBHNWEJQFSZ035P0R.sig.ed25519", 253], [:MESSAGE_DELIM, 254], - [:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 323], + [:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 323], [:DEPTH, 1, 331], [:KIND, "unit_test2", 347], [:LIPMAA, "NONE", 359], - [:PREV, "%RW61BRVRAAM31RFPQ8W6MTYBN840Y898MQ2GTDRSMQES84RPJKHG.sha256", 425], + [:PREV, "TEXT.RW61BRVRAAM31RFPQ8W6MTYBN840Y898MQ2GTDRSMQES84RPJKHG.sha256", 425], [:HEADER_END, 426], [:BODY_ENTRY, "bar", "\"baz\"", 436], [:BODY_END, 437], [:SIGNATURE, "TXC15FZZVK30Q5ZRERFR9VXAJ8KKE58ZGF1JEBNETJN1MHN9EGRQJP7PX99NBZMX177XZWE3M2PCPPF4VBN4J93W2H5FTNJ7K7VG818.sig.ed25519", 563], [:MESSAGE_DELIM, 564], - [:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 633], + [:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 633], [:DEPTH, 2, 641], [:KIND, "unit_test3", 657], [:LIPMAA, "NONE", 669], - [:PREV, "%CSX0CDPY96DGTGT9V0TNZJ4S84JTSK4AYNE193VXF8AH9ZJHT82G.sha256", 735], + [:PREV, "TEXT.CSX0CDPY96DGTGT9V0TNZJ4S84JTSK4AYNE193VXF8AH9ZJHT82G.sha256", 735], [:HEADER_END, 736], [:BODY_ENTRY, "cats", "\"meow\"", 748], [:BODY_END, 749], @@ -103,7 +103,7 @@ RSpec.describe Pigeon::Lexer do 8 => "Parse error at 126. Double carriage return not found.", } (0..8).to_a.map do |n| - t = MESSAGE_LINES.dup.insert(n, "@@@").join("\n") + t = MESSAGE_LINES.dup.insert(n, "TEXT.@@").join("\n") emsg = err_map.fetch(n) expect { Pigeon::Lexer.tokenize(t) }.to raise_error(e, emsg) end diff --git a/spec/pigeon/local_identity_spec.rb b/spec/pigeon/local_identity_spec.rb index b70336c..d75bdce 100644 --- a/spec/pigeon/local_identity_spec.rb +++ b/spec/pigeon/local_identity_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Pigeon::LocalIdentity do end it "generates a pair from a seed" do - x = "@XSZY1ME6QMA5BBSJ8QSDJCSG6EVDTCKYNMV221SB7B2NZR5K09J0.ed25519" + x = "TEXT.XSZY1ME6QMA5BBSJ8QSDJCSG6EVDTCKYNMV221SB7B2NZR5K09J0.ed25519" expect(kp.multihash).to eq(x) y = "2PRTG7F13HWF1HPW9FF9NDSYGSQS5VXQ2WMZY0A510J64AE9G840" expect(kp.private_key).to eq(y) diff --git a/spec/pigeon/message_spec.rb b/spec/pigeon/message_spec.rb index 52a0dd0..1f14a2f 100644 --- a/spec/pigeon/message_spec.rb +++ b/spec/pigeon/message_spec.rb @@ -132,11 +132,11 @@ RSpec.describe Pigeon::Message do it "crashes on forged fields" do tokens = [ - [:AUTHOR, "@DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"], + [:AUTHOR, "FEED.G1YEXWJXCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHS4S7EP4"], [:KIND, "invalid"], [:PREV, "NONE"], [:DEPTH, 10], - [:LIPMAA, "%4PE7S4XCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHSJWXEY1G.sha256"], + [:LIPMAA, "TEXT.4PE7S4XCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHSJWXEY1G"], [:HEADER_END], [:BODY_ENTRY, "duplicate", "This key is a duplicate."], [:SIGNATURE, "DN7yPTE-m433ND3jBL4oM23XGxBKafjq0Dp9ArBQa_TIGU7DmCxTumieuPBN-NKxlx_0N7-c5zjLb5XXVHYPCQ==.sig.ed25519"], diff --git a/spec/pigeon/parser_spec.rb b/spec/pigeon/parser_spec.rb index 060ad6e..35a6e7a 100644 --- a/spec/pigeon/parser_spec.rb +++ b/spec/pigeon/parser_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Pigeon::Lexer do let(:tokens) { Pigeon::Lexer.tokenize(example_bundle) } BAD_TOKENS = [ - [:AUTHOR, "@DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"], + [:AUTHOR, "TEXT.DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"], [:KIND, "invalid"], [:PREV, "NONE"], [:DEPTH, 0], diff --git a/spec/pigeon/template_spec.rb b/spec/pigeon/template_spec.rb index ddc892e..bf900b5 100644 --- a/spec/pigeon/template_spec.rb +++ b/spec/pigeon/template_spec.rb @@ -11,7 +11,7 @@ RSpec.describe Pigeon::MessageSerializer do "\nprev NONE", "\n\nfoo:\"bar\"\n\n", ].join("") - BOTTOM_HALF = "signature XYZ.sig.sha256" + BOTTOM_HALF = "signature XYZ" EXPECTED_DRAFT = TOP_HALF + BOTTOM_HALF class FakeLocalIdentity @@ -27,7 +27,7 @@ RSpec.describe Pigeon::MessageSerializer do kind: "FAKE_KIND", depth: 23, prev: nil, - signature: "XYZ.sig.sha256", + signature: "XYZ", lipmaa: 22, }.values message = MessageShim.new(*params)