scraperwiki 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/scraperwiki.rb CHANGED
@@ -79,18 +79,22 @@ module ScraperWiki
79
79
  SQLiteMagic._do_save_sqlite(unique_keys, rjdata, table_name)
80
80
  end
81
81
 
82
+ def ScraperWiki.close_sqlite()
83
+ SQLiteMagic.close
84
+ end
85
+
82
86
  # Internal function to check a row of data, convert to right format
83
87
  def ScraperWiki._convdata(unique_keys, scraper_data)
84
88
  if unique_keys
85
89
  for key in unique_keys
86
90
  if !key.kind_of?(String) and !key.kind_of?(Symbol)
87
- return 'unique_keys must each be a string or a symbol, this one is not: ' + key
91
+ raise 'unique_keys must each be a string or a symbol, this one is not: ' + key
88
92
  end
89
93
  if !scraper_data.include?(key) and !scraper_data.include?(key.to_sym)
90
- return 'unique_keys must be a subset of data, this one is not: ' + key
94
+ raise 'unique_keys must be a subset of data, this one is not: ' + key
91
95
  end
92
96
  if scraper_data[key] == nil and scraper_data[key.to_sym] == nil
93
- return 'unique_key value should not be nil, this one is nil: ' + key
97
+ raise 'unique_key value should not be nil, this one is nil: ' + key
94
98
  end
95
99
  end
96
100
  end
@@ -11,10 +11,14 @@ require 'set'
11
11
  require 'sqlite3'
12
12
 
13
13
  module SQLiteMagic
14
- @db = SQLite3::Database.new("scraperwiki.sqlite")
14
+ @db = nil
15
15
  @sqlitesaveinfo = {}
16
16
 
17
17
  def SQLiteMagic._do_save_sqlite(unique_keys, data, swdatatblname)
18
+ if @db.nil?
19
+ @db = SQLite3::Database.new("scraperwiki.sqlite")
20
+ end
21
+
18
22
  res = { }
19
23
  if data.class == Hash
20
24
  data = [data]
@@ -58,9 +62,6 @@ module SQLiteMagic
58
62
  end
59
63
 
60
64
  lres = ssinfo.insertdata(ldata)
61
- if lres.include?('error')
62
- return lres
63
- end
64
65
  nrecords += 1
65
66
  end
66
67
 
@@ -69,13 +70,19 @@ module SQLiteMagic
69
70
  return res
70
71
  end
71
72
 
73
+ def SQLiteMagic.close()
74
+ @db.close
75
+ @db = nil
76
+ @sqlitesaveinfo = {}
77
+ end
78
+
72
79
 
73
80
  class SqliteSaveInfo
74
81
  def initialize(swdatatblname, db)
75
82
  @swdatatblname = swdatatblname
76
83
  @swdatakeys = [ ]
77
84
  @swdatatypes = [ ]
78
- @sqdatatemplate = ""
85
+ @sqdatatemplate = ""
79
86
  @db = db
80
87
  end
81
88
 
@@ -87,8 +94,6 @@ module SQLiteMagic
87
94
 
88
95
  tblinfo = @db.execute("PRAGMA main.table_info(`%s`)" % @swdatatblname)
89
96
  # puts "tblinfo="+ tblinfo.to_s
90
- # there's a bug: PRAGMA main.table_info(swdata) returns the schema for otherdatabase.swdata
91
- # following an attach otherdatabase where otherdatabase has a swdata and main does not
92
97
 
93
98
  @swdatakeys = tblinfo.map { |a| a[1] }
94
99
  @swdatatypes = tblinfo.map { |a| a[2] }
@@ -194,8 +199,9 @@ module SQLiteMagic
194
199
  end
195
200
 
196
201
  def insertdata(data)
197
- values = @swdatakeys.map { |k| data[k] } # this was data.get(k) in Python
198
- return @db.query(@sqdatatemplate, values)
202
+ values = @swdatakeys.map { |k| data[k] }
203
+ res = @db.query(@sqdatatemplate, values)
204
+ res.close
199
205
  end
200
206
  end
201
207
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scraperwiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: