quandl_data 1.3.0 → 1.3.1

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: e811fb881ccd062b98502cddce1c7a27d5f53ac2
4
- data.tar.gz: 5f84494fdae5960ebb598c032da19cf9ce342b3d
3
+ metadata.gz: 94ac5c5c76af7dbfef791ad7aacf52abfea27db2
4
+ data.tar.gz: 5edaf32984dd620b88f44a3cfb8a7ee04c649e9f
5
5
  SHA512:
6
- metadata.gz: 514a0425af0aa3af800bb8a0c2f06299bc9a2bce9b825cccc57ad84cd8469107d2da25a5a4be4900bcf6c4d78958edb34a5d496d528467f64489a8f5e8e9d8ac
7
- data.tar.gz: 91ff9683ef3c984c2e7e679178b04848699ede82b7e54b6f36b883d19823697888258d2f9b67fdf2803e72bfbda6ec88c7eab526c39346c6f631321059866f42
6
+ metadata.gz: c149657dabceec4bb7864aafc533bf77482d171625a5290f3788073665994b6a0c42850aa2a72c4dc6bdfc18c0b8bc0ffe40041e328b2bcb30fcdf679874eaaf
7
+ data.tar.gz: c505d9aa00e19436832d2521a12bfed8fdc6447e9de495ec35394e3babefa3709d66c92e17b14d378f156a369696be54ee597f7b31b30816b78e797d409fa71c
data/Gemfile CHANGED
@@ -6,5 +6,4 @@ local_gem_dir = ENV['BUNDLE_LOCAL_DIR']
6
6
 
7
7
  if use_local_gems
8
8
  gem 'quandl_operation', path: "#{local_gem_dir}/quandl/operation"
9
- gem 'quandl_babelfish', path: "#{local_gem_dir}/quandl/babelfish"
10
9
  end
data/UPGRADE.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.3.1
2
+
3
+ * add .with_type to Data
4
+ * revise errors to Error for consistency
5
+ * refactor babelfish out of data, remove babelfisher
6
+
7
+
1
8
  ## 1.3.0
2
9
 
3
10
  * string_to_csv will not force values to float
data/lib/quandl/data.rb CHANGED
@@ -6,11 +6,11 @@ require "active_support/core_ext/hash"
6
6
  require "active_support/core_ext/object"
7
7
 
8
8
  require "quandl/operation"
9
- require "quandl/babelfish"
10
9
 
11
- require 'quandl/errors/unknown_date_format'
10
+ require 'quandl/error/unknown_date_format'
12
11
 
13
- require 'quandl/data/babelfisher'
12
+ require 'quandl/data/attributes'
13
+ require 'quandl/data/cleaning'
14
14
  require 'quandl/data/enumerator'
15
15
  require 'quandl/data/operations'
16
16
  require 'quandl/data/format'
@@ -18,7 +18,8 @@ require 'quandl/data/logging'
18
18
 
19
19
  module Quandl
20
20
  class Data
21
- include Babelfisher
21
+ include Attributes
22
+ include Cleaning
22
23
  include Enumerator
23
24
  include Operations
24
25
  include Logging if defined?(QUANDL_LOGGER) && QUANDL_LOGGER == true
@@ -0,0 +1,51 @@
1
+ module Quandl
2
+ class Data
3
+ module Attributes
4
+
5
+ extend ActiveSupport::Concern
6
+
7
+ module ClassMethods
8
+
9
+ def with_type(type)
10
+ type = type.to_s.downcase.to_sym
11
+ case type
12
+ when :dirty, :babelfish then Quandl::Babelfish::Data
13
+ else
14
+ Quandl::Data
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ def initialize(*args)
21
+ self.pristine_data = args.first
22
+ self.attributes = args.extract_options!
23
+ end
24
+
25
+ def headers=(value)
26
+ # only assign arrays
27
+ @headers = value.flatten if value.kind_of?(Array)
28
+ end
29
+ def headers
30
+ @headers
31
+ end
32
+ def headers?
33
+ headers.present?
34
+ end
35
+
36
+ def attributes
37
+ @attributes ||= {}
38
+ end
39
+ def attributes=(attrs)
40
+ assign_attributes(attrs)
41
+ attributes
42
+ end
43
+ def assign_attributes(attrs)
44
+ attrs.each do |name, value|
45
+ self.send("#{name}=", value) if self.respond_to?("#{name}=")
46
+ end
47
+ end
48
+
49
+ end
50
+ end
51
+ end
@@ -1,19 +1,9 @@
1
1
  module Quandl
