md_edit 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 319a2c623cba863422eab20d2ae4f87b786a41b3
4
- data.tar.gz: 1e7522748700c17ef0cb3edca9ba081a3f0cb6fc
3
+ metadata.gz: a603ecea8eb808d83ab46c8895090773ae80b55d
4
+ data.tar.gz: 3efc018028a57e568736b4d5a9c6d53898775644
5
5
  SHA512:
6
- metadata.gz: d25a3fbceed14648e90a50dab0c176f8718d9701333026ac9c0023072de95766880865ea67500abd51c491e7b0e039cd39894577b74cb559e022f52348f7f865
7
- data.tar.gz: 6fdc5e5b379b444b9191cd0d543ca3152218999cd8f7c3c02a10702689b231e4c66bcbaef6bb99f324b7cd66e1d14b209d63ec2c85ace96bc44f05e4c2d46a09
6
+ metadata.gz: cbe24a4b553659916a1871d54578696d5ede3d370690bcd9df511d11884d5babb138951890b0addfda27a907881c5dfb52e3c1af5ba1469f38222cb929c5e44e
7
+ data.tar.gz: a86360f8b6331ddefbbd72ff93693abee0e7de2f644d67dc4ce6a060a2429b8b535bd3a0f498765e14f45c303d83817605938000684828d7efe7511d5ce78103
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/md_edit.rb CHANGED
@@ -9,22 +9,35 @@ require 'phrase_lookup'
9
9
 
10
10
  class MdEdit
11
11
 
12
+ attr_reader :sections
13
+
12
14
  # pass in an MD document
13
15
  #
14
- def initialize(s=nil)
16
+ def initialize(md)
15
17
 
16
- if s then
17
-
18
- parse s
19
-
20
- @h = @sections.keys.inject({}) do |r,x|
21
- r.merge(x.sub(/^#+ +/,'').downcase => 5 - x.count('#'))
22
- end
23
-
24
- @pl = PhraseLookup.new @h
25
-
18
+ s, @filename = if md.lines.length == 1 and File.exists? md then
19
+ [File.read(md), md]
20
+ else
21
+ md
26
22
  end
23
+
24
+ load_sections(s)
25
+
27
26
  end
27
+
28
+ def update(heading, value)
29
+
30
+ key = @sections.keys.grep(/#{heading.downcase}/i).first
31
+
32
+ old_value = @sections[key].flatten.join("\n\n")
33
+ @s.sub!(key + "\n\n" + old_value, value)
34
+ load_sections(@s)
35
+
36
+ save()
37
+
38
+ end
39
+
40
+ alias edit update
28
41
 
29
42
  def find(s)
30
43
  key = @sections.keys.grep(/#{s.downcase}/i).first
@@ -39,9 +52,29 @@ class MdEdit
39
52
 
40
53
  def to_h()
41
54
  @h
42
- end
55
+ end
56
+
57
+ def to_s()
58
+ @s
59
+ end
43
60
 
44
61
  private
62
+
63
+ def load_sections(raw_s)
64
+
65
+ # strip out any new lines gaps which are greater than 1
66
+ s = raw_s.strip.gsub(/\n\s*\n\s*\n\s*/,"\n\n")
67
+
68
+ @sections = parse s
69
+
70
+ @h = @sections.keys.inject({}) do |r,x|
71
+ r.merge(x.sub(/^#+ +/,'').downcase => 5 - x.count('#'))
72
+ end
73
+
74
+ @pl = PhraseLookup.new @h
75
+ @s = s
76
+
77
+ end
45
78
 
46
79
  def parse(s)
47
80
 
@@ -60,10 +93,14 @@ class MdEdit
60
93
  a3 = LineTree.new(a2.join).to_a
61
94
 
62
95
  h = {}
63
-
64
96
  a4 = scan a3, h
65
- @sections = h
66
97
 
98
+ return h
99
+
100
+ end
101
+
102
+ def save()
103
+ File.write @filename, @s if @filename
67
104
  end
68
105
 
69
106
  def scan(a, h={})
data.tar.gz.sig CHANGED
@@ -1 +1,2 @@
1
- ߨӮ���VZ��q.�[.|�XW*��SU�ͽB����T:��`�o�|����{(R$G�4O)�~s��Z��ʜ��Z�|��j]=S�b�m��Ӓ#��U�gE0�,����)��k������ޡ>b��o� �������>�䥇�ހo�Is��_Q5Np�0��0�M7��0��5�����SI��Q�i嘜;ך�{�$�3��Ʊ�(�8E�1���JqEc�-���;��H�ȯ��ǽ�@٬�
1
+ d61ɰ�
2
+ u����V<���~c�� slk6K��OF����
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: md_edit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  R5r1JjTBaaHOaqI14bIkwUSY5q1cO4Wl7HWly80kX2AD8o/tPHvyF9Tx3pBvaboU
32
32
  etnSPHbQwmBvFQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2017-12-17 00:00:00.000000000 Z
34
+ date: 2017-12-18 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: line-tree
metadata.gz.sig CHANGED
Binary file