lib/quandl/format/dataset/client.rb in quandl_format-0.2.8 vs lib/quandl/format/dataset/client.rb in quandl_format-0.3.0
- old
+ new
@@ -3,10 +3,17 @@
class Dataset
module Client
extend ActiveSupport::Concern
+ included do
+ include ActiveModel::Validations
+
+ validate :client_should_be_valid!
+
+ end
+
def human_errors
m = "#{client.human_status} \t #{client.full_url}"
return m if errors.blank?
m += "\n errors: \n"
m += errors.collect do |error_type, messages|
@@ -26,19 +33,10 @@
def upload
client.save if valid?
end
- def errors
- client.error_messages
- end
-
- def valid?
- assign_client_attributes
- client.valid_with_server?
- end
-
def client
@client ||= find_or_build_client
end
def client=(value)
raise ArgumentError, "Expected Quandl::Client::Dataset received #{value.class}" unless value.is_a?(Quandl::Client::Dataset)
@@ -46,16 +44,21 @@
end
protected
- def assign_client_attributes
- client.assign_attributes(attributes)
+ def client_should_be_valid!
+ if !client.valid_with_server?
+ client.errors.each{|err, value| self.errors.add( err, value ) }
+ return false
+ end
+ true
end
def find_or_build_client
- @client = Quandl::Client::Dataset.find(full_code)
+ @client ||= Quandl::Client::Dataset.find(full_code)
@client = Quandl::Client::Dataset.new unless @client.try(:exists?)
+ @client.assign_attributes(attributes)
@client
end
end
\ No newline at end of file