2
2
  class Data
3
- module Babelfisher
3
+ module Cleaning
4
4
 
5
5
  extend ActiveSupport::Concern
6
6
 
7
- def headers=(value)
8
- @headers = value
9
- end
10
- def headers
11
- @headers ||= data_array.respond_to?(:headers) ? data_array.headers : nil
12
- end
13
- def headers?
14
- headers.present?
15
- end
16
-
17
7
  def cleaned
18
8
  @cleaned
19
9
  end
@@ -31,16 +21,10 @@ module Babelfisher
31
21
  return data if data.kind_of?(Array) && cleaned?
32
22
  # Quandl::Data is already clean, but to avoid errors extract internal array
33
23
  return data.data_array if data.kind_of?(Quandl::Data)
34
- # Quandl::Babelfish::Data is already clean
35
- return data if data.kind_of?(Quandl::Babelfish::Data)
36
24
  # Return empty array if given empty string, nil, etc.
37
25
  return [] if data.blank?
38
26
  # String needs conversion to array
39
- data = Format.csv_to_array( data ) if data.kind_of?(String)
40
- # Hash needs conversion to array
41
- data = Format.hash_to_array( data ) if data.kind_of?(Hash)
42
- # Array needs cleaning
43
- data = Quandl::Babelfish.clean( data )
27
+ data = Format.parse( data )
44
28
  # mark data as clean
45
29
  cleaned!
46
30
  # return data
@@ -9,11 +9,6 @@ module Quandl::Data::Enumerator
9
9
  attr_accessor :pristine_data
10
10
  end
11
11
 
12
- def initialize(*args)
13
- self.pristine_data = args.first
14
- self.attributes = args.extract_options!
15
- end
16
-
17
12
  def data_array
18
13
  @data_array ||= clean( pristine_data )
19
14
  end
@@ -26,20 +21,4 @@ module Quandl::Data::Enumerator
26
21
  @data_array.present?
27
22
  end
28
23
 
29
- def attributes
30
- @attributes ||= {}
31
- end
32
-
33
- def attributes=(attrs)
34
- assign_attributes(attrs)
35
- attributes
36
- end
37
-
38
- # mass assignment protection
39
- def assign_attributes(attrs)
40
- attrs.each do |name, value|
41
- self.send("#{name}=", value) if self.respond_to?("#{name}=")
42
- end
43
- end
44
-
45
24
  end
@@ -185,7 +185,7 @@ class Format
185
185
  row = row.dup
186
186
  row[0] = row[0].to_i
187
187
  # dont allow dates that are before 0000
188
- raise Quandl::Errors::UnknownDateFormat if row[0] <= 1721058
188
+ raise Quandl::Error::UnknownDateFormat if row[0] <= 1721058
189
189
  row
190
190
  end
191
191
 
@@ -196,7 +196,7 @@ class Format
196
196
  # split date into parts
197
197
  date_values = date.split('-').collect(&:to_i)
198
198
  # ensure date is valid
199
- raise Quandl::Errors::UnknownDateFormat unless date_values.count == 3
199
+ raise Quandl::Error::UnknownDateFormat unless date_values.count == 3
200
200
  # add to row
201
201
  row[0] = Date.new( *date_values )
202
202
  row
