timestamp 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be00e7331269985823bb37353fe428e804e80e24
4
- data.tar.gz: 3fad3ee98da39349fc54a60068cba9a3d998e2a3
3
+ metadata.gz: cf5d7af58ef3dde79bd60d34bfc99a8fdeb77254
4
+ data.tar.gz: 7b166d887f7596277906c7a38e70948126349981
5
5
  SHA512:
6
- metadata.gz: 42f8515ba4d5b230ed8cfd300e048776112785824cb6aee18446768cadaf45ef9b69b4844400eca311807ef304572f95733a94bea2cb9c920d0416e1e04144b3
7
- data.tar.gz: 7d08613bc3ecf4eba43bdf36cd26daea2aba382977ee4bea6f2be14195677e796b0b23c1fb973e99f13df0f3dc7cea161eff2b594a50190e2f59b0207e756f74
6
+ metadata.gz: ddb40b424daaa99e69bd3f009edefb07b6f741fbcb83a2a626b879ace085bcaef8ff68938d1240ba9f4bda64149ad31647089e09009c4e147bcdf03740607814
7
+ data.tar.gz: ff35f9ea6f552c118ac9f8a8eba5d13e82f4a231c5192c83f1a3a07e8d4c1b8cbabcebfcd4d487111874cc70d7af5251166248494afd9184b2928306eb78a6f5
@@ -1,26 +1,17 @@
1
1
  /*
2
- * Copyright (c) 2013, Matthew Kerwin
3
- * All rights reserved.
4
- *
5
- * Redistribution and use in source and binary forms, with or without
6
- * modification, are permitted provided that the following conditions are met:
7
- *
8
- * 1. Redistributions of source code must retain the above copyright notice, this
9
- * list of conditions and the following disclaimer.
10
- * 2. Redistributions in binary form must reproduce the above copyright notice,
11
- * this list of conditions and the following disclaimer in the documentation
12
- * and/or other materials provided with the distribution.
13
- *
14
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2
+ * Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
3
+ *
4
+ * Permission to use, copy, modify, and/or distribute this software for any
5
+ * purpose with or without fee is hereby granted, provided that the above
6
+ * copyright notice and this permission notice appear in all copies.
7
+ *
8
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24
15
  */
25
16
 
26
17
  #include "ruby.h"
@@ -64,11 +55,13 @@ time_s_timestamp(VALUE klass)
64
55
  /*
65
56
  * call-seq:
66
57
  * Time.unix_timestamp -> int
58
+ * Time.unix_time -> int
67
59
  *
68
60
  * Returns the current time as an integer number of seconds
69
61
  * since the Epoch.
70
62
  *
71
63
  * Time.unix_timestamp #=> 1363352771
64
+ * Time.unix_time #=> 1363352771
72
65
  */
73
66
 
74
67
  static VALUE
@@ -111,6 +104,7 @@ time_s_unix_microtime(VALUE klass)
111
104
 
112
105
  void Init_timestamp() {
113
106
  rb_define_singleton_method(rb_cTime, "timestamp", time_s_timestamp, 0);
107
+ rb_define_singleton_method(rb_cTime, "unix_time", time_s_unix_timestamp, 0);
114
108
  rb_define_singleton_method(rb_cTime, "unix_timestamp", time_s_unix_timestamp, 0);
115
109
  rb_define_singleton_method(rb_cTime, "unix_microtime", time_s_unix_microtime, 0);
116
110
  }
@@ -0,0 +1,85 @@
1
+ /*
2
+ * Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
3
+ *
4
+ * Permission to use, copy, modify, and/or distribute this software for any
5
+ * purpose with or without fee is hereby granted, provided that the above
6
+ * copyright notice and this permission notice appear in all copies.
7
+ *
8
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+ */
16
+
17
+ //package au.net.kerwin.jruby;
18
+
19
+ import java.io.IOException;
20
+ import org.jruby.Ruby;
21
+ import org.jruby.RubyClass;
22
+ import org.jruby.RubyInteger;
23
+ import org.jruby.RubyFloat;
24
+ import org.jruby.RubyModule;
25
+ import org.jruby.anno.JRubyMethod;
26
+ import org.jruby.runtime.load.BasicLibraryService;
27
+
28
+ public class Timestamp implements BasicLibraryService {
29
+ private Ruby runtime;
30
+
31
+ public boolean basicLoad(final Ruby runtime) throws IOException {
32
+ this.runtime = runtime;
33
+ RubyClass rb_cTime = runtime.getClass("Time");
34
+ rb_cTime.defineAnnotatedMethods(Timestamp.class);
35
+ return true;
36
+ }
37
+
38
+ /*
39
+ * call-seq:
40
+ * Time.timestamp -> int
41
+ *
42
+ * Returns a nanosecond timestamp on the system's monotonic clock.
43
+ *
44
+ * Time.timestamp #=> 17817203921822
45
+ */
46
+
47
+ @JRubyMethod( name = "timestamp", meta = true )
48
+ public RubyInteger timestamp() {
49
+ return runtime.newFixnum(System.nanoTime());
50
+ }
51
+
52
+ /*
53
+ * call-seq:
54
+ * Time.unix_timestamp -> int
55
+ * Time.unix_time -> int
56
+ *
57
+ * Returns the current time as an integer number of seconds
58
+ * since the Epoch.
59
+ *
60
+ * Time.unix_timestamp #=> 1363352771
61
+ * Time.unix_time #=> 1363352771
62
+ */
63
+
64
+ @JRubyMethod( name = {"unix_timestamp", "unix_time"}, meta = true )
65
+ public RubyInteger unix_timestamp() {
66
+ return runtime.newFixnum(System.currentTimeMillis() / 1000);
67
+ }
68
+
69
+ /*
70
+ * call-seq:
71
+ * Time.unix_microtime -> float
72
+ *
73
+ * Returns the current time as a floating-point number of seconds
74
+ * since the Epoch.
75
+ *
76
+ * Time.unix_microtime #=> 1363352771.315240
77
+ */
78
+
79
+ @JRubyMethod( name = "unix_microtime", meta = true )
80
+ public RubyFloat unix_microtime() {
81
+ return RubyFloat.newFloat(runtime, System.currentTimeMillis() / 1000.0);
82
+ }
83
+
84
+ }
85
+
@@ -1,5 +1,6 @@
1
1
  require 'mkmf'
