lib/table_sync/errors.rb in table_sync-2.3.0 vs lib/table_sync/errors.rb in table_sync-4.0.0
- old
+ new
@@ -2,41 +2,27 @@
module TableSync
Error = Class.new(StandardError)
class UpsertError < Error
- def initialize(data:, target_keys:, version_key:, first_sync_time_key:, default_values:)
- super <<~MSG
- Upsert has changed more than 1 row;
- data: #{data.inspect}
- target_keys: #{target_keys.inspect}
- version_key: #{version_key.inspect}
- first_sync_time_key: #{first_sync_time_key.inspect}
- default_values: #{default_values.inspect}
- MSG
+ def initialize(data:, target_keys:, result:)
+ super("data: #{data.inspect}, target_keys: #{target_keys.inspect}, result: #{result.inspect}")
end
end
- class UndefinedConfig < Error
- def initialize(model)
- super("Config not defined for model; model: #{model.inspect}")
- end
- end
-
class DestroyError < Error
- def initialize(data)
- super("Destroy has changed more than 1 row; data: #{data.inspect}")
+ def initialize(data:, target_keys:, result:)
+ super("data: #{data.inspect}, target_keys: #{target_keys.inspect}, result: #{result.inspect}")
end
end
- class UnprovidedEventTargetKeysError < Error
- # @param target_keys [Array<Symbol,String>]
- # @param target_attributes [Hash<Symbol|String,Any>]
- def initialize(target_keys, target_attributes)
+ class DataError < Error
+ def initialize(data, target_keys, description)
super(<<~MSG.squish)
- Some target keys not found in received attributes!
- (Expects: #{target_keys}, Actual: #{target_attributes.keys})
+ #{description}
+ target_keys: #{target_keys}
+ data: #{data}
MSG
end
end
# @api public
@@ -56,8 +42,38 @@
# @since 2.2.0
class AlreadyRegisteredPluginError < PluginError
# @param plugin_name [Any]
def initialize(plugin_name)
super("#{plugin_name} plugin already exists")
+ end
+ end
+
+ class InterfaceError < Error
+ def initialize(object, method_name, parameters, description)
+ parameters = parameters.map do |parameter|
+ type, name = parameter
+
+ case type
+ when :req
+ name.to_s
+ when :keyreq
+ "#{name}:"
+ when :block
+ "&#{name}"
+ end
+ end
+
+ signature = "#{method_name}(#{parameters.join(", ")})"
+
+ super("#{object} has to implement method `#{signature}`\n#{description}")
+ end
+ end
+
+ UndefinedEvent = Class.new(Error)
+ ORMNotSupported = Class.new(Error)
+
+ class WrongOptionValue < Error
+ def initialize(model, option, value)
+ super("TableSync config for #{model.inspect} can't contain #{value.inspect} as #{option}")
end
end
end