adacosta-labilerecord 0.0.7 → 0.0.8

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.
Files changed (4) hide show
  1. data/History.txt +7 -2
  2. data/README.rdoc +7 -3
  3. data/lib/labilerecord.rb +18 -1
  4. metadata +2 -2
@@ -1,4 +1,4 @@
1
- == 0.0.3 2009-04-14
1
+ == 0.0.8 2009-05-07
2
2
 
3
3
  * 1 major enhancement:
4
4
  * Initial release
@@ -11,4 +11,9 @@
11
11
  * 5 :
12
12
  * Fixed bug introduced in 0.0.4 always referencing row[0]
13
13
  * 6 :
14
- * Fix incorrect field.type_id
14
+ * Fix incorrect field.type_id
15
+ * 7 :
16
+ * Increment revision; minor bug fix
17
+ * 8 :
18
+ * Added Query.to_insert_sql to transform dataset into
19
+ an insert statement ... handy for data copies.
@@ -12,15 +12,19 @@
12
12
  * Access field types
13
13
  * Access types which ActiveRecord won't (e.g. _int4)
14
14
  * Easy to use on tables, views, and functions
15
- * Fast - no ruby type conversion on values from connection adapter.
15
+ * Fast - no ruby type conversion on values from connection adapter
16
+ * Simple sql generation for data copy using Query.to_insert_sql
16
17
 
17
18
  == SYNOPSIS:
18
19
 
19
20
  require 'rubygems'
20
21
  require 'labilerecord'
21
22
 
22
- LabileRecord::Base.connection = {:dbname => 'postgres', :user => user,
23
- :pass => pass, :host => host, :port => port}
23
+ LabileRecord::Base.connection = { :dbname => 'postgres',
24
+ :user => user,
25
+ :pass => pass,
26
+ :host => host,
27
+ :port => port}
24
28
 
25
29
  databases = LabileRecord::Query.new("SELECT * FROM pg_database")
26
30
  # execute the query
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module LabileRecord
5
- VERSION = '0.0.7'
5
+ VERSION = '0.0.8'
6
6
  require 'pg'
7
7
 
8
8
  class Base
@@ -61,6 +61,23 @@ module LabileRecord
61
61
  def connection
62
62
  LabileRecord::Base.connection
63
63
  end
64
+
65
+ def to_insert_sql(table_name=nil)
66
+ # return: [INSERT INTO table_name] (column_list) gVALUES(value_list);
67
+ sql = ""
68
+ each do |row|
69
+ non_nil_column_names = []
70
+ non_nil_values = []
71
+ row.each_with_index do |column, i|
72
+ non_nil_column_names << fields[i].name if !column.nil?
73
+ non_nil_values << column if !column.nil?
74
+ end
75
+ sql += %Q[
76
+ #{"INSERT INTO " + table_name.to_s if table_name} (#{ non_nil_column_names.map {|c| '"' + c + '"'} * "," }) VALUES (#{ non_nil_values.map {|c| "'" + c + "'"} * "," });
77
+ ].strip + "\n"
78
+ end
79
+ sql
80
+ end
64
81
  end
65
82
 
66
83
  class Field
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adacosta-labilerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Da Costa
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-15 00:00:00 -07:00
12
+ date: 2009-05-07 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency