arii 1.2.2 → 1.5

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: 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