Class: MetabaseQuerySync::IR::Model

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/metabase_query_sync/ir/model.rb

Class Method Summary collapse

Class Method Details

.arrayObject



19
20
21
# File 'lib/metabase_query_sync/ir/model.rb', line 19

def self.array
  MetabaseQuerySync::Types::Strict::Array
end

.boolObject



15
16
17
# File 'lib/metabase_query_sync/ir/model.rb', line 15

def self.bool
  MetabaseQuerySync::Types::Strict::Bool
end

.integerObject



11
12
13
# File 'lib/metabase_query_sync/ir/model.rb', line 11

def self.integer
  MetabaseQuerySync::Types::Strict::Integer
end

.stringObject



7
8
9
# File 'lib/metabase_query_sync/ir/model.rb', line 7

def self.string
  MetabaseQuerySync::Types::Strict::String
end

.validate_with_schema(&schema_def) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/metabase_query_sync/ir/model.rb', line 23

def self.validate_with_schema(&schema_def)
  define_singleton_method :from_h do |h|
    result = Dry::Schema.JSON(&schema_def).(h)
    raise "Invalid hash provided: #{result.errors.to_h}" if result.failure?
    new(h)
  end
end