hitimes 1.0.5-x86-mingw32 → 1.1.0-x86-mingw32

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/HISTORY CHANGED
@@ -1,4 +1,8 @@
1
1
  = Changelog
2
+ == Version 1.1.0 2010-07-28
3
+
4
+ * Add a pure java extension so hitimes may be used in jruby with the same API
5
+
2
6
  == Version 1.0.5 2010-07-20
3
7
 
4
8
  * Fix 'circular require considered harmful' warnings in 1.9.x (reported by Roger Pack)
data/gemspec.rb CHANGED
@@ -57,4 +57,9 @@ Hitimes::GEM_SPEC_MINGW32= Hitimes::GEM_SPEC.clone
57
57
  Hitimes::GEM_SPEC_MINGW32.platform = ::Gem::Platform.new( "i386-mingw32" )
58
58
  Hitimes::GEM_SPEC_MINGW32.extensions = []
59
59
 
60
- Hitimes::SPECS = [ Hitimes::GEM_SPEC, Hitimes::GEM_SPEC_MSWIN32, Hitimes::GEM_SPEC_MINGW32 ]
60
+ Hitimes::GEM_SPEC_JAVA = Hitimes::GEM_SPEC.clone
61
+ Hitimes::GEM_SPEC_JAVA.platform = ::Gem::Platform.new( 'java' )
62
+ Hitimes::GEM_SPEC_JAVA.extensions = []
63
+
64
+ Hitimes::SPECS = [ Hitimes::GEM_SPEC, Hitimes::GEM_SPEC_MSWIN32, Hitimes::GEM_SPEC_MINGW32, Hitimes::GEM_SPEC_JAVA ]
65
+
data/lib/hitimes.rb CHANGED
@@ -19,9 +19,14 @@ end
19
19
  require 'hitimes/paths'
20
20
  require 'hitimes/version'
21
21
 
22
- # use a version subdirectory for extensions, initially to support windows, but
23
- # why make a special case. It doesn't hurt anyone to have an extra subdir.
24
- require "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}/hitimes_ext"
22
+ if RUBY_PLATFORM == "java" then
23
+ require 'hitimes/hitimes'
24
+ else
25
+ # use a version subdirectory for extensions, initially to support windows, but
26
+ # why make a special case. It doesn't hurt anyone to have an extra subdir.
27
+ require "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}/hitimes_ext"
28
+ end
29
+
25
30
  require 'hitimes/stats'
26
31
  require 'hitimes/mutexed_stats'
27
32
 
Binary file
Binary file
@@ -13,10 +13,10 @@ module Hitimes
13
13
  MAJOR = 1
14
14
 
15
15
  # Minor version number
16
- MINOR = 0
16
+ MINOR = 1
17
17
 
18
18
  # Build number
19
- BUILD = 5
19
+ BUILD = 0
20
20
 
21
21
  #
22
22
  # :call-seq:
@@ -37,7 +37,7 @@ describe Hitimes::Interval do
37
37
  d = Hitimes::Interval.measure do
38
38
  sleep 0.2
39
39
  end
40
- d.should be_close(0.2, 0.01)
40
+ d.should be_close(0.2, 0.02)
41
41
  end
42
42
 
43
43
  it "raises an error if measure is called with no block" do
@@ -84,10 +84,10 @@ describe Hitimes::TimedMetric do
84
84
  end
85
85
 
86
86
  it "keeps track of the minimum start time of all the intervals" do
87
- f1 = Time.now.gmtime.to_f * 1000000
87
+ f1 = Time.now.gmtime.to_f * 1_000_000
88
88
  5.times { @tm.start ; sleep 0.05 ; @tm.stop }
89
- f2 = Time.now.gmtime.to_f * 1000000
90
- @tm.sampling_start_time.should > f1
89
+ f2 = Time.now.gmtime.to_f * 1_000_000
90
+ @tm.sampling_start_time.should >= f1
91
91
  @tm.sampling_start_time.should < f2
92
92
  # distance from now to start time should be greater than the distance from
93
93
  # the start to the min start_time
@@ -99,7 +99,7 @@ describe Hitimes::TimedMetric do
99
99
  5.times { @tm.start ; sleep 0.05 ; @tm.stop }
100
100
  f2 = Time.now.gmtime.to_f * 1_000_000
101
101
  @tm.sampling_stop_time.should > f1
102
- @tm.sampling_stop_time.should < f2
102
+ @tm.sampling_stop_time.should <= f2
103
103
  # distance from now to max stop time time should be less than the distance
104
104
  # from the start to the max stop time
105
105
  (f2 - @tm.sampling_stop_time).should < ( @tm.sampling_stop_time - f1 )
@@ -140,7 +140,7 @@ describe Hitimes::TimedMetric do
140
140
  it "has the right sum" do
141
141
  10.times { |x| @tm.measure { sleep 0.01*x } }
142
142
  h = @tm.to_hash
143
- h['sum'].should be_close( 0.45, 0.002 )
143
+ h['sum'].should be_close( 0.45, 0.003 )
144
144
  end
145
145
 
146
146
  fields = ::Hitimes::Stats::STATS.dup + %w[ name additional_data sampling_start_time sampling_stop_time ]
@@ -97,7 +97,7 @@ describe Hitimes::TimedValueMetric do
97
97
  f1 = Time.now.gmtime.to_f * 1000000
98
98
  5.times { @tm.start ; sleep 0.05 ; @tm.stop( 1 ) }
99
99
  f2 = Time.now.gmtime.to_f * 1000000
100
- @tm.sampling_start_time.should > f1
100
+ @tm.sampling_start_time.should >= f1
101
101
  @tm.sampling_start_time.should < f2
102
102
  # distance from now to start time should be greater than the distance from
103
103
  # the start to the min start_time
@@ -109,7 +109,7 @@ describe Hitimes::TimedValueMetric do
109
109
  5.times { @tm.start ; sleep 0.05 ; @tm.stop( 1 ) }
110
110
  f2 = Time.now.gmtime.to_f * 1000000
111
111
  @tm.sampling_stop_time.should > f1
112
- @tm.sampling_stop_time.should < f2
112
+ @tm.sampling_stop_time.should <= f2
113
113
  # distance from now to max stop time time should be less than the distance
114
114
  # from the start to the max stop time
115
115
  (f2 - @tm.sampling_stop_time).should < ( @tm.sampling_stop_time - f1 )
@@ -58,10 +58,10 @@ describe Hitimes::ValueMetric do
58
58
  it "keeps track of the first start time of all the measurements" do
59
59
  m = Hitimes::ValueMetric.new( "first-start-time" )
60
60
  f1 = Time.now.gmtime.to_f * 1_000_000
61
- 10.times{ |x| m.measure( x ) }
61
+ 10.times{ |x| m.measure( x ); sleep 0.1 }
62
62
  f2 = Time.now.gmtime.to_f * 1_000_000
63
- m.sampling_start_time.should > f1
64
- m.sampling_stop_time.should < f2
63
+ m.sampling_start_time.should >= f1
64
+ m.sampling_start_time.should < f2
65
65
  # distance from now to start time should be greater than the distance from
66
66
  # the start to the min start_time
67
67
  (f2 - m.sampling_start_time).should > ( m.sampling_start_time - f1 )
@@ -70,10 +70,10 @@ describe Hitimes::ValueMetric do
70
70
  it "keeps track of the last stop time of all the intervals" do
71
71
  m = Hitimes::ValueMetric.new( "last-stop-time" )
72
72
  f1 = Time.now.gmtime.to_f * 1_000_000
73
- 10.times {|x| m.measure( x ) }
73
+ 10.times {|x| m.measure( x ); sleep 0.1 }
74
74
  f2 = Time.now.gmtime.to_f * 1_000_000
75
75
  m.sampling_stop_time.should > f1
76
- m.sampling_stop_time.should < f2
76
+ m.sampling_stop_time.should <= f2
77
77
  # distance from now to max stop time time should be less than the distance
78
78
  # from the start to the max stop time
79
79
  (f2 - m.sampling_stop_time).should < ( m.sampling_stop_time - f1 )
data/tasks/config.rb CHANGED
@@ -2,6 +2,7 @@ require 'configuration'
2
2
 
3
3
  require 'rake'
4
4
  require 'tasks/utils'
5
+ require 'yaml'
5
6
 
6
7
  #-----------------------------------------------------------------------
7
8
  # General project configuration
