Module: Sequel::SchemaCaching

Defined in:
lib/sequel/extensions/schema_caching.rb

Instance Method Summary collapse

Instance Method Details

#dump_schema_cache(file) ⇒ Object

Dump the cached schema to the filename given in Marshal format.



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/sequel/extensions/schema_caching.rb', line 53

def dump_schema_cache(file)
  sch = {}
  @schemas.sort.each do |k,v|
    sch[k] = v.map do |c, h|
      h = Hash[h]
      h.delete(:callable_default)
      [c, h]
    end
  end
  File.open(file, 'wb'){|f| f.write(Marshal.dump(sch))}
  nil
end

#dump_schema_cache?(file) ⇒ Boolean

Dump the cached schema to the filename given unless the file already exists.

Returns:

  • (Boolean)


68
69
70
# File 'lib/sequel/extensions/schema_caching.rb', line 68

def dump_schema_cache?(file)
  dump_schema_cache(file) unless File.exist?(file)
end

#load_schema_cache(file) ⇒ Object

Replace the schema cache with the data from the given file, which should be in Marshal format.



74
75
76
77
78
# File 'lib/sequel/extensions/schema_caching.rb', line 74

def load_schema_cache(file)
  @schemas = Marshal.load(File.read(file))
  @schemas.each_value{|v| schema_post_process(v)}
  nil
end

#load_schema_cache?(file) ⇒ Boolean

Replace the schema cache with the data from the given file if the file exists.

Returns:

  • (Boolean)


82
83
84
# File 'lib/sequel/extensions/schema_caching.rb', line 82

def load_schema_cache?(file)
  load_schema_cache(file) if File.exist?(file)
end