quandl_cassinatra 0.0.7 → 0.0.8
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.
- data/.gitignore +2 -1
- data/lib/quandl/cassinatra/concerns/properties.rb +68 -0
- data/lib/quandl/cassinatra/concerns/search.rb +26 -0
- data/lib/quandl/cassinatra/concerns.rb +17 -0
- data/lib/quandl/cassinatra/model/dataset/searchable.rb +2 -2
- data/lib/quandl/cassinatra/model/dataset.rb +22 -3
- data/lib/quandl/cassinatra/model/dataset_attribute.rb +1 -2
- data/lib/quandl/cassinatra/model/multiset.rb +16 -4
- data/lib/quandl/cassinatra/version.rb +1 -1
- data/lib/quandl/cassinatra.rb +3 -0
- data/quandl_cassinatra.gemspec +1 -1
- metadata +7 -5
- data/lib/quandl/cassinatra/model/dataset/rest_orm.rb +0 -41
data/.gitignore
CHANGED
@@ -0,0 +1,68 @@
|
|
1
|
+
module Quandl
|
2
|
+
module Cassinatra
|
3
|
+
module Concerns
|
4
|
+
|
5
|
+
module Properties
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
|
10
|
+
include Her::Model
|
11
|
+
use_api Quandl::Cassinatra.her_api
|
12
|
+
|
13
|
+
before_save :touch_save_time
|
14
|
+
before_save :halt_unless_valid!
|
15
|
+
|
16
|
+
after_save :log_save_time
|
17
|
+
|
18
|
+
def valid_with_server?
|
19
|
+
return false unless valid?
|
20
|
+
return false unless errors_params.blank?
|
21
|
+
return false unless errors_server.blank?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
|
25
|
+
def error_messages
|
26
|
+
valid?
|
27
|
+
errors_client.deep_merge(errors_server).deep_merge(errors_params)
|
28
|
+
end
|
29
|
+
|
30
|
+
def errors_client
|
31
|
+
errors.messages || {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def errors_server
|
35
|
+
self.attributes[:errors] || {}
|
36
|
+
end
|
37
|
+
|
38
|
+
def errors_params
|
39
|
+
response_errors.present? ? { response_errors: response_errors } : {}
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
protected
|
44
|
+
|
45
|
+
def halt_unless_valid!
|
46
|
+
return false unless valid?
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def save_timer
|
52
|
+
@save_timer
|
53
|
+
end
|
54
|
+
|
55
|
+
def touch_save_time
|
56
|
+
@save_timer = Time.now
|
57
|
+
end
|
58
|
+
|
59
|
+
def log_save_time
|
60
|
+
Quandl::Logger.info("#{self.class.name}.save (#{save_timer.elapsed_ms})")
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Quandl
|
2
|
+
module Cassinatra
|
3
|
+
module Concerns
|
4
|
+
|
5
|
+
module Search
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
|
10
|
+
include ScopeBuilder::Model
|
11
|
+
|
12
|
+
scope_builder_for :search
|
13
|
+
|
14
|
+
search_helper :all, ->{ connection.where(attributes).fetch }
|
15
|
+
search_helper :connection, -> { self.class.parent }
|
16
|
+
|
17
|
+
search_scope.class_eval do
|
18
|
+
delegate *Array.forwardable_methods, to: :all
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "active_support"
|
2
|
+
require "active_support/inflector"
|
3
|
+
require "active_support/core_ext/hash"
|
4
|
+
require "active_support/core_ext/object"
|
5
|
+
|
6
|
+
require 'quandl/cassinatra/concerns/search'
|
7
|
+
require 'quandl/cassinatra/concerns/properties'
|
8
|
+
|
9
|
+
module Quandl
|
10
|
+
module Cassinatra
|
11
|
+
|
12
|
+
module Concerns
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -67,9 +67,9 @@ module Searchable
|
|
67
67
|
begin
|
68
68
|
t1 = Time.now
|
69
69
|
result = self.class.parent.where(attributes).find(id)
|
70
|
-
|
70
|
+
Quandl::Logger.debug "Quandl::Cassinatra::Dataset.where(#{attributes.to_param if attributes.respond_to?(:to_param)}).find(#{id}) (#{t1.elapsed_ms})"
|
71
71
|
rescue => error
|
72
|
-
|
72
|
+
Quandl::Logger.error "Quandl::Cassinatra::Dataset.find #{error}"
|
73
73
|
end
|
74
74
|
result = self.class.parent.new(id: id) if result.nil?
|
75
75
|
result
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'quandl/cassinatra/model/dataset/searchable'
|
2
|
-
require 'quandl/cassinatra/model/dataset/rest_orm'
|
3
2
|
|
4
3
|
module Quandl
|
5
4
|
module Cassinatra
|
@@ -7,9 +6,29 @@ module Model
|
|
7
6
|
|
8
7
|
class Dataset
|
9
8
|
|
9
|
+
include Concerns::Properties
|
10
10
|
include Searchable
|
11
|
-
|
12
|
-
|
11
|
+
|
12
|
+
attributes :id, :column_ids, :data
|
13
|
+
|
14
|
+
delegate :columns_count, :created_at, :frequency, :rows_count, :type, :updated_at, to: :dataset_attribute
|
15
|
+
|
16
|
+
def data_table
|
17
|
+
Data::Table.new( self.data || [] )
|
18
|
+
end
|
19
|
+
def data_table=(value)
|
20
|
+
self.data = Data::Table.new(value).to_csv
|
21
|
+
end
|
22
|
+
|
23
|
+
def dataset_attribute(*args)
|
24
|
+
return @dataset_attribute if @dataset_attribute
|
25
|
+
# options
|
26
|
+
options = args.extract_options!
|
27
|
+
count = options[:count] == true
|
28
|
+
# grab dataset_attribute
|
29
|
+
@dataset_attribute = DatasetAttribute.where( count: count ).find(id)
|
30
|
+
end
|
31
|
+
|
13
32
|
end
|
14
33
|
end
|
15
34
|
end
|
@@ -5,13 +5,25 @@ module Model
|
|
5
5
|
class Multiset
|
6
6
|
|
7
7
|
include Model::Dataset::Searchable
|
8
|
-
include
|
8
|
+
include Concerns::Properties
|
9
9
|
|
10
10
|
search_helper :dataset, -> { find('multiset') }
|
11
11
|
search_scope :columns
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
attributes :id, :column_ids, :data
|
14
|
+
|
15
|
+
delegate :columns_count, :created_at, :frequency, :rows_count, :type, :updated_at, to: :dataset_attribute
|
16
|
+
|
17
|
+
def data_table
|
18
|
+
Data::Table.new( self.data || [] )
|
19
|
+
end
|
20
|
+
def dataset_attribute(*args)
|
21
|
+
return @dataset_attribute if @dataset_attribute
|
22
|
+
# options
|
23
|
+
options = args.extract_options!
|
24
|
+
count = options[:count] == true
|
25
|
+
# grab dataset_attribute
|
26
|
+
@dataset_attribute = DatasetAttribute.where( count: count ).find(id)
|
15
27
|
end
|
16
28
|
|
17
29
|
end
|
data/lib/quandl/cassinatra.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require "quandl/cassinatra/version"
|
2
2
|
|
3
|
+
require 'quandl/logger'
|
4
|
+
|
3
5
|
require "active_support"
|
4
6
|
require "active_support/inflector"
|
5
7
|
require "active_support/core_ext/hash"
|
@@ -10,6 +12,7 @@ require 'quandl/her/patch'
|
|
10
12
|
require 'scope_builder'
|
11
13
|
require "quandl/data"
|
12
14
|
|
15
|
+
require 'quandl/cassinatra/concerns'
|
13
16
|
require 'quandl/cassinatra/her'
|
14
17
|
require 'quandl/cassinatra/model'
|
15
18
|
|
data/quandl_cassinatra.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_runtime_dependency "activesupport", ">= 3.0.0"
|
26
26
|
s.add_runtime_dependency "her", "~> 0.6.7"
|
27
27
|
s.add_runtime_dependency "scope_builder", "~> 0.0.6"
|
28
|
-
s.add_runtime_dependency "quandl_data", "~> 0.0.
|
28
|
+
s.add_runtime_dependency "quandl_data", "~> 0.0.8"
|
29
29
|
s.add_runtime_dependency "yajl-ruby", "~> 1.1.0"
|
30
30
|
s.add_runtime_dependency 'json', '~> 1.7.7'
|
31
31
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quandl_cassinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.0.
|
133
|
+
version: 0.0.8
|
134
134
|
type: :runtime
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
requirements:
|
139
139
|
- - ~>
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.0.
|
141
|
+
version: 0.0.8
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
143
|
name: yajl-ruby
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,10 +188,12 @@ files:
|
|
188
188
|
- Rakefile
|
189
189
|
- UPGRADE.md
|
190
190
|
- lib/quandl/cassinatra.rb
|
191
|
+
- lib/quandl/cassinatra/concerns.rb
|
192
|
+
- lib/quandl/cassinatra/concerns/properties.rb
|
193
|
+
- lib/quandl/cassinatra/concerns/search.rb
|
191
194
|
- lib/quandl/cassinatra/her.rb
|
192
195
|
- lib/quandl/cassinatra/model.rb
|
193
196
|
- lib/quandl/cassinatra/model/dataset.rb
|
194
|
-
- lib/quandl/cassinatra/model/dataset/rest_orm.rb
|
195
197
|
- lib/quandl/cassinatra/model/dataset/searchable.rb
|
196
198
|
- lib/quandl/cassinatra/model/dataset_attribute.rb
|
197
199
|
- lib/quandl/cassinatra/model/multiset.rb
|
@@ -1,41 +0,0 @@
|
|
1
|
-
module Quandl
|
2
|
-
module Cassinatra
|
3
|
-
module Model
|
4
|
-
class Dataset
|
5
|
-
|
6
|
-
module RestOrm
|
7
|
-
|
8
|
-
extend ActiveSupport::Concern
|
9
|
-
|
10
|
-
included do
|
11
|
-
|
12
|
-
include Her::Model
|
13
|
-
use_api Cassinatra.her_api
|
14
|
-
|
15
|
-
attributes :id, :column_ids, :data
|
16
|
-
|
17
|
-
delegate :columns_count, :created_at, :frequency, :rows_count, :type, :updated_at, to: :dataset_attribute
|
18
|
-
|
19
|
-
def data_table
|
20
|
-
Data::Table.new( self.data || [] )
|
21
|
-
end
|
22
|
-
def data_table=(value)
|
23
|
-
self.data = Data::Table.new(value).to_jd.to_csv
|
24
|
-
end
|
25
|
-
|
26
|
-
def dataset_attribute(*args)
|
27
|
-
return @dataset_attribute if @dataset_attribute
|
28
|
-
# options
|
29
|
-
options = args.extract_options!
|
30
|
-
count = options[:count] == true
|
31
|
-
# grab dataset_attribute
|
32
|
-
@dataset_attribute = DatasetAttribute.where( count: count ).find(id)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|