hitimes 1.1.0-java

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 (49) hide show
  1. data/HISTORY +69 -0
  2. data/LICENSE +13 -0
  3. data/README +134 -0
  4. data/Rakefile +66 -0
  5. data/examples/benchmarks.rb +113 -0
  6. data/examples/stats.rb +31 -0
  7. data/ext/hitimes/extconf.rb +17 -0
  8. data/ext/hitimes/hitimes_ext.c +21 -0
  9. data/ext/hitimes/hitimes_instant_clock_gettime.c +28 -0
  10. data/ext/hitimes/hitimes_instant_osx.c +16 -0
  11. data/ext/hitimes/hitimes_instant_windows.c +27 -0
  12. data/ext/hitimes/hitimes_interval.c +362 -0
  13. data/ext/hitimes/hitimes_interval.h +73 -0
  14. data/ext/hitimes/hitimes_stats.c +269 -0
  15. data/ext/hitimes/hitimes_stats.h +30 -0
  16. data/ext/java/src/hitimes/Hitimes.java +54 -0
  17. data/ext/java/src/hitimes/HitimesInterval.java +174 -0
  18. data/ext/java/src/hitimes/HitimesService.java +16 -0
  19. data/ext/java/src/hitimes/HitimesStats.java +112 -0
  20. data/gemspec.rb +65 -0
  21. data/lib/hitimes.rb +37 -0
  22. data/lib/hitimes/hitimes.jar +0 -0
  23. data/lib/hitimes/metric.rb +118 -0
  24. data/lib/hitimes/mutexed_stats.rb +32 -0
  25. data/lib/hitimes/paths.rb +53 -0
  26. data/lib/hitimes/stats.rb +58 -0
  27. data/lib/hitimes/timed_metric.rb +176 -0
  28. data/lib/hitimes/timed_value_metric.rb +233 -0
  29. data/lib/hitimes/value_metric.rb +71 -0
  30. data/lib/hitimes/version.rb +57 -0
  31. data/spec/interval_spec.rb +133 -0
  32. data/spec/metric_spec.rb +30 -0
  33. data/spec/mutex_stats_spec.rb +34 -0
  34. data/spec/paths_spec.rb +13 -0
  35. data/spec/spec_helper.rb +5 -0
  36. data/spec/stats_spec.rb +100 -0
  37. data/spec/timed_metric_spec.rb +155 -0
  38. data/spec/timed_value_metric_spec.rb +172 -0
  39. data/spec/value_metric_spec.rb +110 -0
  40. data/spec/version_spec.rb +33 -0
  41. data/tasks/announce.rake +42 -0
  42. data/tasks/config.rb +109 -0
  43. data/tasks/distribution.rake +93 -0
  44. data/tasks/documentation.rake +32 -0
  45. data/tasks/extension.rake +108 -0
  46. data/tasks/rspec.rake +33 -0
  47. data/tasks/rubyforge.rake +55 -0
  48. data/tasks/utils.rb +80 -0
  49. metadata +191 -0
