tiny_tds 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,4 +1,9 @@
1
1
 
2
+ * 0.3.2 *
3
+
4
+ * Small changes while testing JRuby. Using options hash for connect vs many args.
5
+
6
+
2
7
  * 0.3.1 *
3
8
 
4
9
  * Fix bad gem build.
@@ -15,7 +15,7 @@ The API is simple and consists of these classes:
15
15
 
16
16
  == Install
17
17
 
18
- Installing with rubygems should just work. TinyTds is tested on ruby version 1.8.6, 1.8.7, 1.9.1, 1.9.2 as well as REE.
18
+ Installing with rubygems should just work. TinyTds is tested on ruby version 1.8.6, 1.8.7, 1.9.1, 1.9.2 as well as REE & JRuby.
19
19
 
20
20
  $ gem install tiny_tds
21
21
 
@@ -174,7 +174,7 @@ By default row caching is turned on because the SQL Server adapter for ActiveRec
174
174
 
175
175
 
176
176
 
177
- == Using TinyTds With the ActiveRecord SQL Server adapter.
177
+ == Using TinyTds With Rails & The ActiveRecord SQL Server adapter.
178
178
 
179
179
  As of version 2.3.11 & 3.0.3 of the adapter, you can specify a :dblib mode in database.yml and use TinyTds as the low level connection mode. Make sure to add a :dataserver option to that matches the name in your freetds.conf file. The SQL Server adapter can be found using the link below. Also included is a direct link to the wiki article covering common questions when using TinyTds as the low level connection mode for the adapter.
180
180
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  VALUE cTinyTdsClient;
7
7
  extern VALUE mTinyTds, cTinyTdsError;
8
+ static ID sym_username, sym_password, sym_dataserver, sym_database, sym_appname, sym_tds_version, sym_login_timeout, sym_timeout, sym_encoding;
8
9
  static ID intern_source_eql, intern_severity_eql, intern_db_error_number_eql, intern_os_error_number_eql;
9
10
  static ID intern_new, intern_dup, intern_transpose_iconv_encoding, intern_local_offset, intern_gsub;
10
11
  VALUE opt_escape_regex, opt_escape_dblquote;
@@ -210,7 +211,19 @@ static VALUE rb_tinytds_return_code(VALUE self) {
210
211
 
211
212
  // TinyTds::Client (protected)
212
213
 
213
- static VALUE rb_tinytds_connect(VALUE self, VALUE user, VALUE pass, VALUE dataserver, VALUE database, VALUE app, VALUE version, VALUE ltimeout, VALUE timeout, VALUE charset) {
214
+ static VALUE rb_tinytds_connect(VALUE self, VALUE opts) {
215
+ /* Parsing options hash to local vars. */
216
+ VALUE user, pass, dataserver, database, app, version, ltimeout, timeout, charset;
217
+ user = rb_hash_aref(opts, sym_username);
218
+ pass = rb_hash_aref(opts, sym_password);
219
+ dataserver = rb_hash_aref(opts, sym_dataserver);
220
+ database = rb_hash_aref(opts, sym_database);
221
+ app = rb_hash_aref(opts, sym_appname);
222
+ version = rb_hash_aref(opts, sym_tds_version);
223
+ ltimeout = rb_hash_aref(opts, sym_login_timeout);
224
+ timeout = rb_hash_aref(opts, sym_timeout);
225
+ charset = rb_hash_aref(opts, sym_encoding);
226
+ /* Dealing with options. */
214
227
  if (dbinit() == FAIL) {
215
228
  rb_raise(cTinyTdsError, "failed dbinit() function");
216
229
  return self;
@@ -265,7 +278,17 @@ void init_tinytds_client() {
265
278
  rb_define_method(cTinyTdsClient, "escape", rb_tinytds_escape, 1);
266
279
  rb_define_method(cTinyTdsClient, "return_code", rb_tinytds_return_code, 0);
267
280
  /* Define TinyTds::Client Protected Methods */
268
- rb_define_protected_method(cTinyTdsClient, "connect", rb_tinytds_connect, 9);
281
+ rb_define_protected_method(cTinyTdsClient, "connect", rb_tinytds_connect, 1);
282
+ /* Symbols For Connect */
283
+ sym_username = ID2SYM(rb_intern("username"));
284
+ sym_password = ID2SYM(rb_intern("password"));
285
+ sym_dataserver = ID2SYM(rb_intern("dataserver"));
286
+ sym_database = ID2SYM(rb_intern("database"));
287
+ sym_appname = ID2SYM(rb_intern("appname"));
288
+ sym_tds_version = ID2SYM(rb_intern("tds_version"));
289
+ sym_login_timeout = ID2SYM(rb_intern("login_timeout"));
290
+ sym_timeout = ID2SYM(rb_intern("timeout"));
291
+ sym_encoding = ID2SYM(rb_intern("encoding"));
269
292
  /* Intern TinyTds::Error Accessors */
270
293
  intern_source_eql = rb_intern("source=");
271
294
  intern_severity_eql = rb_intern("severity=");
@@ -15,5 +15,5 @@ require 'tiny_tds/tiny_tds'
15
15
  #
16
16
  # Tiny Ruby Wrapper For FreeTDS Using DB-Library
17
17
  module TinyTds
18
- VERSION = '0.3.1'
18
+ VERSION = '0.3.2'
19
19
  end
@@ -47,18 +47,14 @@ module TinyTds
47
47
 
48
48
 
49
49
  def initialize(opts={})
50
+ raise ArgumentError, 'missing :username option' if opts[:username].nil? || opts[:username].empty?
50
51
  @query_options = @@default_query_options.dup
51
- user = opts[:username]
52
- pass = opts[:password]
53
- dataserver = opts[:dataserver]
54
- database = opts[:database]
55
- appname = opts[:appname] || 'TinyTds'
56
- version = TDS_VERSIONS_SETTERS[opts[:tds_version].to_s] || TDS_VERSIONS_SETTERS['80']
57
- ltimeout = opts[:login_timeout] || 60
58
- timeout = opts[:timeout] || 5
59
- encoding = (opts[:encoding].nil? || opts[:encoding].downcase == 'utf8') ? 'UTF-8' : opts[:encoding].upcase
60
- raise ArgumentError, 'missing :username option' if user.nil? || user.empty?
61
- connect(user, pass, dataserver, database, appname, version, ltimeout, timeout, encoding)
52
+ opts[:appname] ||= 'TinyTds'
53
+ opts[:tds_version] = TDS_VERSIONS_SETTERS[opts[:tds_version].to_s] || TDS_VERSIONS_SETTERS['80']
54
+ opts[:login_timeout] ||= 60
55
+ opts[:timeout] ||= 5
56
+ opts[:encoding] = (opts[:encoding].nil? || opts[:encoding].downcase == 'utf8') ? 'UTF-8' : opts[:encoding].upcase
57
+ connect(opts)
62
58
  end
63
59
 
64
60
  def tds_version_info
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_tds
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 1
10
- version: 0.3.1
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ken Collins
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-01-13 00:00:00 -05:00
19
+ date: 2011-01-17 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  requirements: []
74
74
 
75
75
  rubyforge_project:
76
- rubygems_version: 1.3.7
76
+ rubygems_version: 1.4.1
77
77
  signing_key:
78
78
  specification_version: 3
79
79
  summary: TinyTds - A modern, simple and fast FreeTDS library for Ruby using DB-Library.