excel_functions 0.0.3 → 0.0.4
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 +15 -0
- data/lib/excel_functions/lookup.rb +2 -3
- data/lib/excel_functions/version.rb +1 -1
- data/spec/excelfunctions_spec.rb +15 -6
- metadata +5 -14
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YjVlMWMzZTlkYzhhYjM4MTMwYjI2MDQ2OWY5ODQ1ZDQ5ZTNmZDg4Yw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjhiYTNlNzVmMmM0NTlkYjFmZDRmZDIyZGQ5NmY5NjA4N2EwZmM0Yw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTIzY2RiYjVkMjAwZWRjMjMyYWFlN2I4YjQ2NzJjOTFiNTYxY2MyZWM5ZTg3
|
10
|
+
NDk5MTAwMTFjMTRhNjE0ZTMxYjliNjUzMjk1MzY2MGU2YzM3OWZlY2FiNGMx
|
11
|
+
NjliNTE5YWE0NGI5ZTA1YmU0NmUyYzU4YTMzNGNiYzgyNDQ1ZWY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MWQ0MmIxMTU0YjVhYjJiNzExZDIzMjZmZjVlNWQzYjg5OTdhMjRhODY4Mjc2
|
14
|
+
ZjZlZjU4MDk1ODRiYzYxNDA1NzJkODg1OWQ3ZWUyZmY0ZDk3OGEwNGQzNTQ3
|
15
|
+
OTU0OTdkMWY5ODc0ZDBmN2M4ZDcxZmE3YTIzODNjMzNjNWM0ZGQ=
|
@@ -18,12 +18,11 @@ module ExcelFunctions
|
|
18
18
|
|
19
19
|
lookup_array = lookup_array.map{|arr| Array(arr)[0]}
|
20
20
|
|
21
|
-
|
22
|
-
raise "lookup_array must be sorted" unless lookup_array.sort == lookup_array #better way to check sorted?
|
23
|
-
|
24
21
|
index = lookup_array.find_index(value)
|
25
22
|
return output_array[index] if index
|
26
23
|
|
24
|
+
#raise only after exact check fails, we only need sorted for approx lookup
|
25
|
+
raise "lookup_array must be sorted" unless lookup_array.sort == lookup_array #better way to check sorted?
|
27
26
|
|
28
27
|
first_greater_index = lookup_array.find_index{|look| look > value} || lookup_array.count
|
29
28
|
less_than_index = first_greater_index - 1
|
data/spec/excelfunctions_spec.rb
CHANGED
@@ -15,26 +15,35 @@ describe Excel do
|
|
15
15
|
end
|
16
16
|
describe "Lookup" do
|
17
17
|
#should this be 3 it blocks?
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
tests = [
|
18
|
+
let(:input_arr){[0,0.05,0.1,0.15]}
|
19
|
+
let(:output_arr){["a","b","c","d"]}
|
20
|
+
let(:tests){[
|
22
21
|
[0, "a"],
|
23
22
|
[0.1, "c"],
|
24
23
|
[0.12, "c"],
|
25
24
|
[1, "d"],
|
26
25
|
[-1, nil]
|
27
|
-
]
|
26
|
+
]}
|
27
|
+
it "performs lookup correctly with 2 arrays" do
|
28
28
|
#2 arrays
|
29
29
|
tests.each do |(value, result)|
|
30
30
|
expect(Excel.lookup(value,input_arr, output_arr)).to be_eql(result)
|
31
31
|
end
|
32
|
+
end
|
33
|
+
it "performs lookup correctly with 1 array" do
|
32
34
|
#single array
|
33
35
|
tests.each do |(value, result)|
|
34
36
|
expect(Excel.lookup(value,input_arr.zip(output_arr))).to be_eql(result)
|
35
37
|
end
|
38
|
+
end
|
36
39
|
|
37
|
-
|
40
|
+
context "Unsorted arrays" do
|
41
|
+
it "raises error if unsorted and rough match" do
|
42
|
+
expect{Excel.lookup(0.11,input_arr.reverse,output_arr)}.to raise_error
|
43
|
+
end
|
44
|
+
it "doesnt raise error if unsorted but has exact match" do
|
45
|
+
expect{Excel.lookup(0.1,input_arr.reverse,output_arr)}.to_not raise_error
|
46
|
+
end
|
38
47
|
end
|
39
48
|
end
|
40
49
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excel_functions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Karthik T
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-03-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -81,28 +74,26 @@ files:
|
|
81
74
|
homepage: https://github.com/ktaragorn/excel_functions
|
82
75
|
licenses:
|
83
76
|
- MIT
|
77
|
+
metadata: {}
|
84
78
|
post_install_message:
|
85
79
|
rdoc_options: []
|
86
80
|
require_paths:
|
87
81
|
- lib
|
88
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
83
|
requirements:
|
91
84
|
- - ! '>='
|
92
85
|
- !ruby/object:Gem::Version
|
93
86
|
version: '0'
|
94
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
88
|
requirements:
|
97
89
|
- - ! '>='
|
98
90
|
- !ruby/object:Gem::Version
|
99
91
|
version: '0'
|
100
92
|
requirements: []
|
101
93
|
rubyforge_project:
|
102
|
-
rubygems_version:
|
94
|
+
rubygems_version: 2.0.5
|
103
95
|
signing_key:
|
104
|
-
specification_version:
|
96
|
+
specification_version: 4
|
105
97
|
summary: This gem can be used if you need to reverse engineer any excel spreadsheets.
|
106
98
|
test_files:
|
107
99
|
- spec/excelfunctions_spec.rb
|
108
|
-
has_rdoc:
|