Guest User

Untitled

a guest
Feb 9th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. require 'sqlite3'
  2.  
  3. class Post
  4.  
  5. @@SQLITE_DB_FILE = 'notepad.sqlite'
  6.  
  7. def self.post_types
  8. {'Memo' => Memo, 'Link' => Link, 'Task' => Task}
  9. end
  10.  
  11. def self.create type
  12. return post_types[type].new
  13. end
  14.  
  15. def initialize
  16. @created_at = Time.now
  17. @text = nil
  18. end
  19.  
  20. def read_from_console
  21. # todo
  22. end
  23.  
  24. def to_strings
  25. # todo
  26. end
  27.  
  28. def save
  29. file = File.new file_path, "w:UTF-8"
  30. for item in to_strings do
  31. file.puts item
  32. end
  33. file.close
  34. end
  35.  
  36. def file_path
  37. current_path = File.dirname __FILE__
  38. file_name = @created_at.strftime("#{self.class.name}_%Y-%m-%d_%H-%M-%S.txt")
  39. return current_path + "/" + file_name
  40. end
  41.  
  42. def save_to_db
  43. db = SQLite3::Database.open(@@SQLITE_DB_FILE)
  44. db.results_as_hash = true
  45. puts "hey"
  46. puts db.class.name
  47. puts to_db_hash.keys.join(', ')
  48. puts ('?,'*to_db_hash.size).chomp(',')
  49. puts to_db_hash.values
  50.  
  51. # puts "INSERT INTO posts (" +
  52. # to_db_hash.keys.join(',') +
  53. # ") " +
  54. # " VALUES (" +
  55. # ('?,'*to_db_hash.size).chomp(',') +
  56. # ")"
  57.  
  58. # db.execute(
  59. # "INSERT INTO posts (" +
  60. # to_db_hash.keys.join(', ') +
  61. # ") " +
  62. # " VALUES (" +
  63. # ('?, '*to_db_hash.size).chomp(', ') +
  64. # ")",
  65. # to_db_hash.values
  66. # )
  67. db.execute(
  68. "INSERT INTO posts (" +
  69. to_db_hash.keys.join(', ') + # все поля, перечисленные через запятую
  70. ") " +
  71. " VALUES ( " +
  72. ('?,'*to_db_hash.keys.size).chomp(',') + # строка из заданного числа _плейсхолдеров_ ?,?,?...
  73. ")",
  74. to_db_hash.values # массив значений хэша, которые будут вставлены в запрос вместо _плейсхолдеров_
  75. )
  76. puts "hey you"
  77.  
  78. insert_row_id = db.last_insert_row_id
  79. db.close
  80. return insert_row_id
  81.  
  82. end
  83.  
  84. def to_db_hash
  85. return {
  86. 'type' => self.class.name,
  87. 'created_at' => @created_at
  88. }
  89. end
  90. end
Advertisement
Add Comment
Please, Sign In to add comment