2
- extension_name = 'timestamp'
3
- dir_config(extension_name)
4
- create_makefile(extension_name)
2
+ ext_name = 'timestamp'
3
+
4
+ dir_config(ext_name)
5
+ create_makefile(ext_name)
5
6
 
@@ -0,0 +1,33 @@
1
+
2
+ if defined?(JRUBY_VERSION)
3
+ require 'jruby'
4
+ require File.expand_path('../timestamp.jar', __FILE__)
5
+ require 'timestamp'
6
+
7
+ class Time
8
+ @@timestamp = Java::Default::Timestamp.new.tap{|ts| ts.java_send :basicLoad, [org.jruby.Ruby], org.jruby.Ruby.getGlobalRuntime }
9
+ class << self
10
+ def timestamp
11
+ @@timestamp.java_send :timestamp, []
12
+ end
13
+ def unix_timestamp
14
+ @@timestamp.java_send :unix_timestamp, []
15
+ end
16
+ alias :unix_time :unix_timestamp
17
+ def unix_microtime
18
+ @@timestamp.java_send :unix_microtime, []
19
+ end
20
+ end
21
+ end
22
+ else
23
+ begin
24
+ require 'timestamp/timestamp'
25
+ rescue LoadError
26
+ begin
27
+ require "timestamp/timestamp.#{RbConfig::CONFIG['DLEXT']}"
28
+ rescue LoadError
29
+ require "timestamp.#{RbConfig::CONFIG['DLEXT']}"
30
+ end
31
+ end
32
+ end
33
+
metadata CHANGED
@@ -1,16 +1,89 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timestamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Kerwin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-13 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Defines Time.timestamp and .unix_timestamp , from https://bugs.ruby-lang.org/issues/8096
11
+ date: 2013-07-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake-compiler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: |
56
+ == Time.timestamp
57
+
58
+ Defines <tt>Time::timestamp</tt> and <tt>Time::unix_timestamp</tt>.
59
+
60
+ See the original discussion at {Ruby-Lang}[https://bugs.ruby-lang.org/issues/8096]
61
+
62
+ :call-seq:
63
+ Time::timestamp -> Integer
64
+
65
+ Returns a nanosecond-precision timestamp from the system's monotonic
66
+ clock. Note that the resolution of the measured time is system-
67
+ dependent (i.e. while the value displayed is always an integer number
68
+ of nanoseconds, the values may not necessarily change in increments of
69
+ exactly one).
70
+
71
+ This time value does not correlate to any absolute, real-world time
72
+ system; it is only useful for measuring relative (or elapsed) times at
73
+ a high granularity. For example, benchmark measurements.
74
+
75
+ :call-seq:
76
+ Time::unix_timestamp -> Integer
77
+ Time::unix_time -> Integer
78
+
79
+ Returns the current real-world time as a whole number of seconds since
80
+ the Epoch (1-Jan-1970).
81
+
82
+ :call-seq:
83
+ Time::unix_microtime -> Float
84
+
85
+ Returns the current real-world time as a floating-point number of
86
+ seconds since the Epoch (1-Jan-1970).
14
87
  email:
15
88
  - matthew@kerwin.net.au
16
89
  executables: []
@@ -19,10 +92,12 @@ extensions:
19
92
  extra_rdoc_files: []
20
93
  files:
21
94
  - ext/timestamp/Timestamp.c
95
+ - ext/timestamp/Timestamp.java
22
96
  - ext/timestamp/extconf.rb
23
- homepage: http://rubygems.org/gems/timestamp
97
+ - lib/timestamp.rb
98
+ homepage: http://phluid61.github.com/timestamp-gem/
24
99
  licenses:
25
- - Simplified BSD License
100
+ - ISC License
26
101
  metadata: {}
27
102
  post_install_message:
28
103
  rdoc_options: []