addressbook_txt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -0
- data/lib/addressbook_txt.rb +90 -0
- metadata +87 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 6be7f563f146ed0557a69e8f3ff7b889b258fef3
|
|
4
|
+
data.tar.gz: 2e20375e9744639159d0369d6ad26238f379ca14
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 47c17b110eab42a2bc2200e03d00be607b16e0584a04c6c82d5dc0bd7fc6a470d6c746ecc6cca3fd68b23d8f400f0e00e56ea1439e6caf99c6c9c6518c8fdc86
|
|
7
|
+
data.tar.gz: 14abba25611b670e35843a0682e7203a61446ecce55be670a7ba9c5807b106e888ae785ed0e53d553835a4c0188a9abe785575710d51a846be4f31dddcef344a
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data.tar.gz.sig
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��a *d���'ͺ^x��� <,j�Ѷ�ފ�M��`������JL��[R������J��M��P�cQ���͡e���H��/� �fԌ�"����W�o?$�PS�F�7+���OR����F3\�d�;s�|�|��U�&^�ٻN�c*~�n��e�k0 #4$Hw�"7q��s�s�)��"0��Nj`k,>%q"+��@�V����.f����>(�5s�ƯǶ5�.��7M�Q�#�"n[W����fu��7�
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# file: addressbook_txt.rb
|
|
4
|
+
|
|
5
|
+
require 'date'
|
|
6
|
+
require 'dynarex'
|
|
7
|
+
require 'fileutils'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# The AddressbookTxt gem can:
|
|
12
|
+
#
|
|
13
|
+
# [x] create a new addressbook.txt file
|
|
14
|
+
# [x] read an existing addressbook.txt file
|
|
15
|
+
# [ ] search each entry using a keyword
|
|
16
|
+
# [ ] archive address entries on an annual basis
|
|
17
|
+
# [ ] search the archive using a keyword
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class AddressbookTxt
|
|
22
|
+
|
|
23
|
+
attr_reader :to_s
|
|
24
|
+
|
|
25
|
+
def initialize(filename='addressbook.txt', path: '.')
|
|
26
|
+
|
|
27
|
+
@filename, @path = filename, path
|
|
28
|
+
|
|
29
|
+
fpath = File.join(path, filename)
|
|
30
|
+
|
|
31
|
+
if File.exists?(fpath) then
|
|
32
|
+
|
|
33
|
+
@dx = import_to_dx(File.read(fpath))
|
|
34
|
+
|
|
35
|
+
else
|
|
36
|
+
@dx = new_dx
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def dx()
|
|
41
|
+
@dx
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def save(filename=@filename)
|
|
45
|
+
|
|
46
|
+
s = File.basename(filename) + "\n" + dx_to_s(@dx).lines[1..-1].join
|
|
47
|
+
File.write File.join(@path, filename), s
|
|
48
|
+
@dx.save File.join(@path, filename.sub(/\.txt$/,'.xml'))
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def to_s()
|
|
53
|
+
dx_to_s @dx
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
private
|
|
57
|
+
|
|
58
|
+
def dx_to_s(dx)
|
|
59
|
+
|
|
60
|
+
title = File.basename(@filename)
|
|
61
|
+
title + "\n" + "=" * title.length + "\n\n%s\n\n" % [dx.to_s(header: false)]
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def import_to_dx(s)
|
|
66
|
+
|
|
67
|
+
a = s.lines
|
|
68
|
+
# Remove the heading
|
|
69
|
+
a.shift 2
|
|
70
|
+
|
|
71
|
+
# add the sectionx raw document type
|
|
72
|
+
a.unshift '--#'
|
|
73
|
+
|
|
74
|
+
dx = new_dx()
|
|
75
|
+
dx.import(a.join)
|
|
76
|
+
|
|
77
|
+
return dx
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def new_dx()
|
|
81
|
+
|
|
82
|
+
dx = Dynarex.new 'addresses[title]/address(x)'
|
|
83
|
+
dx.title = "Address Book"
|
|
84
|
+
|
|
85
|
+
return dx
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: addressbook_txt
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- James Robertson
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain:
|
|
11
|
+
- |
|
|
12
|
+
-----BEGIN CERTIFICATE-----
|
|
13
|
+
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
|
|
14
|
+
YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
|
|
15
|
+
8ixkARkWAmV1MB4XDTE2MDcyMzE4NDA1MFoXDTE3MDcyMzE4NDA1MFowSDESMBAG
|
|
16
|
+
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
|
17
|
+
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
18
|
+
ggEBAOfl0NLEp2LZEt8GehQgBZQeyt8x28su6U0wVcOVtqPz5G3Hjw93VJPQxgg8
|
|
19
|
+
81kO6HaggYIR/xRMahdrgjnWOE2SLt3nH51EYC7R974qnK6+PIZ/paDrIEXFwPqZ
|
|
20
|
+
URC1afHGN8nZsGg5NJShTnw3fqGhGf32qti0IVun5dQYAG25YXrdjPG3ti4ggVGb
|
|
21
|
+
axZhyECF2LbffGPCT22FJbf17qtjs8GJ09r5hbhc8iQ+kdidXd+evrPht0lFufHD
|
|
22
|
+
djqalAwaziSDc7JN5awkLAhM8Vg+fvpqDoi4Hpu4HbrFnkNyk2VhGA+1+Ogrut6G
|
|
23
|
+
kgmZeO3eKyYf0ltREvYPfWpHXNsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQU3GzU/QYGSzj8bShRkgIBuKrmMWEwJgYDVR0RBB8w
|
|
25
|
+
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEA4qZuVT7N
|
|
27
|
+
BEZdduP5y+RGM7zV7RLUefAU2KjUlKunIrkkoD00aNYQpSIVB8mukLWTE+lrEG/E
|
|
28
|
+
5RWHa/+pxj2GMFX26PfdFPNv3y/nPGln1unaZ+dqJDfE6htymuqPIjGaijHxnTiU
|
|
29
|
+
GmgMCuPdj56xclWD/AayTrmEaTnVgcWvoEFYOD8ViIgRygRij1LZFlSk5Mm5aB9L
|
|
30
|
+
glRQyydjD0l+XfoNIRZHUyLPgQeiYgVXGlThDB998WoiJLEhExAyshydgWFZgaOx
|
|
31
|
+
jBisKlK4NU+/BuE1DGdPIKLX9x3RMlzMmNh+RnQRSO1vZBS7CMIcchEq+TEMHNiW
|
|
32
|
+
0cWS80GYRylyNQ==
|
|
33
|
+
-----END CERTIFICATE-----
|
|
34
|
+
date: 2016-07-23 00:00:00.000000000 Z
|
|
35
|
+
dependencies:
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: dynarex
|
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
|
39
|
+
requirements:
|
|
40
|
+
- - "~>"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '1.7'
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 1.7.12
|
|
46
|
+
type: :runtime
|
|
47
|
+
prerelease: false
|
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - "~>"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '1.7'
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: 1.7.12
|
|
56
|
+
description:
|
|
57
|
+
email: james@r0bertson.co.uk
|
|
58
|
+
executables: []
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- lib/addressbook_txt.rb
|
|
63
|
+
homepage: https://github.com/jrobertson/addressbook_txt
|
|
64
|
+
licenses:
|
|
65
|
+
- MIT
|
|
66
|
+
metadata: {}
|
|
67
|
+
post_install_message:
|
|
68
|
+
rdoc_options: []
|
|
69
|
+
require_paths:
|
|
70
|
+
- lib
|
|
71
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '0'
|
|
81
|
+
requirements: []
|
|
82
|
+
rubyforge_project:
|
|
83
|
+
rubygems_version: 2.5.1
|
|
84
|
+
signing_key:
|
|
85
|
+
specification_version: 4
|
|
86
|
+
summary: Stores address book entries in a plain text file
|
|
87
|
+
test_files: []
|
metadata.gz.sig
ADDED
|
Binary file
|