@@ -207,7 +207,7 @@ class Format
207
207
 
208
208
  def raise_date_format_error!(row, index = 0, type = :none)
209
209
  message = "UnknownDateFormat: '#{row[0]}', index: data[#{index}][0], strategy: '#{type}', row: #{row}"
210
- raise Quandl::Errors::UnknownDateFormat, message
210
+ raise Quandl::Error::UnknownDateFormat, message
211
211
  end
212
212
 
213
213
  end
@@ -1,5 +1,5 @@
1
1
  module Quandl
2
2
  class Data
3
- VERSION = "1.3.0"
3
+ VERSION = "1.3.1"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module Quandl
2
- module Errors
2
+ module Error
3
3
  class UnknownDateFormat < StandardError; end
4
4
  end
5
5
  end
data/quandl_data.gemspec CHANGED
@@ -18,7 +18,6 @@ Gem::Specification.new do |s|
18
18
  s.require_paths = ["lib"]
19
19
 
20
20
  s.add_runtime_dependency "quandl_operation", "~> 0.3.1"
21
- s.add_runtime_dependency "quandl_babelfish", "~> 0.0"
22
21
 
23
22
  s.add_development_dependency "rake", "~> 10.0"
24
23
  s.add_development_dependency "rspec", "~> 2.13"
@@ -71,8 +71,8 @@ describe Quandl::Data::Format do
71
71
  let(:invalid2){ "2012-03-07,,69.75,69.75,69.75,0.0,0.0,0.0\nDate, Column 1, Column 2, C3, C4, C5, C6, C7\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" }
72
72
 
73
73
  [:invalid1, :invalid2].each do |type|
74
- it "#{type} should raise Quandl::Errors::UnknownDateFormat" do
75
- expect { Quandl::Data::Format.parse( self.send(type) ) }.to raise_error Quandl::Errors::UnknownDateFormat
74
+ it "#{type} should raise Quandl::Error::UnknownDateFormat" do
75
+ expect { Quandl::Data::Format.parse( self.send(type) ) }.to raise_error Quandl::Error::UnknownDateFormat
76
76
  end
77
77
  end
78
78
 
@@ -10,16 +10,6 @@ describe Quandl::Data do
10
10
  let(:data){ Quandl::Data.new(csv2) }
11
11
  subject{ data }
12
12
 
13
- describe "#headers" do
14
- subject{ Quandl::Data.new(csv3) }
15
- let(:expectation){ ['Date', 'Column 1', 'Column 2', 'C3', 'C4', 'C5', 'C6', 'C7'] }
16
- its(:headers){ should eq expectation }
17
-
18
- its('clone.headers'){ should eq expectation }
19
- its('to_jd.headers'){ should eq expectation }
20
-
21
- end
22
-
23
13
  describe "#clone" do
24
14
  subject{ data.clone }
25
15
  it{ should be_a Quandl::Data }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quandl_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blake Hilscher
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.3.1
27
- - !ruby/object:Gem::Dependency
28
- name: quandl_babelfish
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '0.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '0.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rake
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -154,13 +140,14 @@ files:
154
140
  - Rakefile
155
141
  - UPGRADE.md
156
142
  - lib/quandl/data.rb
157
- - lib/quandl/data/babelfisher.rb
143
+ - lib/quandl/data/attributes.rb
144
+ - lib/quandl/data/cleaning.rb
158
145
  - lib/quandl/data/enumerator.rb
159
146
  - lib/quandl/data/format.rb
160
147
  - lib/quandl/data/logging.rb
161
148
  - lib/quandl/data/operations.rb
162
149
  - lib/quandl/data/version.rb
163
- - lib/quandl/errors/unknown_date_format.rb
150
+ - lib/quandl/error/unknown_date_format.rb
164
151
  - lib/quandl/fabricate.rb
165
152
  - lib/quandl/fabricate/data.rb
166
153
  - quandl_data.gemspec