daengine 0.5.7 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,60 @@
1
+ module Daengine::TaxonomyParser
2
+
3
+ @@logger = nil
4
+ @error_msg = []
5
+
6
+ def self.logger=(some_logger)
7
+ @@logger = some_logger
8
+ self
9
+ end
10
+
11
+ def self.log(args)
12
+ @@logger.error(args) unless @@logger.blank?
13
+ end
14
+
15
+ def self.parse_taxonomy_file(file)
16
+ @error_msg=[]
17
+ time do
18
+ doc = Nokogiri::XML(file) { |config| config.strict }
19
+
20
+ TaxonomyTerm.purge! if doc.xpath('//taxonomy/facet')
21
+ doc.xpath('//taxonomy/facet').each do |i|
22
+ parse_taxonomy_term(i)
23
+ end
24
+ end
25
+ # rescue
26
+ # p "ERROR! Unable to parse / update taxonomy file! #{$!.backtrace.join('\n')}"
27
+ # Daengine.log($!.backtrace.join('\n'), "error")
28
+ end
29
+
30
+ def self.parse_taxonomy_term(entity)
31
+ category = TaxonomyTerm.new
32
+ category.label = entity.xpath('label').inner_html
33
+ category.term_id = entity.xpath('@id')
34
+ alternate_name = entity.xpath('altname/@type')
35
+ unless alternate_name.blank?
36
+ a_text = entity.xpath('altname').inner_html
37
+ category.term_type = {alternate_name[0].value => a_text}
38
+ end
39
+ entity.xpath('term').each do |j|
40
+ a_term = parse_taxonomy_term(j)
41
+ # a_term.parent_term = category
42
+ category.child_terms << a_term
43
+ end
44
+ # end
45
+ # begin
46
+ category.save!
47
+ # rescue Exception => e
48
+ #puts "--**Exception**-- #{e}"
49
+ # p "Failed to add record #{category.try(:label)}, #{category.try(:errors).try(:full_messages)}"
50
+ # end
51
+ category
52
+ end
53
+
54
+ def self.time
55
+ start = Time.now
56
+ yield
57
+ self.log "elapsed time was #{Time.now - start}"
58
+ end
59
+
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Daengine
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daengine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-10-02 00:00:00.000000000 Z
13
+ date: 2013-10-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -117,6 +117,7 @@ files:
117
117
  - lib/daengine/digital_asset_processor.rb
118
118
  - lib/daengine/engine.rb
119
119
  - lib/daengine/railtie.rb
120
+ - lib/daengine/taxonomy_parser.rb
120
121
  - lib/daengine/taxonomy_processor.rb
121
122
  - lib/daengine/teamsite_metadata_parser.rb
122
123
  - lib/daengine/version.rb