activerecord-jdbc-alt-adapter 52.2.1-java → 52.6.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -51,6 +51,9 @@ import static arjdbc.util.StringHelper.decByte;
51
51
  * @author kares
52
52
  */
53
53
  public abstract class DateTimeUtils {
54
+
55
+ private static final GJChronology CHRONO_ITALY_UTC = GJChronology.getInstance(DateTimeZone.UTC);
56
+
54
57
  public static RubyTime toTime(final ThreadContext context, final IRubyObject value) {
55
58
  if (!(value instanceof RubyTime)) { // unlikely
56
59
  return (RubyTime) TypeConverter.convertToTypeWithCheck(value, context.runtime.getTime(), "to_time");
@@ -218,9 +221,11 @@ public abstract class DateTimeUtils {
218
221
  final int hours = time.getHours();
219
222
  final int minutes = time.getMinutes();
220
223
  final int seconds = time.getSeconds();
221
- final int nanos = time.getNanos(); // max 999-999-999
224
+ int nanos = time.getNanos(); // max 999-999-999
225
+ final int millis = nanos / 1000000;
226
+ nanos = nanos % 1000000;
222
227
 
223
- DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, defaultZone);
228
+ DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, millis, defaultZone);
224
229
  return RubyTime.newTime(context.runtime, dateTime, nanos);
225
230
  }
226
231
 
@@ -233,9 +238,11 @@ public abstract class DateTimeUtils {
233
238
  final int hours = timestamp.getHours();
234
239
  final int minutes = timestamp.getMinutes();
235
240
  final int seconds = timestamp.getSeconds();
236
- final int nanos = timestamp.getNanos(); // max 999-999-999
241
+ int nanos = timestamp.getNanos(); // max 999-999-999
242
+ final int millis = nanos / 1000000;
243
+ nanos = nanos % 1000000;
237
244
 
238
- DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, 0, defaultZone);
245
+ DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, millis, defaultZone);
239
246
  return RubyTime.newTime(context.runtime, dateTime, nanos);
240
247
  }
241
248
 
@@ -260,6 +267,15 @@ public abstract class DateTimeUtils {
260
267
  return newDate(context, year, month, day, ISOChronology.getInstance(zone));
261
268
  }
262
269
 
270
+ @SuppressWarnings("deprecation")
271
+ public static IRubyObject newDate(final ThreadContext context, final Date date) {
272
+ final int year = date.getYear() + 1900;
273
+ final int month = date.getMonth() + 1;
274
+ final int day = date.getDate();
275
+
276
+ return newDate(context, year, month, day, CHRONO_ITALY_UTC);
277
+ }
278
+
263
279
  // @Deprecated
264
280
  public static Timestamp convertToTimestamp(final RubyFloat value) {
265
281
  final Timestamp timestamp = new Timestamp(value.getLongValue() * 1000); // millis
@@ -332,9 +348,7 @@ public abstract class DateTimeUtils {
332
348
 
333
349
  if ( bcEra ) year = -1 * year; // no + 1 since we use GJChronology
334
350
 
335
- DateTime dateTime = new DateTime(year, month, day, 0, 0, 0, GJChronology.getInstance(defaultZone));
336
- final Ruby runtime = context.runtime;
337
- return runtime.getClass("Date").newInstance(context, Java.getInstance(runtime, dateTime), Block.NULL_BLOCK);
351
+ return newDate(context, year, month, day, GJChronology.getInstance(defaultZone));
338
352
  }
339
353
 
340
354
  public static IRubyObject parseTime(final ThreadContext context, final CharSequence str, final DateTimeZone defaultZone)
@@ -559,7 +573,7 @@ public abstract class DateTimeUtils {
559
573
  }
560
574
 
561
575
  private static IRubyObject newDate(final ThreadContext context, final int year, final int month, final int day,
562
- final ISOChronology chronology) {
576
+ final Chronology chronology) {
563
577
  // NOTE: JRuby really needs a native date.rb until than its a bit costly going from ...
564
578
  // java.sql.Date -> allocating a DateTime proxy, help a bit by shooting at the internals
565
579
  //
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-jdbc-alt-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 52.2.1
4
+ version: 52.6.0
5
5
  platform: java
6
6
  authors:
7
7
  - Nick Sieger, Ola Bini, Karol Bucek and JRuby contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-29 00:00:00.000000000 Z
11
+ date: 2021-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -20,8 +20,8 @@ dependencies:
20
20
  - !ruby/object:Gem::Version
21
21
  version: 5.2.3
22
22
  name: activerecord
23
- prerelease: false
24
23
  type: :runtime
24
+ prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
@@ -30,8 +30,8 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.2.3
33
- description: 'Fork of the ActiveRecord JDBC adapter with support for SQL Server/Azure
34
- SQL, for more information and help look at the README file in the github repository.
33
+ description: 'Fork of the ActiveRecord JDBC adapter with support for SQL Server and
34
+ Azure SQL, for more information and help look at the README file in the github repository.
35
35
  AR-JDBC is a database adapter for Rails'' ActiveRecord component designed to be
36
36
  used with JRuby built upon Java''s JDBC API for database access. Provides (ActiveRecord)
37
37
  built-in adapters: MySQL, PostgreSQL and SQLite3 as well as adapters for popular
@@ -76,6 +76,7 @@ files:
76
76
  - lib/active_record/connection_adapters/sqlite3_adapter.rb
77
77
  - lib/active_record/connection_adapters/sqlserver_adapter.rb
78
78
  - lib/activerecord-jdbc-adapter.rb
79
+ - lib/activerecord-jdbc-alt-adapter.rb
79
80
  - lib/arel/visitors/compat.rb
80
81
  - lib/arel/visitors/db2.rb
81
82
  - lib/arel/visitors/derby.rb
@@ -272,8 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
273
  - !ruby/object:Gem::Version
273
274
  version: '0'
274
275
  requirements: []
275
- rubyforge_project:
276
- rubygems_version: 2.7.6
276
+ rubygems_version: 3.0.6
277
277
  signing_key:
278
278
  specification_version: 4
279
279
  summary: ActiveRecord JDBC adapter, for use within JRuby on Rails and SQL Server