quandl_babelfish 0.0.2 → 0.0.3
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 +4 -4
- data/Gemfile +9 -0
- data/UPGRADE.md +7 -0
- data/lib/quandl/babelfish/cleaner.rb +1 -1
- data/lib/quandl/babelfish/data.rb +25 -10
- data/lib/quandl/babelfish/version.rb +1 -1
- data/lib/quandl/babelfish.rb +2 -0
- data/quandl_babelfish.gemspec +3 -1
- data/spec/lib/quandl/babelfish/cleaner_spec.rb +7 -5
- data/spec/lib/quandl/babelfish/data_spec.rb +12 -26
- data/spec/lib/quandl/babelfish_spec.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1debf3ff5b2fc7468dc099a86ba4544eb44e771
|
4
|
+
data.tar.gz: ec8f27f490e9bd95558097bee0c463de870dd423
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e659bdbcca4591004cb0e5c7c906a6f27cb0d467000d610bfe14740142b3dcef46699e93d6dd056dd671cb4e486bfb52bd18ea6bf7d2cac923d42c003083b53
|
7
|
+
data.tar.gz: 7e490b25c6e5c8c7b28b64b918fffc31ae0a5ae9540101eaf108f25bdf5967fc570b2b589eeaea4b87d03cff164394392fd1b1fae09c7579e13fad9ec941fa42
|
data/Gemfile
CHANGED
@@ -1,2 +1,11 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
gemspec
|
3
|
+
|
4
|
+
|
5
|
+
use_local_gems = ENV['BUNDLE_LOCAL_GEMS'] == "true" && ENV['BUNDLE_LOCAL_DIR']
|
6
|
+
local_gem_dir = ENV['BUNDLE_LOCAL_DIR']
|
7
|
+
|
8
|
+
if use_local_gems
|
9
|
+
gem 'quandl_data', path: "#{local_gem_dir}/quandl/data"
|
10
|
+
gem 'quandl_operation', path: "#{local_gem_dir}/quandl/operation"
|
11
|
+
end
|
data/UPGRADE.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 0.0.3
|
2
|
+
|
3
|
+
* Add Quandl::Data as a add_runtime_dependency
|
4
|
+
* refactor Babelfish::Data to inherit from Quandl::Data
|
5
|
+
* refactor specs
|
6
|
+
|
7
|
+
|
1
8
|
## 0.0.1
|
2
9
|
|
3
10
|
* replace Cleaner.process return clean_array, header with Quandl::Babelfish::Data.new( clean_array, headers: header )
|
@@ -1,19 +1,34 @@
|
|
1
1
|
module Quandl
|
2
2
|
module Babelfish
|
3
3
|
|
4
|
-
class Data <
|
4
|
+
class Data < Quandl::Data
|
5
5
|
|
6
|
-
def initialize(*args
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
@headers = options[:headers] if options && options.has_key?(:headers) && options[:headers].is_a?(Array)
|
11
|
-
# onwards and upwards
|
12
|
-
super(*args, &block)
|
6
|
+
def initialize(*args)
|
7
|
+
super(*args)
|
8
|
+
# clean data on initialize
|
9
|
+
self.data_array
|
13
10
|
end
|
14
11
|
|
15
|
-
|
16
|
-
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def clean(data)
|
16
|
+
# skip cleaning if already clean
|
17
|
+
return data if data.kind_of?(Array) && cleaned?
|
18
|
+
# Quandl::Data is already clean, but to avoid errors extract internal array
|
19
|
+
return data.data_array if data.kind_of?(Quandl::Data)
|
20
|
+
# Return empty array if given empty string, nil, etc.
|
21
|
+
return [] if data.blank?
|
22
|
+
# Hash needs conversion to array
|
23
|
+
data = Quandl::Data::Format.hash_to_array( data )
|
24
|
+
# String needs conversion to array
|
25
|
+
data = Quandl::Data::Format.csv_to_array( data )
|
26
|
+
# Babelfish cleaner
|
27
|
+
data, self.headers = Quandl::Babelfish.clean(data)
|
28
|
+
# mark data as clean
|
29
|
+
cleaned!
|
30
|
+
# return data
|
31
|
+
data
|
17
32
|
end
|
18
33
|
|
19
34
|
end
|
data/lib/quandl/babelfish.rb
CHANGED
data/quandl_babelfish.gemspec
CHANGED
@@ -15,7 +15,9 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
17
|
s.require_paths = ["lib"]
|
18
|
-
|
18
|
+
|
19
|
+
s.add_runtime_dependency "quandl_data", "~> 1.3"
|
20
|
+
|
19
21
|
s.add_development_dependency "rspec", "~> 2.13"
|
20
22
|
s.add_development_dependency "pry"
|
21
23
|
end
|
@@ -5,7 +5,9 @@ describe Cleaner do
|
|
5
5
|
|
6
6
|
let(:input){ [] }
|
7
7
|
let(:output){ Cleaner.process(input) }
|
8
|
-
|
8
|
+
let(:data){ output[0] }
|
9
|
+
let(:headers){ output[1] }
|
10
|
+
subject{ data }
|
9
11
|
|
10
12
|
context "garbage" do
|
11
13
|
let(:input){ [[2456624, 10], [2456625, 20], [2456626, 30]] }
|
@@ -14,7 +16,7 @@ describe Cleaner do
|
|
14
16
|
|
15
17
|
context "headers with whitespace" do
|
16
18
|
let(:input){ [[" Date ", " C1 ", "C2 ", " C4"],[1990,1,2,3],[1991,4,5,6]] }
|
17
|
-
|
19
|
+
it{ headers.should eq ["Date", "C1", "C2", "C4"] }
|
18
20
|
end
|
19
21
|
|
20
22
|
context "annual" do
|
@@ -23,7 +25,7 @@ describe Cleaner do
|
|
23
25
|
it{ should be_eq_at_index '[0][1]', 1 }
|
24
26
|
it{ should be_eq_at_index '[1][0]', Date.new(1991,12,31) }
|
25
27
|
it{ should be_eq_at_index '[1][3]', 6 }
|
26
|
-
|
28
|
+
it{ headers.should be_nil }
|
27
29
|
end
|
28
30
|
|
29
31
|
context "numeric date" do
|
@@ -32,7 +34,7 @@ describe Cleaner do
|
|
32
34
|
it{ should be_eq_at_index '[0][1]', 1 }
|
33
35
|
it{ should be_eq_at_index '[0][2]', 2.3 }
|
34
36
|
it{ should be_eq_at_index '[0][3]', nil }
|
35
|
-
|
37
|
+
it{ headers.should be_nil }
|
36
38
|
end
|
37
39
|
|
38
40
|
context "data with headers" do
|
@@ -41,7 +43,7 @@ describe Cleaner do
|
|
41
43
|
it{ should be_eq_at_index '[0][1]', 1 }
|
42
44
|
it{ should be_eq_at_index '[0][2]', 2.3 }
|
43
45
|
it{ should be_eq_at_index '[0][3]', nil }
|
44
|
-
|
46
|
+
it{ headers.should eq ['Date','0','0','0'] }
|
45
47
|
end
|
46
48
|
|
47
49
|
end
|
@@ -1,33 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Quandl::Babelfish::Data do
|
4
|
-
let(:data_args){ [] }
|
5
|
-
subject{ Quandl::Babelfish::Data.new(*data_args) }
|
6
4
|
|
7
|
-
|
8
|
-
its(:headers){ should be_nil }
|
9
|
-
|
10
|
-
context "given Array" do
|
11
|
-
let(:data_args){ [ [[1,2,3],[4,3,5]] ] }
|
12
|
-
its(:to_a){ should eq [[1,2,3],[4,3,5]] }
|
13
|
-
its(:headers){ should be_nil }
|
14
|
-
end
|
5
|
+
let(:csv) { "Date, Column 1, Column 2, C3, C4, C5, C6, C7\n 2012-03-07,,69.75,69.75,69.75,0.0,0.0,0.0\n2012-03-06,69.75,69.75,69.75,69.75,0.0,0.0,0.0\n2012-03-05,69.75,69.75,69.75,69.75,0.0,0.0,0.0\n2012-03-04,69.75,69.75,69.75,69.75,0.0,0.0,0.0\n2012-02-29,,69.75,69.75,69.75,0.0,0.0,0.0\n2012-02-28,69.75,69.75,69.75,69.75,0.0,0.0,0.0\n" }
|
15
6
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
7
|
+
let(:data){ Quandl::Babelfish::Data.new(csv) }
|
8
|
+
subject{ data }
|
9
|
+
|
10
|
+
let(:expected_data){ [['2012-03-07',nil,69.75,69.75,69.75,0.0,0.0,0.0],['2012-03-06',69.75,69.75,69.75,69.75,0.0,0.0,0.0],['2012-03-05',69.75,69.75,69.75,69.75,0.0,0.0,0.0],['2012-03-04',69.75,69.75,69.75,69.75,0.0,0.0,0.0],['2012-02-29',nil,69.75,69.75,69.75,0.0,0.0,0.0],['2012-02-28',69.75,69.75,69.75,69.75,0.0,0.0,0.0]] }
|
11
|
+
let(:expected_headers){ ['Date', 'Column 1', 'Column 2', 'C3', 'C4', 'C5', 'C6', 'C7'] }
|
12
|
+
|
13
|
+
its(:headers){ should eq expected_headers }
|
14
|
+
its('clone.headers'){ should eq expected_headers }
|
15
|
+
its('to_jd.headers'){ should eq expected_headers }
|
16
|
+
|
17
|
+
its(:to_date_str){ should eq expected_data }
|
21
18
|
|
22
|
-
context "given junk headers: Float" do
|
23
|
-
let(:data_args){ [ 2, { headers: 1.2 } ] }
|
24
|
-
its(:to_a){ should eq [nil,nil] }
|
25
|
-
its(:headers){ should be_nil }
|
26
|
-
end
|
27
|
-
context "given junk headers: String" do
|
28
|
-
let(:data_args){ [ 2, { headers: '1.2' } ] }
|
29
|
-
its(:to_a){ should eq [nil,nil] }
|
30
|
-
its(:headers){ should be_nil }
|
31
|
-
end
|
32
|
-
|
33
19
|
end
|
@@ -5,7 +5,7 @@ describe Babelfish do
|
|
5
5
|
|
6
6
|
it 'should run gem' do
|
7
7
|
input=[[1990,1,2,3],[1991,4,5,6]]
|
8
|
-
output = Babelfish::clean input
|
8
|
+
output, headers = Babelfish::clean input
|
9
9
|
output[0][0].should ==Date.new(1990,12,31)
|
10
10
|
output[0][1].should ==1
|
11
11
|
output[1][0].should ==Date.new(1991,12,31)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quandl_babelfish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei Ryshkevich
|
@@ -10,6 +10,20 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2013-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: quandl_data
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rspec
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|