arii 1.2.2 → 1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29034e712942cd799e3b863e318227bbe8705bfb
4
- data.tar.gz: d0497fc1f4a3273a4d15d70f1b928a26449a7d3a
3
+ metadata.gz: 0aeddaad7f72f8ae830b47255985541799513c79
4
+ data.tar.gz: 622c5fc983028b63dea20b020b66dbe903bb12eb
5
5
  SHA512:
6
- metadata.gz: 38b0c85405e47d5d87baccc6183bc2044d9fcc4f1369fd098e60bb3719750f45556ddb11b1f74faf67b2463e447c3328ce1b932a00e20f1d43796ed867e24b84
7
- data.tar.gz: de273e5aa0777e7980be1603ba7abb14f2d9d11ae4f619d10617b2c3b3ed7ec1acc3b54251bf41c8bfa1ab70f3e7e1706cf7cc0419321f88ca9cdb5c26dcaad7
6
+ metadata.gz: 482d917d1166424bc35e9093b6cb881da7de9e9050e27ae44791238a7c9820053ff1984d24cc17cd80ed07ae89c3bd93b31b6f9c609b52498bef4c23fcb744a5
7
+ data.tar.gz: 7b88b6b0626c160f7f7eb50ba335a4523ff8109b096e0f263d23f8d7dc3724ece018a17803503620443813aa2b017eee85079fe9b7c99608782f3f93e7747a4c
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.rbc
3
3
  .bundle
4
4
  .config
5
+ .idea
5
6
  coverage
6
7
  InstalledFiles
7
8
  lib/bundler/man
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Pedro Lopes
1
+ Copyright (c) 2015 Pedro Lopes for ARiiP http://ariip.com
2
2
 
3
3
  MIT License
4
4
 
data/arii.gemspec CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_development_dependency "bundler", "~> 1.5"
21
- spec.add_development_dependency "rake", '~> 0'
21
+ spec.add_development_dependency "rake"
22
22
 
23
23
  spec.add_runtime_dependency 'rest-client', '~> 0'
24
24
  spec.add_runtime_dependency 'nokogiri'
25
25
  spec.add_runtime_dependency 'rubyXL'
26
- spec.add_runtime_dependency 'spreadsheet', '~> 0'
26
+ spec.add_runtime_dependency 'spreadsheet'
27
27
  spec.add_runtime_dependency 'jsonpath', '~> 0'
28
28
  end
data/lib/arii/agent.rb CHANGED
@@ -83,7 +83,7 @@ module ARII
83
83
 
84
84
  @checkup[:templates] = @d.templates.uniq
85
85
  rescue Exception => e
86
- ARII::Config.log.error(self.class.name) { "Detection error: #{e}" }
86
+ ARII::Config.log.error(self.class.name) { "Detection error: #{e}\n\t#{e.backtrace}" }
87
87
  end
88
88
 
89
89
  begin
data/lib/arii/cashier.rb CHANGED
@@ -18,8 +18,9 @@ module ARII
18
18
  #ARII::Config.log.info(self.class.name) {"Verifying\n\taccess token: #{ARII::Config.access_token}\n\thost: #{ARII::Config.host}\n\tcache: #{cache}\n\tagent: #{agent}\n\tpayload: #{payload}\n\tseed: #{seed}"}
19
19
  begin
20
20
  response = RestClient.post "#{ARII::Config.host}fluxcapacitor/verify.json", {:access_token => ARII::Config.access_token, :agent => agent[:identifier], :cache => cache, :payload => payload, :seed => seed}
21
+
21
22
  rescue Exception => e
22
- ARII::Config.log.error(self.class.name) { "#{e}" }
23
+ ARII::Config.log.error(self.class.name) { "Cache verification error: #{e}\n#{e.backtrace}" }
23
24
  response = {:status => 400, :error => e}
24
25
  end
25
26
  response
data/lib/arii/client.rb CHANGED
@@ -9,7 +9,7 @@ module ARII
9
9
  def initialize config, log
10
10
  begin
11
11
  @config = config
12
- ARII::Config.set_access_token config[:server][:api_key]
12
+ ARII::Config.set_access_token config[:server][:access_token]
13
13
  ARII::Config.set_host config[:server][:host]
14
14
  ARII::Config.set_log log
15
15
 