@@ -92,7 +93,7 @@ Configuration.for('rdoc') {
92
93
  #-----------------------------------------------------------------------
93
94
  Configuration.for('extension') {
94
95
  configs Configuration.for('packaging').files.ext.find_all { |x| %w[ mkrf_conf.rb extconf.rb ].include?(File.basename(x)) }
95
- cross_rbconfig YAML.load_file( File.expand_path("~/.rake-compiler/config.yml"))
96
+ cross_rbconfig ::YAML::load_file( File.expand_path("~/.rake-compiler/config.yml"))
96
97
  }
97
98
 
98
99
  #-----------------------------------------------------------------------
@@ -36,11 +36,16 @@ if pkg_config = Configuration.for_if_exist?("packaging") then
36
36
  puts Hitimes::GEM_SPEC_WIN.to_ruby
37
37
  end
38
38
 
39
+ desc "dump gemspec for java"
40
+ task :gemspec_java do
41
+ puts Hitimes::GEM_SPEC_JAVA.to_ruby
42
+ end
43
+
39
44
  desc "reinstall gem"
40
45
  task :reinstall => [:uninstall, :repackage, :install]
41
46
 
42
47
  desc "package up a windows gem"
43
- task :package_win => :clean do
48
+ task :package_win => :clean do
44
49
  Configuration.for("extension").cross_rbconfig.keys.each do |rbconfig|
45
50
  v = rbconfig.split("-").last
46
51
  s = v.sub(/\.\d$/,'')
@@ -58,15 +63,25 @@ if pkg_config = Configuration.for_if_exist?("packaging") then
58
63
  end
59
64
  end
60
65
 
66
+ if RUBY_PLATFORM == "java" then
67
+ desc "package up a jruby gem"
68
+ task :package_java => "ext:build_java" do
69
+ Hitimes::GEM_SPEC_JAVA.files += FileList["lib/hitimes/java/*.jar"]
70
+ Gem::Builder.new( Hitimes::GEM_SPEC_JAVA ).build
71
+ mv Dir["*.gem"].first, "pkg"
72
+ end
73
+ end
74
+
61
75
  task :clobber do
62
76
  rm_rf "lib/hitimes/1.8"
63
77
  rm_rf "lib/hitimes/1.9"
78
+ rm_rf "lib/hitimes/*.jar"
64
79
  end
65
80
 
66
- task :prep => [:clean, :package, :package_win]
81
+ task :prep => [:clean, :package, :package_win, :package_java ]
67
82
 
68
83
  desc "distribute copiously"
69
- task :copious => [:clean, :package, :package_win ] do
84
+ task :copious => [:clean, :package, :package_win, :package_java ] do
70
85
  gems = Hitimes::SPECS.collect { |s| "#{s.full_name}.gem" }
71
86
  Rake::SshFilePublisher.new('jeremy@copiousfreetime.org',
72
87
  '/var/www/vhosts/www.copiousfreetime.org/htdocs/gems/gems',
data/tasks/extension.rake CHANGED
@@ -8,7 +8,7 @@ require 'pathname'
8
8
  if ext_config = Configuration.for_if_exist?('extension') then
9
9
  namespace :ext do
10
10
  desc "Build the extension(s)"
11
- task :build => :clean do
11
+ task :build => :clobber do
12
12
  ext_config.configs.each do |extension|
13
13
  path = Pathname.new(extension)
14
14
  parts = path.split
@@ -26,6 +26,23 @@ if ext_config = Configuration.for_if_exist?('extension') then
26
26
  end
27
27
  end
28
28
 
29
+ if RUBY_PLATFORM == "java" then
30
+ desc "Build the jruby extension"
31
+ task :build_java => [ :clobber, "lib/hitimes/hitimes.jar" ]
32
+
33
+ file "lib/hitimes/hitimes.jar" => FileList["ext/java/src/hitimes/*.java"] do |t|
34
+ jruby_home = Config::CONFIG['prefix']
35
+ jruby_jar = File.join( jruby_home, 'lib', 'jruby.jar' )
36
+
37
+ mkdir_p 'pkg/classes'
38
+ sh "javac -classpath #{jruby_jar} -d pkg/classes #{t.prerequisites.join(' ')}"
39
+
40
+ dest_dir = File.dirname(t.name)
41
+ sh "jar cf #{t.name} -C pkg/classes ."
42
+ end
43
+ end
44
+
45
+
29
46
  def build_win( version = "1.8.6" )
30
47
  ext_config = Configuration.for("extension")
31
48
  rbconfig = ext_config.cross_rbconfig["rbconfig-#{version}"]
@@ -34,7 +51,7 @@ if ext_config = Configuration.for_if_exist?('extension') then
34
51
  path = Pathname.new(extension)
35
52
  parts = path.split
36
53
  conf = parts.last
37
- rvm = %x[ which rvm ].strip
54
+ rvm = File.expand_path( "~/.rvm/bin/rvm" )
38
55
  Dir.chdir(path.dirname) do |d|
39
56
  if File.exist?( "Makefile" ) then
40
57
  sh "make clean distclean"
data/tasks/rspec.rake CHANGED
@@ -25,7 +25,9 @@ if spec_config = Configuration.for_if_exist?("test") then
25
25
  end
26
26
  end
27
27
 
28
- task :spec => "ext:build"
28
+ pre_req = "ext:build"
29
+ pre_req += "_java" if RUBY_PLATFORM == "java"
30
+ task :spec => pre_req
29
31
  end
30
32
  end
31
33
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hitimes
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 5
10
- version: 1.0.5
10
+ version: 1.1.0
11
11
  platform: x86-mingw32
12
12
  authors:
13
13
  - Jeremy Hinegardner
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-20 00:00:00 -06:00
18
+ date: 2010-07-28 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency