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