@@ -0,0 +1,155 @@
1
+ require 'rubyXL'
2
+ require 'spreadsheet'
3
+ require 'open-uri'
4
+
5
+ module ARII
6
+
7
+ ##
8
+ # = ExcelDetector
9
+ #
10
+ # Detect changes in excel files .
11
+ #
12
+ class ExcelDetector < Detector
13
+
14
+ public
15
+ ##
16
+ # == Detect the changes
17
+ #
18
+ def detect object
19
+
20
+ ARII::Config.log.debug(self.class.name) { "Monitoring #{object[:uri]}" }
21
+
22
+ # update headers default behaviour
23
+ begin
24
+ if object[:headers] == ''
25
+ object[:headers] = 0
26
+ end
27
+ rescue Exception => e
28
+ ARII::Config.log.error(self.class.name) { "Processing error on errors: #{e}" }
29
+ end
30
+
31
+
32
+
33
+ # different gems and implementation for XLSX and XLS
34
+ if object[:uri].end_with? 'xlsx'
35
+ ARII::Config.log.debug(self.class.name) { "Loading RubyXL for #{object[:uri]}" }
36
+ book = RubyXL::Parser.parse(open(object[:uri]))
37
+
38
+
39
+ begin
40
+ if object[:sheet] != ''
41
+ sheet = book[object[:sheet]]
42
+ else
43
+ sheet = book[0]
44
+ end
45
+ rescue Exception => e
46
+ ARII::Config.log.error(self.class.name) { "Processing error on sheet selection: #{e}" }
47
+ end
48
+
49
+ ARII::Config.log.debug(self.class.name) { "Initiating data extraction" }
50
+ sheet.extract_data.drop(object[:headers].to_i).each do |row|
51
+
52
+
53
+ begin
54
+ unless object[:cache].nil?
55
+ @response = Cashier.verify row[object[:cache].to_i], object, row, object[:seed]
56
+ else
57
+ @response = Cashier.verify row[0], object, row, object[:seed]
58
+ end
59
+ rescue Exception => e
60
+ ARII::Config.log.error(self.class.name) { "Processing error on cache verification: #{e}" }
61
+ end
62
+ begin
63
+
64
+ # Process ARIIcache response
65
+ @cache = JSON.parse(@response, {:symbolize_names => true})
66
+
67
+ unless @cache[:templates].nil? then
68
+ @cache[:templates].each do |t|
69
+ @templates.push t
70
+ end
71
+ end
72
+
73
+ # The actual processing
74
+ #
75
+ if @cache[:cache][:status] == 100 then
76
+ ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
77
+
78
+ payload = Hash.new
79
+
80
+ object[:selectors].each do |selector|
81
+ selector.each do |k, v|
82
+ payload[k] = row[v.to_i]
83
+ end
84
+ end
85
+
86
+ # add payload object to payloads list
87
+ @payloads.push payload
88
+ end
89
+
90
+ rescue Exception => e
91
+ ARII::Config.log.error(self.class.name) { "Processing error: #{e}\n#{e.backtrace}" }
92
+ end
93
+ end
94
+ end
95
+
96
+
97
+ if object[:uri].end_with? 'xls'
98
+ Spreadsheet.client_encoding = 'UTF-8'
99
+ book = Spreadsheet.open(open(object[:uri]))
100
+
101
+ if object[:sheet] != ''
102
+ sheet = book.worksheet [object[:sheet]]
103
+ else
104
+ sheet = book.worksheet 0
105
+ end
106
+
107
+
108
+
109
+ sheet.each object[:headers].to_i do |row|
110
+ unless object[:cache].nil?
111
+ @response = Cashier.verify row[object[:cache].to_i], object, row, object[:seed]
112
+ else
113
+ @response = Cashier.verify row[0], object, row, object[:seed]
114
+ end
115
+
116
+
117
+ begin
118
+
119
+ # Process ARIIcache response
120
+ @cache = JSON.parse(@response, {:symbolize_names => true})
121
+ unless @cache[:templates].nil? then
122
+ @cache[:templates].each do |t|
123
+ @templates.push t
124
+ end
125
+ end
126
+
127
+ # The actual processing
128
+ #
129
+ if @cache[:cache][:status] == 100 then
130
+ ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
131
+
132
+ payload = Hash.new
133
+
134
+ object[:selectors].each do |selector|
135
+ selector.each do |k, v|
136
+ payload[k] = row[v.to_i]
137
+ end
138
+ end
139
+
140
+ # add payload object to payloads list
141
+ @payloads.push payload
142
+ end
143
+
144
+ rescue Exception => e
145
+ ARII::Config.log.error(self.class.name) { "Processing error: #{e}\n#{e.backtrace}" }
146
+ end
147
+
148
+
149
+ end
150
+ end
151
+
152
+ @cache[:templates]
153
+ end
154
+ end
155
+ end
data/lib/arii/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ARII
2
- VERSION = "1.2.2"
2
+ VERSION = "1.5"
3
3
  end
data/lib/arii.rb CHANGED
@@ -3,6 +3,7 @@ require 'arii/cashier'
3
3
  require 'arii/helper'
4
4
  require 'arii/detector'
5
5
  require 'arii/csvdetector'
6
+ require 'arii/exceldetector'
6
7
  require 'arii/jsondetector'
7
8
  require 'arii/sqldetector'
8
9
  require 'arii/xmldetector'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arii
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: '1.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Lopes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-09 00:00:00.000000000 Z
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
@@ -84,14 +84,14 @@ dependencies:
84
84
  name: spreadsheet
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
@@ -130,6 +130,7 @@ files:
130
130
  - lib/arii/csvdetector.rb
131
131
  - lib/arii/csvseedreader.rb
132
132
  - lib/arii/detector.rb
133
+ - lib/arii/exceldetector.rb
133
134
  - lib/arii/helper.rb
134
135
  - lib/arii/jsondetector.rb
135
136
  - lib/arii/jsonseedreader.rb