@@ -0,0 +1,93 @@
1
+ require 'tasks/config'
2
+
3
+ #-------------------------------------------------------------------------------
4
+ # Distribution and Packaging
5
+ #-------------------------------------------------------------------------------
6
+ if pkg_config = Configuration.for_if_exist?("packaging") then
7
+
8
+ require 'gemspec'
9
+ require 'rake/gempackagetask'
10
+ require 'rake/contrib/sshpublisher'
11
+
12
+ namespace :dist do
13
+
14
+ Rake::GemPackageTask.new(Hitimes::GEM_SPEC) do |pkg|
15
+ pkg.need_tar = pkg_config.formats.tgz
16
+ pkg.need_zip = pkg_config.formats.zip
17
+ end
18
+
19
+ desc "Install as a gem"
20
+ task :install => [:clobber, :package] do
21
+ sh "sudo gem install pkg/#{Hitimes::GEM_SPEC.full_name}.gem"
22
+ end
23
+
24
+ desc "Uninstall gem"
25
+ task :uninstall do
26
+ sh "sudo gem uninstall -x #{Hitimes::GEM_SPEC.name}"
27
+ end
28
+
29
+ desc "dump gemspec"
30
+ task :gemspec do
31
+ puts Hitimes::GEM_SPEC.to_ruby
32
+ end
33
+
34
+ desc "dump gemspec for win"
35
+ task :gemspec_win do
36
+ puts Hitimes::GEM_SPEC_WIN.to_ruby
37
+ end
38
+
39
+ desc "dump gemspec for java"
40
+ task :gemspec_java do
41
+ puts Hitimes::GEM_SPEC_JAVA.to_ruby
42
+ end
43
+
44
+ desc "reinstall gem"
45
+ task :reinstall => [:uninstall, :repackage, :install]
46
+
47
+ desc "package up a windows gem"
48
+ task :package_win => :clean do
49
+ Configuration.for("extension").cross_rbconfig.keys.each do |rbconfig|
50
+ v = rbconfig.split("-").last
51
+ s = v.sub(/\.\d$/,'')
52
+ sh "rake ext:build_win-#{v}"
53
+ mkdir_p "lib/hitimes/#{s}", :verbose => true
54
+ cp "ext/hitimes/hitimes_ext.so", "lib/hitimes/#{s}/", :verbose => true
55
+ end
56
+
57
+ Hitimes::SPECS.each do |spec|
58
+ next if spec.platform == "ruby"
59
+ spec.files += FileList["lib/hitimes/{1.8,1.9}/**.{dll,so}"]
60
+ Gem::Builder.new( spec ).build
61
+ mkdir "pkg" unless File.directory?( 'pkg' )
62
+ mv Dir["*.gem"].first, "pkg"
63
+ end
64
+ end
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/*.jar"]
70
+ Hitimes::GEM_SPEC_JAVA.files += FileList["ext/java/src/hitimes/*.java"]
71
+ Gem::Builder.new( Hitimes::GEM_SPEC_JAVA ).build
72
+ mv Dir["*.gem"].first, "pkg"
73
+ end
74
+ end
75
+
76
+ task :clobber do
77
+ rm_rf "lib/hitimes/1.8"
78
+ rm_rf "lib/hitimes/1.9"
79
+ rm_rf "lib/hitimes/*.jar"
80
+ end
81
+
82
+ task :prep => [:clean, :package, :package_win, :package_java ]
83
+
84
+ desc "distribute copiously"
85
+ task :copious => [:clean, :package, :package_win, :package_java ] do
86
+ gems = Hitimes::SPECS.collect { |s| "#{s.full_name}.gem" }
87
+ Rake::SshFilePublisher.new('jeremy@copiousfreetime.org',
88
+ '/var/www/vhosts/www.copiousfreetime.org/htdocs/gems/gems',
89
+ 'pkg', *gems).upload
90
+ sh "ssh jeremy@copiousfreetime.org rake -f /var/www/vhosts/www.copiousfreetime.org/htdocs/gems/Rakefile"
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,32 @@
1
+ require 'tasks/config'
2
+
3
+ #-----------------------------------------------------------------------
4
+ # Documentation
5
+ #-----------------------------------------------------------------------
6
+
7
+ if rdoc_config = Configuration.for_if_exist?('rdoc') then
8
+
9
+ namespace :doc do
10
+
11
+ require 'rdoc'
12
+ require 'rake/rdoctask'
13
+
14
+ # generating documentation locally
15
+ Rake::RDocTask.new do |rdoc|
16
+ rdoc.rdoc_dir = rdoc_config.output_dir
17
+ rdoc.options = rdoc_config.options
18
+ rdoc.rdoc_files = rdoc_config.files.sort
19
+ rdoc.title = rdoc_config.title
20
+ rdoc.main = rdoc_config.main_page
21
+ end
22
+
23
+ if rubyforge_config = Configuration.for_if_exist?('rubyforge') then
24
+ desc "Deploy the RDoc documentation to #{rubyforge_config.rdoc_location}"
25
+ task :deploy => :rerdoc do
26
+ sh "rsync -zav --delete #{rdoc_config.output_dir}/ #{rubyforge_config.rdoc_location}"
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+
@@ -0,0 +1,108 @@
1
+ require 'tasks/config'
2
+ require 'pathname'
3
+
4
+ #-----------------------------------------------------------------------
5
+ # Extensions
6
+ #-----------------------------------------------------------------------
7
+
8
+ if ext_config = Configuration.for_if_exist?('extension') then
9
+ namespace :ext do
10
+ desc "Build the extension(s)"
11
+ task :build => :clobber do
12
+ ext_config.configs.each do |extension|
13
+ path = Pathname.new(extension)
14
+ parts = path.split
15
+ conf = parts.last
16
+ Dir.chdir(path.dirname) do |d|
17
+ ruby conf.to_s
18
+ sh "make"
19
+
20
+ # install into requireable location so specs will run
21
+ subdir = "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}"
22
+ dest_dir = Hitimes::Paths.lib_path( subdir )
23
+ mkdir_p dest_dir, :verbose => true
24
+ cp "hitimes_ext.#{Config::CONFIG['DLEXT']}", dest_dir, :verbose => true
25
+ end
26
+ end
27
+ end
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
+
46
+ def build_win( version = "1.8.6" )
47
+ ext_config = Configuration.for("extension")
48
+ rbconfig = ext_config.cross_rbconfig["rbconfig-#{version}"]
49
+ raise ArgumentError, "No cross compiler for version #{version}, we have #{ext_config.cross_rbconfig.keys.join(",")}" unless rbconfig
50
+ Hitimes::GEM_SPEC.extensions.each do |extension|
51
+ path = Pathname.new(extension)
52
+ parts = path.split
53
+ conf = parts.last
54
+ rvm = File.expand_path( "~/.rvm/bin/rvm" )
55
+ Dir.chdir(path.dirname) do |d|
56
+ if File.exist?( "Makefile" ) then
57
+ sh "make clean distclean"
58
+ end
59
+ cp "#{rbconfig}", "rbconfig.rb"
60
+ rubylib = ENV['RUBYLIB']
61
+ ENV['RUBYLIB'] = "."
62
+ sh %[#{rvm} #{version} -S extconf.rb]
63
+ ENV['RUBYLIB'] = rubylib
64
+ sh "make"
65
+ end
66
+ end
67
+ end
68
+
69
+ win_builds = []
70
+ ext_config.cross_rbconfig.keys.each do |v|
71
+ s = v.split("-").last
72
+ desc "Build the extension for windows version #{s}"
73
+ win_bname = "build_win-#{s}"
74
+ win_builds << win_bname
75
+ task win_bname => :clean do
76
+ build_win( s )
77
+ end
78
+ end
79
+
80
+ task :clean do
81
+ ext_config.configs.each do |extension|
82
+ path = Pathname.new(extension)
83
+ parts = path.split
84
+ conf = parts.last
85
+ Dir.chdir(path.dirname) do |d|
86
+ if File.exist?( "Makefile" ) then
87
+ sh "make clean"
88
+ end
89
+ rm_f "rbconfig.rb"
90
+ end
91
+ end
92
+ end
93
+
94
+ task :clobber do
95
+ ext_config.configs.each do |extension|
96
+ path = Pathname.new(extension)
97
+ parts = path.split
98
+ conf = parts.last
99
+ Dir.chdir(path.dirname) do |d|
100
+ if File.exist?( "Makefile" ) then
101
+ sh "make distclean"
102
+ end
103
+ rm_f "rbconfig.rb"
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,33 @@
1
+
2
+ require 'tasks/config'
3
+
4
+ #--------------------------------------------------------------------------------
5
+ # configuration for running rspec. This shows up as the test:default task
6
+ #--------------------------------------------------------------------------------
7
+ if spec_config = Configuration.for_if_exist?("test") then
8
+ if spec_config.mode == "spec" then
9
+ namespace :test do
10
+
11
+ task :default => :spec
12
+
13
+ require 'spec/rake/spectask'
14
+ Spec::Rake::SpecTask.new do |r|
15
+ r.ruby_opts = spec_config.ruby_opts
16
+ r.libs = [ Hitimes::Paths.lib_path,
17
+ Hitimes::Paths.root_dir ]
18
+ r.spec_files = spec_config.files
19
+ r.spec_opts = spec_config.options
20
+
21
+ if rcov_config = Configuration.for_if_exist?('rcov') then
22
+ r.rcov = true
23
+ r.rcov_dir = rcov_config.output_dir
24
+ r.rcov_opts = rcov_config.rcov_opts
25
+ end
26
+ end
27
+
28
+ pre_req = "ext:build"
29
+ pre_req += "_java" if RUBY_PLATFORM == "java"
30
+ task :spec => pre_req
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,55 @@
1
+ require 'tasks/config'
2
+
3
+ #-----------------------------------------------------------------------
4
+ # Rubyforge additions to the task library
5
+ #-----------------------------------------------------------------------
6
+ if rf_conf = Configuration.for_if_exist?("rubyforge") then
7
+
8
+ abort("rubyforge gem not installed 'gem install rubyforge'") unless Utils.try_require('rubyforge')
9
+
10
+ proj_conf = Configuration.for('project')
11
+
12
+ namespace :dist do
13
+ desc "Release files to rubyforge"
14
+ task :rubyforge => [:clean, :package, :package_win] do
15
+
16
+ rubyforge = RubyForge.new
17
+
18
+ config = {}
19
+ config["release_notes"] = proj_conf.description
20
+ config["release_changes"] = Utils.release_notes_from(proj_conf.history)[Hitimes::VERSION]
21
+ config["Prefomatted"] = true
22
+
23
+
24
+ rubyforge.configure config
25
+
26
+ # make sure this release doesn't already exist
27
+ releases = rubyforge.autoconfig['release_ids']
28
+ if releases.has_key?(Hitimes::GEM_SPEC.name) and releases[Hitimes::GEM_SPEC.name][Hitimes::VERSION] then
29
+ abort("Release #{Hitimes::VERSION} already exists! Unable to release.")
30
+ end
31
+
32
+ puts "Uploading to rubyforge..."
33
+ files = FileList[File.join("pkg","#{Hitimes::GEM_SPEC.name}-#{Hitimes::VERSION}*.*")].to_a
34
+ files.each do |f|
35
+ puts " * #{f}"
36
+ end
37
+ rubyforge.login
38
+ rubyforge.add_release(Hitimes::GEM_SPEC.rubyforge_project, Hitimes::GEM_SPEC.name, Hitimes::VERSION, *files)
39
+ puts "done."
40
+ end
41
+ end
42
+
43
+ namespace :announce do
44
+ desc "Post news of #{proj_conf.name} to #{rf_conf.project} on rubyforge"
45
+ task :rubyforge do
46
+ info = Utils.announcement
47
+ rubyforge = RubyForge.new
48
+ rubyforge.configure
49
+ rubyforge.login
50
+ rubyforge.post_news(rf_conf.project, info[:subject], "#{info[:title]}\n\n#{info[:urls]}\n\n#{info[:release_notes]}")
51
+ puts "Posted to rubyforge"
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,80 @@
1
+ require 'hitimes/version'
2
+
3
+ #-------------------------------------------------------------------------------
4
+ # Additions to the Configuration class that are useful
5
+ #-------------------------------------------------------------------------------
6
+ class Configuration
7
+ class << self
8
+ def exist?( name )
9
+ Configuration::Table.has_key?( name )
10
+ end
11
+
12
+ def for_if_exist?( name )
13
+ if self.exist?( name ) then
14
+ self.for( name )
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ #-------------------------------------------------------------------------------
21
+ # some useful utilitiy methods for the tasks
22
+ #-------------------------------------------------------------------------------
23
+ module Utils
24
+ class << self
25
+
26
+ # Try to load the given _library_ using the built-in require, but do not
27
+ # raise a LoadError if unsuccessful. Returns +true+ if the _library_ was
28
+ # successfully loaded; returns +false+ otherwise.
29
+ #
30
+ def try_require( lib )
31
+ require lib
32
+ true
33
+ rescue LoadError
34
+ false
35
+ end
36
+
37
+ # partition an rdoc file into sections, and return the text of the section
38
+ # given.
39
+ def section_of(file, section_name)
40
+ File.read(file).split(/^(?==)/).each do |section|
41
+ lines = section.split("\n")
42
+ return lines[1..-1].join("\n").strip if lines.first =~ /#{section_name}/i
43
+ end
44
+ nil
45
+ end
46
+
47
+ # Get an array of all the changes in the application for a particular
48
+ # release. This is done by looking in the history file and grabbing the
49
+ # information for the most recent release. The history file is assumed to
50
+ # be in RDoc format and version release are 2nd tier sections separated by
51
+ # '== Version X.Y.Z'
52
+ #
53
+ # returns:: A hash of notes keyed by version number
54
+ #
55
+ def release_notes_from(history_file)
56
+ releases = {}
57
+ File.read(history_file).split(/^(?=== Version)/).each do |section|
58
+ lines = section.split("\n")
59
+ md = %r{Version ((\w+\.)+\w+)}.match(lines.first)
60
+ next unless md
61
+ releases[md[1]] = lines[1..-1].join("\n").strip
62
+ end
63
+ return releases
64
+ end
65
+
66
+ # return a hash of useful information for the latest release
67
+ # urls, subject, title, description and latest release notes
68
+ #
69
+ def announcement
70
+ cfg = Configuration.for("project")
71
+ {
72
+ :subject => "#{cfg.name} #{Hitimes::VERSION} Released",
73
+ :title => "#{cfg.name} version #{Hitimes::VERSION} has been released.",
74
+ :urls => "#{cfg.homepage}",
75
+ :description => "#{cfg.description.rstrip}",
76
+ :release_notes => Utils.release_notes_from(cfg.history)[Hitimes::VERSION].rstrip
77
+ }
78
+ end
79
+ end
80
+ end # << self
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hitimes
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 0
9
+ version: 1.1.0
10
+ platform: java
11
+ authors:
12
+ - Jeremy Hinegardner
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-07-28 00:00:00 -06:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rake
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 8
30
+ - 1
31
+ version: 0.8.1
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: configuration
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 0
44
+ - 5
45
+ version: 0.0.5
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: json
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 1
57
+ - 1
58
+ - 3
59
+ version: 1.1.3
60
+ type: :development
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake-compiler
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ - 5
72
+ - 0
73
+ version: 0.5.0
74
+ type: :development
75
+ version_requirements: *id004
76
+ description: |-
77
+ Hitimes is a fast, high resolution timer library for recording
78
+ performance metrics. It uses the appropriate C method calls for each
79
+ system to get the highest granularity time increments possible.
80
+
81
+ It currently supports any of the following systems:
82
+
83
+ * any system with the POSIX call <tt>clock_gettime()</tt>,
84
+ * Mac OS X
85
+ * Windows
86
+
87
+ Using Hitimes can be faster than using a series of +Time.new+ calls, and
88
+ it will have a much higher granularity. It is definitely faster than
89
+ using +Process.times+.
90
+ email: jeremy@copiousfreetime.org
91
+ executables: []
92
+
93
+ extensions: []
94
+
95
+ extra_rdoc_files:
96
+ - README
97
+ - HISTORY
98
+ - LICENSE
99
+ - lib/hitimes.rb
100
+ - lib/hitimes/metric.rb
101
+ - lib/hitimes/mutexed_stats.rb
102
+ - lib/hitimes/paths.rb
103
+ - lib/hitimes/stats.rb
104
+ - lib/hitimes/timed_metric.rb
105
+ - lib/hitimes/timed_value_metric.rb
106
+ - lib/hitimes/value_metric.rb
107
+ - lib/hitimes/version.rb
108
+ files:
109
+ - examples/benchmarks.rb
110
+ - examples/stats.rb
111
+ - ext/hitimes/hitimes_ext.c
112
+ - ext/hitimes/hitimes_instant_clock_gettime.c
113
+ - ext/hitimes/hitimes_instant_osx.c
114
+ - ext/hitimes/hitimes_instant_windows.c
115
+ - ext/hitimes/hitimes_interval.c
116
+ - ext/hitimes/hitimes_stats.c
117
+ - ext/hitimes/hitimes_interval.h
118
+ - ext/hitimes/hitimes_stats.h
119
+ - ext/hitimes/extconf.rb
120
+ - lib/hitimes.rb
121
+ - lib/hitimes/metric.rb
122
+ - lib/hitimes/mutexed_stats.rb
123
+ - lib/hitimes/paths.rb
124
+ - lib/hitimes/stats.rb
125
+ - lib/hitimes/timed_metric.rb
126
+ - lib/hitimes/timed_value_metric.rb
127
+ - lib/hitimes/value_metric.rb
128
+ - lib/hitimes/version.rb
129
+ - spec/interval_spec.rb
130
+ - spec/metric_spec.rb
131
+ - spec/mutex_stats_spec.rb
132
+ - spec/paths_spec.rb
133
+ - spec/spec_helper.rb
134
+ - spec/stats_spec.rb
135
+ - spec/timed_metric_spec.rb
136
+ - spec/timed_value_metric_spec.rb
137
+ - spec/value_metric_spec.rb
138
+ - spec/version_spec.rb
139
+ - README
140
+ - HISTORY
141
+ - LICENSE
142
+ - tasks/announce.rake
143
+ - tasks/distribution.rake
144
+ - tasks/documentation.rake
145
+ - tasks/extension.rake
146
+ - tasks/rspec.rake
147
+ - tasks/rubyforge.rake
148
+ - tasks/config.rb
149
+ - tasks/utils.rb
150
+ - Rakefile
151
+ - gemspec.rb
152
+ - lib/hitimes/hitimes.jar
153
+ - ext/java/src/hitimes/Hitimes.java
154
+ - ext/java/src/hitimes/HitimesInterval.java
155
+ - ext/java/src/hitimes/HitimesService.java
156
+ - ext/java/src/hitimes/HitimesStats.java
157
+ has_rdoc: true
158
+ homepage: http://copiousfreetime.rubyforge.org/hitimes/
159
+ licenses: []
160
+
161
+ post_install_message:
162
+ rdoc_options:
163
+ - --line-numbers
164
+ - --main
165
+ - README
166
+ require_paths:
167
+ - lib
168
+ - ext
169
+ required_ruby_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ segments:
174
+ - 0
175
+ version: "0"
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ segments:
181
+ - 0
182
+ version: "0"
183
+ requirements: []
184
+
185
+ rubyforge_project: copiousfreetime
186
+ rubygems_version: 1.3.6
187
+ signing_key:
188
+ specification_version: 3
189
+ summary: Hitimes is a fast, high resolution timer library for recording performance metrics
190
+ test_files: []
191
+