dynarex-blog 0.7.2 → 0.7.3

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.
Files changed (2) hide show
  1. data/lib/dynarex-blog.rb +36 -7
  2. metadata +2 -2
@@ -30,6 +30,15 @@ class DynarexBlog
30
30
  end
31
31
 
32
32
  def create_entry(record={})
33
+
34
+ if record.has_key? :title then
35
+ lookup = '_entry_lookup.xml'
36
+ doc = Rexle.new File.open(@file_path + lookup,'r').read
37
+ if doc.element("records/entry[uri='#{format_uri(record[:title])}']") then
38
+ raise "err: create_entry: Duplicate title found"
39
+ end
40
+ end
41
+
33
42
  @hc_result.reset
34
43
  @id += 1
35
44
  # create a new record
@@ -65,7 +74,11 @@ class DynarexBlog
65
74
 
66
75
  def update(id, h)
67
76
 
77
+ puts '@current_looup ' + @current_lookup
78
+ puts 'id : ' + id.to_s
79
+
68
80
  lookup = Dynarex.new @file_path + @current_lookup
81
+ puts 'records : ' + lookup.records.inspect
69
82
  lookup_id = lookup.records[id][:id]
70
83
  file = lookup.records[id][:body][:file]
71
84
 
@@ -73,11 +86,10 @@ class DynarexBlog
73
86
 
74
87
  dynarex = Dynarex.new(@file_path + file)
75
88
  prev_tags = dynarex.record(id).tags
76
- cur_tags = h[:tags]
77
89
 
78
- if cur_tags.length > 0 then
90
+ if h[:tags] and h[:tags].length > 0 then
79
91
 
80
- a = cur_tags.split(/\s/)
92
+ a = h[:tags].split(/\s/)
81
93
 
82
94
  if prev_tags and prev_tags.length > 0 then
83
95
 
@@ -94,6 +106,8 @@ class DynarexBlog
94
106
 
95
107
  new_list.each {|tag| create_record(h, id, name=tag, type='tags') }
96
108
  dynarex.update(id, h)
109
+ puts 'dynarex : ' + dynarex.to_xml
110
+ puts 'saving: ' + @file_path + file
97
111
  dynarex.save
98
112
  end
99
113
 
@@ -101,7 +115,7 @@ class DynarexBlog
101
115
 
102
116
  @hc_lookup.write(@current_lookup) { Rexle.new File.open(@file_path + @current_lookup,'r').read }
103
117
 
104
- refresh_index if index_include? id
118
+ (puts "rebuilding index #@file_path} ... "; refresh_index) if index_include? id
105
119
 
106
120
  end
107
121
 
@@ -155,6 +169,15 @@ class DynarexBlog
155
169
  @entities.create.section({name: 'tags'}, id='tags')
156
170
  @entities.save @file_path + ENTITIES
157
171
  @lookup = new_lookup_file '_entry_lookup.xml'
172
+
173
+ # add the _404.xml
174
+ dynarex = Dynarex.new('entries/entry(id,file,year,month,uri)')
175
+ year, month = [:year, :month].map{|x| "%02d" % Time.now.method(x).call}
176
+ dynarex.create id: '1', file: '_4041.xml', year: year, month: month
177
+ dynarex.save '_404_lookup.xml'
178
+
179
+ Dynarex.new('entries/entry(title,body,tags,user)').save '_4041.xml'
180
+
158
181
  end
159
182
 
160
183
  def open(file_path='./')
@@ -252,7 +275,7 @@ class DynarexBlog
252
275
  lookup_id = lookup.records[id][:id]
253
276
 
254
277
  file = lookup.records[id][:body][:file]
255
- lookup.update(lookup_id, uri: h[:title].gsub(/\s/,'-')).save
278
+ lookup.update(lookup_id, uri: format_uri(h[:title])).save
256
279
 
257
280
  Dynarex.new(@file_path + file).update(id, h).save
258
281
  delete_cache_entry(lookup_filename, file)
@@ -271,6 +294,10 @@ class DynarexBlog
271
294
  @hc_lookup.delete(lookup_filename)
272
295
  end
273
296
 
297
+ def format_uri(s)
298
+ s.gsub(/\s/,'-')
299
+ end
300
+
274
301
  def reset_cache_entry(lookup_filename, file)
275
302
 
276
303
  @hc_entry_file.delete(file)
@@ -285,14 +312,15 @@ class DynarexBlog
285
312
  x1 = (number - 1) * 10
286
313
  x2 = x1 + 9
287
314
 
288
- lookup_a = doc.xpath('records/entry') do |entry|
315
+ lookup_a = doc.xpath('records/entry').map do |entry|
289
316
  %w(file id).map{|x| entry.text(x)}
290
317
  end
291
318
 
292
319
  threads = lookup_a.reverse[x1..x2].group_by(&:first).map do |filename,raw_ids|
293
320
  Thread.new do
294
321
  xpath = raw_ids.map{|x| "@id='%s'" % x[-1]}.join(' or ')
295
- Thread.current[:records] = Rexle.new(File.open(filename,'r').read)\
322
+
323
+ Thread.current[:records] = Rexle.new(File.open(@file_path + filename,'r').read)\
296
324
  .xpath("records/entry[#{xpath}]")
297
325
  end
298
326
  end
@@ -378,6 +406,7 @@ class DynarexBlog
378
406
  @hc_lookup_a.delete(lookup + '1')
379
407
 
380
408
  page = select_page(doc, 1)
409
+ puts 'page : ' + page.xml(pretty: true)
381
410
  @index.add page.element('records')
382
411
  @index.save
383
412
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex-blog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors: []
7
7
 
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2011-01-15 00:00:00 +00:00
12
+ date: 2011-02-06 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency