dynarex 0.7.7 → 0.7.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/dynarex.rb +12 -11
  2. metadata +1 -1
@@ -88,11 +88,11 @@ EOF
88
88
  i = XPath.match(@doc.root, 'records/*/attribute::id').max_by(&:value).to_s.to_i
89
89
  t = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
90
90
  lines = buffer.split(/\r?\n|\r(?!\n)/).map {|x|x.match(/#{t}/).captures}
91
- fields = @format_mask.to_s.scan(/\[!(\w+)\]/).flatten.map(&:to_sym)
91
+
92
92
  a = lines.map do|x|
93
93
  created = Time.now.to_s
94
94
 
95
- h = Hash[fields.zip(x)]
95
+ h = Hash[@fields.zip(x)]
96
96
  [h[@default_key.to_s], {id: '', created: created, last_modified: '', body: h}]
97
97
  end
98
98
 
@@ -139,11 +139,10 @@ EOF
139
139
 
140
140
  def create_from_line(line)
141
141
  t = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
142
- fields = @format_mask.to_s.scan(/\[!(\w+)\]/).flatten.map(&:to_sym)
143
142
  line.match(/#{t}/).captures
144
143
 
145
144
  a = line.match(/#{t}/).captures
146
- h = Hash[fields.zip(a)]
145
+ h = Hash[@fields.zip(a)]
147
146
  create h
148
147
  self
149
148
  end
@@ -193,8 +192,9 @@ EOF
193
192
  end
194
193
 
195
194
  def capture_fields(params)
196
- fields = @fields.clone
195
+ fields = Hash[@fields.map {|x| [x,nil]}]
197
196
  fields.keys.each {|key| fields[key] = params[key] if params.has_key? key}
197
+ puts 'fields : ' + fields.inspect
198
198
  fields
199
199
  end
200
200
 
@@ -251,10 +251,10 @@ EOF
251
251
  end
252
252
 
253
253
  def attach_record_methods()
254
- @fields.keys.each do |field|
254
+ @fields.each do |field|
255
255
  self.instance_eval(
256
256
  %Q(def find_by_#{field}(s)
257
- Hash[@fields.keys.zip(XPath.match(@doc.root, "records/*[#{field}='\#{s}']/*/text()").map &:to_s)]
257
+ Hash[@fields.zip(XPath.match(@doc.root, "records/*[#{field}='\#{s}']/*/text()").map &:to_s)]
258
258
  end))
259
259
  end
260
260
  end
@@ -277,15 +277,15 @@ end))
277
277
  @default_key = XPath.first(@doc.root, 'summary/default_key/text()')
278
278
  @format_mask = XPath.first(@doc.root, 'summary/format_mask/text()')
279
279
 
280
- #@fields = @format_mask.to_s.scan(/\[!(\w+)\]/).flatten.map(&:to_sym) if @format_mask
280
+ @fields = @format_mask.to_s.scan(/\[!(\w+)\]/).flatten.map(&:to_sym) if @format_mask
281
281
 
282
282
  if @schema then
283
283
  @record_name, raw_fields = @schema.match(/(\w+)\(([^\)]+)/).captures
284
- @fields = Hash[raw_fields.split(',').map{|x| [x.strip.to_sym, nil]}] unless @fields
284
+ @fields = raw_fields.split(',').map{|x| x.strip.to_sym} unless @fields
285
285
  end
286
286
 
287
287
  if @fields then
288
- @default_key = @fields.keys[0] unless @default_key
288
+ @default_key = @fields[0] unless @default_key
289
289
  # load the record query handler methods
290
290
  attach_record_methods
291
291
  end
@@ -336,7 +336,8 @@ end))
336
336
  r[node.name.to_s.to_sym] = node.text.to_s
337
337
  r
338
338
  end
339
- [body[@default_key.to_s],{id: id, created: created, last_modified: \
339
+ puts 'default key : ' + @default_key
340
+ [body[@default_key],{id: id, created: created, last_modified: \
340
341
  last_modified, body: body}]
341
342
  end
342
343
  Hash[*ah.flatten]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.7
4
+ version: 0.7.8
5
5
  platform: ruby
6
6
  authors: []
7
7