@@ -269,7 +269,7 @@ def encoding
269
269
end
270
270
271
271
def encoding = ( mode )
272
- set_enum_pragma "encoding" , mode , ENCODINGS
272
+ set_string_pragma "encoding" , mode , ENCODINGS
273
273
end
274
274
275
275
def foreign_key_check ( *table , &block ) # :yields: row
@@ -337,7 +337,7 @@ def journal_mode
337
337
end
338
338
339
339
def journal_mode = ( mode )
340
- set_enum_pragma "journal_mode" , mode , JOURNAL_MODES
340
+ set_string_pragma "journal_mode" , mode , JOURNAL_MODES
341
341
end
342
342
343
343
def journal_size_limit
@@ -361,7 +361,7 @@ def locking_mode
361
361
end
362
362
363
363
def locking_mode = ( mode )
364
- set_enum_pragma "locking_mode" , mode , LOCKING_MODES
364
+ set_string_pragma "locking_mode" , mode , LOCKING_MODES
365
365
end
366
366
367
367
def max_page_count
@@ -567,7 +567,7 @@ def wal_checkpoint
567
567
end
568
568
569
569
def wal_checkpoint = ( mode )
570
- set_enum_pragma "wal_checkpoint" , mode , WAL_CHECKPOINTS
570
+ set_string_pragma "wal_checkpoint" , mode , WAL_CHECKPOINTS
571
571
end
572
572
573
573
def writable_schema = ( mode )
@@ -610,6 +610,13 @@ def table_info table
610
610
611
611
private
612
612
613
+ def set_string_pragma ( pragma_name , value , valid_values )
614
+ valid_values . fetch ( value . to_s . downcase ) {
615
+ raise SQLite3 ::Exception , "unrecognized #{ pragma_name } #{ value . inspect } "
616
+ }
617
+ set_enum_pragma ( pragma_name , value , valid_values )
618
+ end
619
+
613
620
# Compares two version strings
614
621
def version_compare ( v1 , v2 )
615
622
v1 = v1 . split ( "." ) . map { |i | i . to_i }
0 commit comments