rubyrun 0.9.0-mswin32

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 (96) hide show
  1. data/LICENSE +13 -0
  2. data/README +77 -0
  3. data/Rakefile +241 -0
  4. data/bin/confgure +2 -0
  5. data/docs/rubyrun-0.9.0.htm +6344 -0
  6. data/docs/rubyrun-0.9.0.pdf +0 -0
  7. data/docs/rubyrun-0.9.0_files/colorschememapping.xml +2 -0
  8. data/docs/rubyrun-0.9.0_files/filelist.xml +29 -0
  9. data/docs/rubyrun-0.9.0_files/header.htm +141 -0
  10. data/docs/rubyrun-0.9.0_files/image001.jpg +0 -0
  11. data/docs/rubyrun-0.9.0_files/image002.jpg +0 -0
  12. data/docs/rubyrun-0.9.0_files/image003.jpg +0 -0
  13. data/docs/rubyrun-0.9.0_files/image004.jpg +0 -0
  14. data/docs/rubyrun-0.9.0_files/image005.jpg +0 -0
  15. data/docs/rubyrun-0.9.0_files/image006.jpg +0 -0
  16. data/docs/rubyrun-0.9.0_files/image007.jpg +0 -0
  17. data/docs/rubyrun-0.9.0_files/image008.jpg +0 -0
  18. data/docs/rubyrun-0.9.0_files/image009.jpg +0 -0
  19. data/docs/rubyrun-0.9.0_files/image010.jpg +0 -0
  20. data/docs/rubyrun-0.9.0_files/image011.jpg +0 -0
  21. data/docs/rubyrun-0.9.0_files/image012.jpg +0 -0
  22. data/docs/rubyrun-0.9.0_files/image013.jpg +0 -0
  23. data/docs/rubyrun-0.9.0_files/image014.jpg +0 -0
  24. data/docs/rubyrun-0.9.0_files/image015.jpg +0 -0
  25. data/docs/rubyrun-0.9.0_files/image016.jpg +0 -0
  26. data/docs/rubyrun-0.9.0_files/image017.png +0 -0
  27. data/docs/rubyrun-0.9.0_files/image018.jpg +0 -0
  28. data/docs/rubyrun-0.9.0_files/image019.jpg +0 -0
  29. data/docs/rubyrun-0.9.0_files/image020.jpg +0 -0
  30. data/docs/rubyrun-0.9.0_files/image021.jpg +0 -0
  31. data/docs/rubyrun-0.9.0_files/image022.png +0 -0
  32. data/docs/rubyrun-0.9.0_files/themedata.thmx +0 -0
  33. data/etc/rubyrun_opts.yml +132 -0
  34. data/ext/extconf.rb +4 -0
  35. data/ext/rubyrunnative__.bundle +0 -0
  36. data/ext/rubyrunnative__.c +154 -0
  37. data/ext/rubyrunnative__.def +2 -0
  38. data/ext/rubyrunnative__.h +36 -0
  39. data/ext/rubyrunnative__.so +0 -0
  40. data/ext/rubyrunnative__linux.so +0 -0
  41. data/html/classes/Module.html +174 -0
  42. data/html/classes/Object.html +151 -0
  43. data/html/classes/RubyRunBufferMgr__.html +182 -0
  44. data/html/classes/RubyRunCommander__.html +578 -0
  45. data/html/classes/RubyRunDad__.html +144 -0
  46. data/html/classes/RubyRunGlobals.html +248 -0
  47. data/html/classes/RubyRunHTMLWriter/RubyRunHTMLDevice.html +157 -0
  48. data/html/classes/RubyRunHTMLWriter.html +186 -0
  49. data/html/classes/RubyRunHTML__.html +198 -0
  50. data/html/classes/RubyRunInitializer__.html +821 -0
  51. data/html/classes/RubyRunInstrumentor__.html +576 -0
  52. data/html/classes/RubyRunMonitor__.html +298 -0
  53. data/html/classes/RubyRunRSS.html +302 -0
  54. data/html/classes/RubyRunReport__.html +294 -0
  55. data/html/classes/RubyRunTracer__.html +253 -0
  56. data/html/classes/RubyRunUtils__.html +376 -0
  57. data/html/created.rid +1 -0
  58. data/html/files/LICENSE.html +119 -0
  59. data/html/files/README.html +197 -0
  60. data/html/files/lib/rubyrun/rubyrun_buffer_mgr___rb.html +101 -0
  61. data/html/files/lib/rubyrun/rubyrun_commander___rb.html +101 -0
  62. data/html/files/lib/rubyrun/rubyrun_dad___rb.html +101 -0
  63. data/html/files/lib/rubyrun/rubyrun_globals_rb.html +101 -0
  64. data/html/files/lib/rubyrun/rubyrun_html___rb.html +101 -0
  65. data/html/files/lib/rubyrun/rubyrun_html_writer___rb.html +108 -0
  66. data/html/files/lib/rubyrun/rubyrun_initializer___rb.html +112 -0
  67. data/html/files/lib/rubyrun/rubyrun_instrumentor___rb.html +116 -0
  68. data/html/files/lib/rubyrun/rubyrun_monitor___rb.html +116 -0
  69. data/html/files/lib/rubyrun/rubyrun_rb.html +121 -0
  70. data/html/files/lib/rubyrun/rubyrun_report___rb.html +101 -0
  71. data/html/files/lib/rubyrun/rubyrun_rss___rb.html +108 -0
  72. data/html/files/lib/rubyrun/rubyrun_tracer___rb.html +110 -0
  73. data/html/files/lib/rubyrun/rubyrun_utils___rb.html +108 -0
  74. data/html/files/lib/rubyrunm_rb.html +116 -0
  75. data/html/fr_class_index.html +42 -0
  76. data/html/fr_file_index.html +43 -0
  77. data/html/fr_method_index.html +96 -0
  78. data/html/index.html +24 -0
  79. data/html/rdoc-style.css +208 -0
  80. data/lib/rubyrun/rubyrun.rb +78 -0
  81. data/lib/rubyrun/rubyrun_buffer_mgr__.rb +49 -0
  82. data/lib/rubyrun/rubyrun_commander__.rb +196 -0
  83. data/lib/rubyrun/rubyrun_dad__.rb +35 -0
  84. data/lib/rubyrun/rubyrun_globals.rb +51 -0
  85. data/lib/rubyrun/rubyrun_html__.rb +136 -0
  86. data/lib/rubyrun/rubyrun_html_writer__.rb +64 -0
  87. data/lib/rubyrun/rubyrun_initializer__.rb +286 -0
  88. data/lib/rubyrun/rubyrun_instrumentor__.rb +226 -0
  89. data/lib/rubyrun/rubyrun_monitor__.rb +237 -0
  90. data/lib/rubyrun/rubyrun_report__.rb +109 -0
  91. data/lib/rubyrun/rubyrun_rss__.rb +97 -0
  92. data/lib/rubyrun/rubyrun_tracer__.rb +79 -0
  93. data/lib/rubyrun/rubyrun_utils__.rb +98 -0
  94. data/lib/rubyrun/rubyrunnative__.so +0 -0
  95. data/lib/rubyrunm.rb +10 -0
  96. metadata +149 -0
@@ -0,0 +1,79 @@
1
+ #---------------------------------------------------------------#
2
+ # #
3
+ # (C) Copyright Rubysophic Inc. 2007-2008 #
4
+ # All rights reserved. #
5
+ # #
6
+ # Use, duplication or disclosure of the code is not permitted #
7
+ # unless licensed. #
8
+ # #
9
+ # Last Updated: 7/09/08 #
10
+ #---------------------------------------------------------------#
11
+ # #
12
+ # RubyRunTracer__ is the module for tracing a line of data #
13
+ # in the output destination. #
14
+ # #
15
+ # The source of the trace can be data from forward-tracing #
16
+ # or data collected from a stack trace. #
17
+ # #
18
+ #---------------------------------------------------------------#
19
+ module RubyRunTracer__
20
+
21
+ require 'rubyrun_globals'
22
+ require 'rubyrun_utils__'
23
+ require 'rubyrun_html__'
24
+ include RubyRunGlobals
25
+ include RubyRunUtils__
26
+ include RubyRunHTML__
27
+
28
+ # 1. If arguments are required to trace, try using kernel inspect to print it
29
+ # 2. If obejct is required to trace, try using kernel inspect to print it.
30
+ # Otherwise print class name, The inspect can cause recursion and blow up
31
+ # ruby. Rescue only delays the issue hence not used here.
32
+ # 3. Show the last caller and line
33
+ def enter_trace(tid, type, obj, invoker, klass, mid, *args)
34
+ @rubyrun_trace_odd_row = true if @rubyrun_trace_odd_row == nil
35
+ cur_time = Time.now
36
+ html_content = sprintf("#{@rubyrun_trace_odd_row ? METHOD_TRACE_ODD_ROW : METHOD_TRACE_EVEN_ROW}",
37
+ "#{cur_time.strftime("%H:%M:%S")}.#{("%.3f" % cur_time.to_f).split('.')[1]} #{cur_time.strftime("%m/%d/%y")}",
38
+ get_thread_id,
39
+ "#{type.split(' ').reverse.first}",
40
+ "#{type.split(' ').length == 3 ? '#3B9C9C' : (@rubyrun_trace_odd_row ? '#AFDCEC' : 'white')}",
41
+ "#{type.split(' ').length == 1 ? '' : (type.split(' ').length == 3 ? '*'+type.split(' ').reverse[1]+'s' : type.split(' ').reverse[1]+'s')}",
42
+ klass.to_s,
43
+ return_method_name(mid),
44
+ "#{args.each {|arg| arg.inspect} if $rubyrun_debug_args || is_in_hash?($rubyrun_adapter_hash, klass, mid)}",
45
+ "#{$rubyrun_debug_obj && obj ? obj.inspect : obj.class if obj}",
46
+ "#{invoker if invoker}")
47
+ write_trace(html_content)
48
+ @rubyrun_trace_odd_row = !@rubyrun_trace_odd_row
49
+ end
50
+
51
+ # Write a trace entry to the trace destination
52
+ def write_trace(html_content)
53
+ begin
54
+ $rubyrun_tracer.info(html_content)
55
+ rescue Exception => e
56
+ $rubyrun_logger.warn(e.to_s)
57
+ end
58
+ end
59
+
60
+ # The stack trace global hash is printed out in the rubyrun log in
61
+ # thread id order, also showing the top stack of all these
62
+ # threads before they were interrupted.
63
+ def back_trace_all(th_data_hash)
64
+ $rubyrun_thread_dump_reporter.info "----- RubyRun Thread Dump STARTS-----"
65
+ $rubyrun_thread_stack.each {|th, stack|
66
+ $rubyrun_thread_dump_reporter.info
67
+ thread_id = get_thread_id(th)
68
+ $rubyrun_thread_dump_reporter.info "Thread ID = #{thread_id}"
69
+ $rubyrun_thread_dump_reporter.info " Last line before interrupt: #{get_top_stack(th_data_hash, thread_id)}"
70
+ $rubyrun_thread_dump_reporter.info " Stack trace at interrupt"
71
+ stack.each {|line|
72
+ $rubyrun_thread_dump_reporter.info "\t#{line}"
73
+ }
74
+ }
75
+ $rubyrun_thread_dump_reporter.info
76
+ $rubyrun_thread_dump_reporter.info "----- RubyRun Thread Dump ENDS -----"
77
+ $rubyrun_thread_stack.clear
78
+ end
79
+ end
@@ -0,0 +1,98 @@
1
+ #---------------------------------------------------------------#
2
+ # #
3
+ # (C) Copyright Rubysophic Inc. 2007-2008 #
4
+ # All rights reserved. #
5
+ # #
6
+ # Use, duplication or disclosure of the code is not permitted #
7
+ # unless licensed. #
8
+ # #
9
+ # Last Updated: 7/09/08 #
10
+ #---------------------------------------------------------------#
11
+ # #
12
+ # RubyRunUtils__ is a module that owns common methods shared #
13
+ # by all the other RubyRun modules. #
14
+ # #
15
+ #---------------------------------------------------------------#
16
+ module RubyRunUtils__
17
+
18
+ require 'rubyrun_globals'
19
+ include RubyRunGlobals
20
+
21
+ # Return a readable thread ID for the current thread of execution
22
+ def get_thread_id(th=Thread.current)
23
+ th.inspect.split(/Thread:0x/)[1].split(/ .*?>/)[0]
24
+ end
25
+
26
+ # Retrieve caller details (filename, line number, method name)
27
+ def get_caller_detail(n=3)
28
+ caller(0)[n].gsub("#{RUBYRUN_PREFIX}_", '').gsub('//', '/')
29
+ end
30
+
31
+ # Environment variable not defined or defined with nil value is deemed to
32
+ # be non-existent
33
+ def env_var_exists?(var)
34
+ ENV[var].nil? || ENV[var] == '' ? false : true
35
+ end
36
+
37
+ # Error exit
38
+ def fatal_exit(e)
39
+ $stderr.print e.to_s + "\n" + e.backtrace.join("\n")
40
+ exit(-1)
41
+ end
42
+
43
+ # Return true if a Rails Action Controller class
44
+ # A module or object has no superclass hence the rescue clause
45
+ def is_rails_controller?(klass, mid)
46
+ return true if $rubyrun_controller_classes.include?(klass)
47
+ $rubyrun_rails_env ||= ENV['RAILS_ENV']
48
+ begin
49
+ ($rubyrun_controller_classes << klass; return true) if $rubyrun_rails_env &&
50
+ klass.to_s[-10, 10] == 'Controller' &&
51
+ is_application_controller(klass) &&
52
+ !klass.private_instance_methods(false).include?(return_method_name(mid))
53
+ rescue
54
+ end
55
+ false
56
+ end
57
+
58
+ # Given a class, it's deemed to be a Rails Action Controller if one of its
59
+ # ancestors is ApplicationController
60
+ def is_application_controller(klass)
61
+ return false unless klass.superclass
62
+ if klass.superclass == ApplicationController
63
+ return true
64
+ else
65
+ is_application_controller(klass.superclass)
66
+ end
67
+ end
68
+
69
+ # Return false if the passed in hash is empty
70
+ # Return false if the hash doenst even have the class name as a key
71
+ # Return true if the hash has the key but the method array is empty
72
+ # Return true if the method array has a case-insensitive matching name,
73
+ # matching can be exact or 'include'.
74
+ # Otherwise return false
75
+ def is_in?(hash, klass, mid, mode='loose')
76
+ return false if hash.empty?
77
+ [klass.to_s, klass.class.to_s, '*'].each {|name|
78
+ if hash.has_key?(name)
79
+ return true if hash[name].empty?
80
+ method_name = return_method_name(mid)
81
+ hash[name].each {|meth_name|
82
+ case mode
83
+ when 'strict'
84
+ return true if method_name.downcase == meth_name.downcase
85
+ when 'loose'
86
+ return true if method_name.downcase.include?(meth_name.downcase)
87
+ end
88
+ }
89
+ end
90
+ }
91
+ false
92
+ end
93
+
94
+ # Return method name since mid can be an method object ID or a string
95
+ def return_method_name(mid)
96
+ mid.kind_of?(String) ? mid : mid.id2name
97
+ end
98
+ end
Binary file
data/lib/rubyrunm.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubyrun'
2
+ require 'rubyrun_buffer_mgr__'
3
+ require 'rubyrun_dad__'
4
+ require 'rubyrun_globals'
5
+ require 'rubyrun_instrumentor__'
6
+ require 'rubyrun_monitor__'
7
+ require 'rubyrun_rss__'
8
+ require 'rubyrun_tracer__'
9
+ require 'rubyrun_utils__'
10
+
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: rubyrun
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.9.0
7
+ date: 2008-07-27 00:00:00 -07:00
8
+ summary: Software to diagnose and tune Ruby and Rails based applications
9
+ require_paths:
10
+ - .
11
+ - lib
12
+ - lib/rubyrun
13
+ email: info@rubysophic.com
14
+ homepage: http://www.rubysophic.com
15
+ rubyforge_project: rubyrunce
16
+ description: rubyrun is diagnostic software provided by RubySophic Inc to diagnose Ruby and Ruby/Rails based applications problems For more information, refer to the document in docs/RubyRun.htm bundled with the gem on usage, support, license etc
17
+ autorequire: rubyrunm
18
+ default_executable:
19
+ bindir: bin
20
+ has_rdoc: true
21
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
22
+ requirements:
23
+ - - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.0
26
+ version:
27
+ platform: mswin32
28
+ signing_key:
29
+ cert_chain:
30
+ post_install_message:
31
+ authors:
32
+ - RubySophic Inc
33
+ files:
34
+ - Rakefile
35
+ - README
36
+ - LICENSE
37
+ - lib/rubyrun
38
+ - lib/rubyrun/rubyrun.rb
39
+ - lib/rubyrun/rubyrunnative__.so
40
+ - lib/rubyrun/rubyrun_buffer_mgr__.rb
41
+ - lib/rubyrun/rubyrun_commander__.rb
42
+ - lib/rubyrun/rubyrun_dad__.rb
43
+ - lib/rubyrun/rubyrun_globals.rb
44
+ - lib/rubyrun/rubyrun_html_writer__.rb
45
+ - lib/rubyrun/rubyrun_html__.rb
46
+ - lib/rubyrun/rubyrun_initializer__.rb
47
+ - lib/rubyrun/rubyrun_instrumentor__.rb
48
+ - lib/rubyrun/rubyrun_monitor__.rb
49
+ - lib/rubyrun/rubyrun_report__.rb
50
+ - lib/rubyrun/rubyrun_rss__.rb
51
+ - lib/rubyrun/rubyrun_tracer__.rb
52
+ - lib/rubyrun/rubyrun_utils__.rb
53
+ - lib/rubyrunm.rb
54
+ - bin/confgure
55
+ - ext/extconf.rb
56
+ - ext/rubyrunnative__.bundle
57
+ - ext/rubyrunnative__.c
58
+ - ext/rubyrunnative__.def
59
+ - ext/rubyrunnative__.h
60
+ - ext/rubyrunnative__.so
61
+ - ext/rubyrunnative__linux.so
62
+ - docs/rubyrun-0.9.0.htm
63
+ - docs/rubyrun-0.9.0.pdf
64
+ - docs/rubyrun-0.9.0_files
65
+ - docs/rubyrun-0.9.0_files/colorschememapping.xml
66
+ - docs/rubyrun-0.9.0_files/filelist.xml
67
+ - docs/rubyrun-0.9.0_files/header.htm
68
+ - docs/rubyrun-0.9.0_files/image001.jpg
69
+ - docs/rubyrun-0.9.0_files/image002.jpg
70
+ - docs/rubyrun-0.9.0_files/image003.jpg
71
+ - docs/rubyrun-0.9.0_files/image004.jpg
72
+ - docs/rubyrun-0.9.0_files/image005.jpg
73
+ - docs/rubyrun-0.9.0_files/image006.jpg
74
+ - docs/rubyrun-0.9.0_files/image007.jpg
75
+ - docs/rubyrun-0.9.0_files/image008.jpg
76
+ - docs/rubyrun-0.9.0_files/image009.jpg
77
+ - docs/rubyrun-0.9.0_files/image010.jpg
78
+ - docs/rubyrun-0.9.0_files/image011.jpg
79
+ - docs/rubyrun-0.9.0_files/image012.jpg
80
+ - docs/rubyrun-0.9.0_files/image013.jpg
81
+ - docs/rubyrun-0.9.0_files/image014.jpg
82
+ - docs/rubyrun-0.9.0_files/image015.jpg
83
+ - docs/rubyrun-0.9.0_files/image016.jpg
84
+ - docs/rubyrun-0.9.0_files/image017.png
85
+ - docs/rubyrun-0.9.0_files/image018.jpg
86
+ - docs/rubyrun-0.9.0_files/image019.jpg
87
+ - docs/rubyrun-0.9.0_files/image020.jpg
88
+ - docs/rubyrun-0.9.0_files/image021.jpg
89
+ - docs/rubyrun-0.9.0_files/image022.png
90
+ - docs/rubyrun-0.9.0_files/themedata.thmx
91
+ - etc/rubyrun_opts.yml
92
+ - html/classes
93
+ - html/classes/Module.html
94
+ - html/classes/Object.html
95
+ - html/classes/RubyRunBufferMgr__.html
96
+ - html/classes/RubyRunCommander__.html
97
+ - html/classes/RubyRunDad__.html
98
+ - html/classes/RubyRunGlobals.html
99
+ - html/classes/RubyRunHTMLWriter
100
+ - html/classes/RubyRunHTMLWriter/RubyRunHTMLDevice.html
101
+ - html/classes/RubyRunHTMLWriter.html
102
+ - html/classes/RubyRunHTML__.html
103
+ - html/classes/RubyRunInitializer__.html
104
+ - html/classes/RubyRunInstrumentor__.html
105
+ - html/classes/RubyRunMonitor__.html
106
+ - html/classes/RubyRunReport__.html
107
+ - html/classes/RubyRunRSS.html
108
+ - html/classes/RubyRunTracer__.html
109
+ - html/classes/RubyRunUtils__.html
110
+ - html/created.rid
111
+ - html/files
112
+ - html/files/lib
113
+ - html/files/lib/rubyrun
114
+ - html/files/lib/rubyrun/rubyrun_buffer_mgr___rb.html
115
+ - html/files/lib/rubyrun/rubyrun_commander___rb.html
116
+ - html/files/lib/rubyrun/rubyrun_dad___rb.html
117
+ - html/files/lib/rubyrun/rubyrun_globals_rb.html
118
+ - html/files/lib/rubyrun/rubyrun_html_writer___rb.html
119
+ - html/files/lib/rubyrun/rubyrun_html___rb.html
120
+ - html/files/lib/rubyrun/rubyrun_initializer___rb.html
121
+ - html/files/lib/rubyrun/rubyrun_instrumentor___rb.html
122
+ - html/files/lib/rubyrun/rubyrun_monitor___rb.html
123
+ - html/files/lib/rubyrun/rubyrun_rb.html
124
+ - html/files/lib/rubyrun/rubyrun_report___rb.html
125
+ - html/files/lib/rubyrun/rubyrun_rss___rb.html
126
+ - html/files/lib/rubyrun/rubyrun_tracer___rb.html
127
+ - html/files/lib/rubyrun/rubyrun_utils___rb.html
128
+ - html/files/lib/rubyrunm_rb.html
129
+ - html/files/LICENSE.html
130
+ - html/files/README.html
131
+ - html/fr_class_index.html
132
+ - html/fr_file_index.html
133
+ - html/fr_method_index.html
134
+ - html/index.html
135
+ - html/rdoc-style.css
136
+ test_files: []
137
+
138
+ rdoc_options: []
139
+
140
+ extra_rdoc_files:
141
+ - README
142
+ executables: []
143
+
144
+ extensions: []
145
+
146
+ requirements: []
147
+
148
+ dependencies: []
149
+