haml 3.1.0.alpha.14 → 3.1.0.alpha.17

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of haml might be problematic. Click here for more details.

Files changed (222) hide show
  1. data/EDGE_GEM_VERSION +1 -1
  2. data/VERSION +1 -1
  3. data/lib/haml.rb +3 -2
  4. data/lib/haml/exec.rb +0 -226
  5. data/lib/sass.rb +8 -0
  6. data/lib/sass/plugin.rb +8 -0
  7. data/lib/sass/rails2_shim.rb +9 -0
  8. data/lib/sass/rails3_shim.rb +16 -0
  9. data/vendor/sass/CONTRIBUTING +3 -0
  10. data/vendor/sass/MIT-LICENSE +20 -0
  11. data/vendor/sass/README.md +201 -0
  12. data/vendor/sass/Rakefile +363 -0
  13. data/vendor/sass/TODO +39 -0
  14. data/vendor/sass/VERSION +1 -0
  15. data/vendor/sass/VERSION_NAME +1 -0
  16. data/vendor/sass/bin/css2sass +13 -0
  17. data/vendor/sass/bin/sass +8 -0
  18. data/vendor/sass/bin/sass-convert +7 -0
  19. data/vendor/sass/doc-src/FAQ.md +35 -0
  20. data/vendor/sass/doc-src/INDENTED_SYNTAX.md +210 -0
  21. data/vendor/sass/doc-src/SASS_CHANGELOG.md +1878 -0
  22. data/vendor/sass/doc-src/SASS_REFERENCE.md +1713 -0
  23. data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +155 -0
  24. data/vendor/sass/ext/extconf.rb +10 -0
  25. data/vendor/sass/extra/update_watch.rb +13 -0
  26. data/vendor/sass/init.rb +18 -0
  27. data/vendor/sass/lib/sass.rb +71 -0
  28. data/vendor/sass/lib/sass/cache_store.rb +208 -0
  29. data/vendor/sass/lib/sass/callbacks.rb +66 -0
  30. data/vendor/sass/lib/sass/css.rb +294 -0
  31. data/vendor/sass/lib/sass/engine.rb +792 -0
  32. data/vendor/sass/lib/sass/environment.rb +143 -0
  33. data/vendor/sass/lib/sass/error.rb +201 -0
  34. data/vendor/sass/lib/sass/exec.rb +619 -0
  35. data/vendor/sass/lib/sass/importers.rb +22 -0
  36. data/vendor/sass/lib/sass/importers/base.rb +138 -0
  37. data/vendor/sass/lib/sass/importers/filesystem.rb +121 -0
  38. data/vendor/sass/lib/sass/less.rb +363 -0
  39. data/vendor/sass/lib/sass/plugin.rb +126 -0
  40. data/vendor/sass/lib/sass/plugin/compiler.rb +346 -0
  41. data/vendor/sass/lib/sass/plugin/configuration.rb +123 -0
  42. data/vendor/sass/lib/sass/plugin/generic.rb +15 -0
  43. data/vendor/sass/lib/sass/plugin/merb.rb +48 -0
  44. data/vendor/sass/lib/sass/plugin/rack.rb +47 -0
  45. data/vendor/sass/lib/sass/plugin/rails.rb +41 -0
  46. data/vendor/sass/lib/sass/plugin/staleness_checker.rb +145 -0
  47. data/vendor/sass/lib/sass/railtie.rb +8 -0
  48. data/vendor/sass/lib/sass/repl.rb +58 -0
  49. data/vendor/sass/lib/sass/root.rb +7 -0
  50. data/vendor/sass/lib/sass/script.rb +63 -0
  51. data/vendor/sass/lib/sass/script/bool.rb +18 -0
  52. data/vendor/sass/lib/sass/script/color.rb +491 -0
  53. data/vendor/sass/lib/sass/script/css_lexer.rb +29 -0
  54. data/vendor/sass/lib/sass/script/css_parser.rb +31 -0
  55. data/vendor/sass/lib/sass/script/funcall.rb +76 -0
  56. data/vendor/sass/lib/sass/script/functions.rb +852 -0
  57. data/vendor/sass/lib/sass/script/interpolation.rb +70 -0
  58. data/vendor/sass/lib/sass/script/lexer.rb +337 -0
  59. data/vendor/sass/lib/sass/script/literal.rb +236 -0
  60. data/vendor/sass/lib/sass/script/node.rb +112 -0
  61. data/vendor/sass/lib/sass/script/number.rb +423 -0
  62. data/vendor/sass/lib/sass/script/operation.rb +90 -0
  63. data/vendor/sass/lib/sass/script/parser.rb +392 -0
  64. data/vendor/sass/lib/sass/script/string.rb +67 -0
  65. data/vendor/sass/lib/sass/script/string_interpolation.rb +93 -0
  66. data/vendor/sass/lib/sass/script/unary_operation.rb +57 -0
  67. data/vendor/sass/lib/sass/script/variable.rb +48 -0
  68. data/vendor/sass/lib/sass/scss.rb +17 -0
  69. data/vendor/sass/lib/sass/scss/css_parser.rb +51 -0
  70. data/vendor/sass/lib/sass/scss/parser.rb +838 -0
  71. data/vendor/sass/lib/sass/scss/rx.rb +126 -0
  72. data/vendor/sass/lib/sass/scss/sass_parser.rb +11 -0
  73. data/vendor/sass/lib/sass/scss/script_lexer.rb +15 -0
  74. data/vendor/sass/lib/sass/scss/script_parser.rb +25 -0
  75. data/vendor/sass/lib/sass/scss/static_parser.rb +40 -0
  76. data/vendor/sass/lib/sass/selector.rb +361 -0
  77. data/vendor/sass/lib/sass/selector/abstract_sequence.rb +62 -0
  78. data/vendor/sass/lib/sass/selector/comma_sequence.rb +82 -0
  79. data/vendor/sass/lib/sass/selector/sequence.rb +236 -0
  80. data/vendor/sass/lib/sass/selector/simple.rb +113 -0
  81. data/vendor/sass/lib/sass/selector/simple_sequence.rb +135 -0
  82. data/vendor/sass/lib/sass/shared.rb +78 -0
  83. data/vendor/sass/lib/sass/tree/comment_node.rb +128 -0
  84. data/vendor/sass/lib/sass/tree/debug_node.rb +36 -0
  85. data/vendor/sass/lib/sass/tree/directive_node.rb +75 -0
  86. data/vendor/sass/lib/sass/tree/extend_node.rb +65 -0
  87. data/vendor/sass/lib/sass/tree/for_node.rb +67 -0
  88. data/vendor/sass/lib/sass/tree/if_node.rb +81 -0
  89. data/vendor/sass/lib/sass/tree/import_node.rb +124 -0
  90. data/vendor/sass/lib/sass/tree/mixin_def_node.rb +60 -0
  91. data/vendor/sass/lib/sass/tree/mixin_node.rb +123 -0
  92. data/vendor/sass/lib/sass/tree/node.rb +490 -0
  93. data/vendor/sass/lib/sass/tree/prop_node.rb +220 -0
  94. data/vendor/sass/lib/sass/tree/root_node.rb +125 -0
  95. data/vendor/sass/lib/sass/tree/rule_node.rb +273 -0
  96. data/vendor/sass/lib/sass/tree/variable_node.rb +39 -0
  97. data/vendor/sass/lib/sass/tree/warn_node.rb +42 -0
  98. data/vendor/sass/lib/sass/tree/while_node.rb +48 -0
  99. data/vendor/sass/lib/sass/util.rb +700 -0
  100. data/vendor/sass/lib/sass/util/subset_map.rb +101 -0
  101. data/vendor/sass/lib/sass/version.rb +109 -0
  102. data/vendor/sass/rails/init.rb +1 -0
  103. data/vendor/sass/sass.gemspec +32 -0
  104. data/vendor/sass/test/sass/cache_test.rb +74 -0
  105. data/vendor/sass/test/sass/callbacks_test.rb +61 -0
  106. data/vendor/sass/test/sass/conversion_test.rb +1210 -0
  107. data/vendor/sass/test/sass/css2sass_test.rb +364 -0
  108. data/vendor/sass/test/sass/data/hsl-rgb.txt +319 -0
  109. data/vendor/sass/test/sass/engine_test.rb +2305 -0
  110. data/vendor/sass/test/sass/extend_test.rb +1348 -0
  111. data/vendor/sass/test/sass/functions_test.rb +565 -0
  112. data/vendor/sass/test/sass/importer_test.rb +104 -0
  113. data/vendor/sass/test/sass/less_conversion_test.rb +632 -0
  114. data/vendor/sass/test/sass/mock_importer.rb +49 -0
  115. data/vendor/sass/test/sass/more_results/more1.css +9 -0
  116. data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +26 -0
  117. data/vendor/sass/test/sass/more_results/more_import.css +29 -0
  118. data/vendor/sass/test/sass/more_templates/_more_partial.sass +2 -0
  119. data/vendor/sass/test/sass/more_templates/more1.sass +23 -0
  120. data/vendor/sass/test/sass/more_templates/more_import.sass +11 -0
  121. data/vendor/sass/test/sass/plugin_test.rb +430 -0
  122. data/vendor/sass/test/sass/results/alt.css +4 -0
  123. data/vendor/sass/test/sass/results/basic.css +9 -0
  124. data/vendor/sass/test/sass/results/compact.css +5 -0
  125. data/vendor/sass/test/sass/results/complex.css +86 -0
  126. data/vendor/sass/test/sass/results/compressed.css +1 -0
  127. data/vendor/sass/test/sass/results/expanded.css +19 -0
  128. data/vendor/sass/test/sass/results/import.css +31 -0
  129. data/vendor/sass/test/sass/results/line_numbers.css +49 -0
  130. data/vendor/sass/test/sass/results/mixins.css +95 -0
  131. data/vendor/sass/test/sass/results/multiline.css +24 -0
  132. data/vendor/sass/test/sass/results/nested.css +22 -0
  133. data/vendor/sass/test/sass/results/options.css +1 -0
  134. data/vendor/sass/test/sass/results/parent_ref.css +13 -0
  135. data/vendor/sass/test/sass/results/script.css +16 -0
  136. data/vendor/sass/test/sass/results/scss_import.css +31 -0
  137. data/vendor/sass/test/sass/results/scss_importee.css +2 -0
  138. data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  139. data/vendor/sass/test/sass/results/subdir/subdir.css +3 -0
  140. data/vendor/sass/test/sass/results/units.css +11 -0
  141. data/vendor/sass/test/sass/results/warn.css +0 -0
  142. data/vendor/sass/test/sass/results/warn_imported.css +0 -0
  143. data/vendor/sass/test/sass/script_conversion_test.rb +254 -0
  144. data/vendor/sass/test/sass/script_test.rb +470 -0
  145. data/vendor/sass/test/sass/scss/css_test.rb +897 -0
  146. data/vendor/sass/test/sass/scss/rx_test.rb +156 -0
  147. data/vendor/sass/test/sass/scss/scss_test.rb +1088 -0
  148. data/vendor/sass/test/sass/scss/test_helper.rb +37 -0
  149. data/vendor/sass/test/sass/templates/_partial.sass +2 -0
  150. data/vendor/sass/test/sass/templates/alt.sass +16 -0
  151. data/vendor/sass/test/sass/templates/basic.sass +23 -0
  152. data/vendor/sass/test/sass/templates/bork1.sass +2 -0
  153. data/vendor/sass/test/sass/templates/bork2.sass +2 -0
  154. data/vendor/sass/test/sass/templates/bork3.sass +2 -0
  155. data/vendor/sass/test/sass/templates/bork4.sass +2 -0
  156. data/vendor/sass/test/sass/templates/compact.sass +17 -0
  157. data/vendor/sass/test/sass/templates/complex.sass +305 -0
  158. data/vendor/sass/test/sass/templates/compressed.sass +15 -0
  159. data/vendor/sass/test/sass/templates/expanded.sass +17 -0
  160. data/vendor/sass/test/sass/templates/import.sass +12 -0
  161. data/vendor/sass/test/sass/templates/importee.less +2 -0
  162. data/vendor/sass/test/sass/templates/importee.sass +19 -0
  163. data/vendor/sass/test/sass/templates/line_numbers.sass +13 -0
  164. data/vendor/sass/test/sass/templates/mixin_bork.sass +5 -0
  165. data/vendor/sass/test/sass/templates/mixins.sass +76 -0
  166. data/vendor/sass/test/sass/templates/multiline.sass +20 -0
  167. data/vendor/sass/test/sass/templates/nested.sass +25 -0
  168. data/vendor/sass/test/sass/templates/nested_bork1.sass +2 -0
  169. data/vendor/sass/test/sass/templates/nested_bork2.sass +2 -0
  170. data/vendor/sass/test/sass/templates/nested_bork3.sass +2 -0
  171. data/vendor/sass/test/sass/templates/nested_bork4.sass +2 -0
  172. data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +6 -0
  173. data/vendor/sass/test/sass/templates/options.sass +2 -0
  174. data/vendor/sass/test/sass/templates/parent_ref.sass +25 -0
  175. data/vendor/sass/test/sass/templates/script.sass +101 -0
  176. data/vendor/sass/test/sass/templates/scss_import.scss +11 -0
  177. data/vendor/sass/test/sass/templates/scss_importee.scss +1 -0
  178. data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  179. data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  180. data/vendor/sass/test/sass/templates/subdir/subdir.sass +6 -0
  181. data/vendor/sass/test/sass/templates/units.sass +11 -0
  182. data/vendor/sass/test/sass/templates/warn.sass +3 -0
  183. data/vendor/sass/test/sass/templates/warn_imported.sass +4 -0
  184. data/vendor/sass/test/sass/test_helper.rb +8 -0
  185. data/vendor/sass/test/sass/util/subset_map_test.rb +91 -0
  186. data/vendor/sass/test/sass/util_test.rb +275 -0
  187. data/vendor/sass/test/test_helper.rb +64 -0
  188. data/vendor/sass/vendor/fssm/LICENSE +20 -0
  189. data/vendor/sass/vendor/fssm/README.markdown +55 -0
  190. data/vendor/sass/vendor/fssm/Rakefile +59 -0
  191. data/vendor/sass/vendor/fssm/VERSION.yml +5 -0
  192. data/vendor/sass/vendor/fssm/example.rb +9 -0
  193. data/vendor/sass/vendor/fssm/fssm.gemspec +77 -0
  194. data/vendor/sass/vendor/fssm/lib/fssm.rb +33 -0
  195. data/vendor/sass/vendor/fssm/lib/fssm/backends/fsevents.rb +36 -0
  196. data/vendor/sass/vendor/fssm/lib/fssm/backends/inotify.rb +26 -0
  197. data/vendor/sass/vendor/fssm/lib/fssm/backends/polling.rb +25 -0
  198. data/vendor/sass/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +131 -0
  199. data/vendor/sass/vendor/fssm/lib/fssm/monitor.rb +26 -0
  200. data/vendor/sass/vendor/fssm/lib/fssm/path.rb +91 -0
  201. data/vendor/sass/vendor/fssm/lib/fssm/pathname.rb +502 -0
  202. data/vendor/sass/vendor/fssm/lib/fssm/state/directory.rb +57 -0
  203. data/vendor/sass/vendor/fssm/lib/fssm/state/file.rb +24 -0
  204. data/vendor/sass/vendor/fssm/lib/fssm/support.rb +63 -0
  205. data/vendor/sass/vendor/fssm/lib/fssm/tree.rb +176 -0
  206. data/vendor/sass/vendor/fssm/profile/prof-cache.rb +40 -0
  207. data/vendor/sass/vendor/fssm/profile/prof-fssm-pathname.html +1231 -0
  208. data/vendor/sass/vendor/fssm/profile/prof-pathname.rb +68 -0
  209. data/vendor/sass/vendor/fssm/profile/prof-plain-pathname.html +988 -0
  210. data/vendor/sass/vendor/fssm/profile/prof.html +2379 -0
  211. data/vendor/sass/vendor/fssm/spec/path_spec.rb +75 -0
  212. data/vendor/sass/vendor/fssm/spec/root/duck/quack.txt +0 -0
  213. data/vendor/sass/vendor/fssm/spec/root/file.css +0 -0
  214. data/vendor/sass/vendor/fssm/spec/root/file.rb +0 -0
  215. data/vendor/sass/vendor/fssm/spec/root/file.yml +0 -0
  216. data/vendor/sass/vendor/fssm/spec/root/moo/cow.txt +0 -0
  217. data/vendor/sass/vendor/fssm/spec/spec_helper.rb +14 -0
  218. data/vendor/sass/yard/callbacks.rb +29 -0
  219. data/vendor/sass/yard/default/fulldoc/html/css/common.sass +26 -0
  220. data/vendor/sass/yard/default/layout/html/footer.erb +12 -0
  221. data/vendor/sass/yard/inherited_hash.rb +41 -0
  222. metadata +219 -2
@@ -0,0 +1,57 @@
1
+ module FSSM::State
2
+ class Directory
3
+ attr_reader :path
4
+
5
+ def initialize(path)
6
+ @path = path
7
+ @cache = FSSM::Tree::Cache.new
8
+ end
9
+
10
+ def refresh(base=nil, skip_callbacks=false)
11
+ previous, current = recache(base || @path.to_pathname)
12
+
13
+ unless skip_callbacks
14
+ deleted(previous, current)
15
+ created(previous, current)
16
+ modified(previous, current)
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def created(previous, current)
23
+ (current.keys - previous.keys).each {|created| @path.create(created)}
24
+ end
25
+
26
+ def deleted(previous, current)
27
+ (previous.keys - current.keys).each {|deleted| @path.delete(deleted)}
28
+ end
29
+
30
+ def modified(previous, current)
31
+ (current.keys & previous.keys).each do |file|
32
+ @path.update(file) if (current[file] <=> previous[file]) != 0
33
+ end
34
+ end
35
+
36
+ def recache(base)
37
+ base = FSSM::Pathname.for(base)
38
+ previous = @cache.files
39
+ snapshot(base)
40
+ current = @cache.files
41
+ [previous, current]
42
+ end
43
+
44
+ def snapshot(base)
45
+ base = FSSM::Pathname.for(base)
46
+ @cache.unset(base)
47
+ @path.glob.each {|glob| add_glob(base, glob)}
48
+ end
49
+
50
+ def add_glob(base, glob)
51
+ FSSM::Pathname.glob(base.join(glob).to_s).each do |fn|
52
+ @cache.set(fn)
53
+ end
54
+ end
55
+
56
+ end
57
+ end
@@ -0,0 +1,24 @@
1
+ module FSSM::State
2
+ class File
3
+ attr_reader :path
4
+
5
+ def initialize(path)
6
+ @path = path
7
+ end
8
+
9
+ def refresh(base=nil, skip_callbacks=false)
10
+ base ||= @path.to_pathname
11
+ used_to_exist, @exists = @exists, base.exists?
12
+ # this handles bad symlinks without failing. why handle bad symlinks at
13
+ # all? well, we could still be interested in their creation and deletion.
14
+ old_mtime, @mtime = @mtime, base.symlink? ? Time.at(0) : base.mtime if @exists
15
+
16
+ unless skip_callbacks
17
+ @path.delete(@path.to_s) if used_to_exist && !@exists
18
+ @path.create(@path.to_s) if !used_to_exist && @exists
19
+ @path.update(@path.to_s) if used_to_exist && @exists && old_mtime != @mtime
20
+ end
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,63 @@
1
+ require 'rbconfig'
2
+
3
+ module FSSM::Support
4
+ class << self
5
+ def backend
6
+ @@backend ||= case
7
+ when mac? && !jruby? && carbon_core?
8
+ 'FSEvents'
9
+ when linux? && rb_inotify?
10
+ 'Inotify'
11
+ else
12
+ 'Polling'
13
+ end
14
+ end
15
+
16
+ def jruby?
17
+ defined?(JRUBY_VERSION)
18
+ end
19
+
20
+ def mac?
21
+ Config::CONFIG['target_os'] =~ /darwin/i
22
+ end
23
+
24
+ def linux?
25
+ Config::CONFIG['target_os'] =~ /linux/i
26
+ end
27
+
28
+ def carbon_core?
29
+ begin
30
+ require 'osx/foundation'
31
+ OSX.require_framework '/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework'
32
+ true
33
+ rescue LoadError
34
+ STDERR.puts("Warning: Unable to load CarbonCore. FSEvents will be unavailable.")
35
+ false
36
+ end
37
+ end
38
+
39
+ def rb_inotify?
40
+ found = begin
41
+ require 'rb-inotify'
42
+ if defined?(INotify::VERSION)
43
+ version = INotify::VERSION
44
+ version[0] > 0 || version[1] >= 6
45
+ end
46
+ rescue LoadError
47
+ false
48
+ end
49
+ STDERR.puts("Warning: Unable to load rb-inotify >= 0.5.1. Inotify will be unavailable.") unless found
50
+ found
51
+ end
52
+
53
+ def use_block(context, block)
54
+ return if block.nil?
55
+ if block.arity == 1
56
+ block.call(context)
57
+ else
58
+ context.instance_eval(&block)
59
+ end
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +1,176 @@
1
+ module FSSM::Tree
2
+ module NodeBase
3
+ def initialize
4
+ @children = {}
5
+ end
6
+
7
+ protected
8
+
9
+ def child(segment)
10
+ @children["#{segment}"]
11
+ end
12
+
13
+ def child!(segment)
14
+ (@children["#{segment}"] ||= Node.new)
15
+ end
16
+
17
+ def has_child?(segment)
18
+ @children.has_key?("#{segment}")
19
+ end
20
+
21
+ def remove_child(segment)
22
+ @children.delete("#{segment}")
23
+ end
24
+
25
+ def remove_children
26
+ @children.clear
27
+ end
28
+ end
29
+
30
+ module NodeEnumerable
31
+ include NodeBase
32
+ include Enumerable
33
+
34
+ def each(prefix=nil, &block)
35
+ @children.each do |segment, node|
36
+ cprefix = prefix ?
37
+ FSSM::Pathname.for(prefix).join(segment) :
38
+ FSSM::Pathname.for(segment)
39
+ block.call([cprefix, node])
40
+ node.each(cprefix, &block)
41
+ end
42
+ end
43
+ end
44
+
45
+ module NodeInsertion
46
+ include NodeBase
47
+
48
+ def unset(path)
49
+ key = key_segments(path)
50
+
51
+ if key.empty?
52
+ remove_children
53
+ return nil
54
+ end
55
+
56
+ segment = key.pop
57
+ node = descendant(key)
58
+
59
+ return unless node
60
+
61
+ node.remove_child(segment)
62
+
63
+ nil
64
+ end
65
+
66
+ def set(path)
67
+ node = descendant!(path)
68
+ node.from_path(path).mtime
69
+ end
70
+
71
+ protected
72
+
73
+ def key_segments(key)
74
+ return key if key.is_a?(Array)
75
+ FSSM::Pathname.for(key).segments
76
+ end
77
+
78
+ def descendant(path)
79
+ recurse(path, false)
80
+ end
81
+
82
+ def descendant!(path)
83
+ recurse(path, true)
84
+ end
85
+
86
+ def recurse(key, create=false)
87
+ key = key_segments(key)
88
+ node = self
89
+
90
+ until key.empty?
91
+ segment = key.shift
92
+ node = create ? node.child!(segment) : node.child(segment)
93
+ return nil unless node
94
+ end
95
+
96
+ node
97
+ end
98
+ end
99
+
100
+ module CacheDebug
101
+ def set(path)
102
+ FSSM.dbg("Cache#set(#{path})")
103
+ super
104
+ end
105
+
106
+ def unset(path)
107
+ FSSM.dbg("Cache#unset(#{path})")
108
+ super
109
+ end
110
+
111
+ def ftype(ft)
112
+ FSSM.dbg("Cache#ftype(#{ft})")
113
+ super
114
+ end
115
+ end
116
+
117
+ class Node
118
+ include NodeBase
119
+ include NodeEnumerable
120
+
121
+ attr_accessor :mtime
122
+ attr_accessor :ftype
123
+
124
+ def <=>(other)
125
+ return unless other.is_a?(::FSSM::Tree::Node)
126
+ self.mtime <=> other.mtime
127
+ end
128
+
129
+ def from_path(path)
130
+ path = FSSM::Pathname.for(path)
131
+ @ftype = path.ftype
132
+ # this handles bad symlinks without failing. why handle bad symlinks at
133
+ # all? well, we could still be interested in their creation and deletion.
134
+ @mtime = path.symlink? ? Time.at(0) : path.mtime
135
+ self
136
+ end
137
+ end
138
+
139
+ class Cache
140
+ include NodeBase
141
+ include NodeEnumerable
142
+ include NodeInsertion
143
+ include CacheDebug if $DEBUG
144
+
145
+ def set(path)
146
+ # all paths set from this level need to be absolute
147
+ # realpath will fail on broken links
148
+ path = FSSM::Pathname.for(path).expand_path
149
+ super(path)
150
+ end
151
+
152
+ def files
153
+ ftype('file')
154
+ end
155
+
156
+ def directories
157
+ ftype('directory')
158
+ end
159
+
160
+ def links
161
+ ftype('link')
162
+ end
163
+
164
+ alias symlinks links
165
+
166
+ private
167
+
168
+ def ftype(ft)
169
+ inject({}) do |hash, (path, node)|
170
+ hash["#{path}"] = node.mtime if node.ftype == ft
171
+ hash
172
+ end
173
+ end
174
+ end
175
+
176
+ end
@@ -0,0 +1,40 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'fssm'
4
+
5
+ require 'rubygems'
6
+ require 'ruby-prof'
7
+
8
+ $test_path = FSSM::Pathname.new('..').expand_path
9
+ $test_files = FSSM::Pathname.glob(File.join($test_path, '**', '*'))
10
+
11
+ RubyProf.start
12
+ RubyProf.pause
13
+
14
+ cache = FSSM::Tree::Cache.new
15
+
16
+ 5000.times do |num|
17
+ iteration = "%-5d" % (num + 1)
18
+ print "iteration #{iteration}"
19
+
20
+ print '!'
21
+ RubyProf.resume
22
+ cache.unset($test_path)
23
+ RubyProf.pause
24
+ print '!'
25
+
26
+ $test_files.each do |fn|
27
+ print '.'
28
+ RubyProf.resume
29
+ cache.set(fn)
30
+ RubyProf.pause
31
+ end
32
+
33
+ print "\n\n"
34
+ end
35
+
36
+ result = RubyProf.stop
37
+ output = File.new('prof.html', 'w+')
38
+
39
+ printer = RubyProf::GraphHtmlPrinter.new(result)
40
+ printer.print(output, :min_percent => 1)
@@ -0,0 +1,1231 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <style media="all" type="text/css">
5
+ table {
6
+ border-collapse: collapse;
7
+ border: 1px solid #CCC;
8
+ font-family: Verdana, Arial, Helvetica, sans-serif;
9
+ font-size: 9pt;
10
+ line-height: normal;
11
+ }
12
+
13
+ th {
14
+ text-align: center;
15
+ border-top: 1px solid #FB7A31;
16
+ border-bottom: 1px solid #FB7A31;
17
+ background: #FFC;
18
+ padding: 0.3em;
19
+ border-left: 1px solid silver;
20
+ }
21
+
22
+ tr.break td {
23
+ border: 0;
24
+ border-top: 1px solid #FB7A31;
25
+ padding: 0;
26
+ margin: 0;
27
+ }
28
+
29
+ tr.method td {
30
+ font-weight: bold;
31
+ }
32
+
33
+ td {
34
+ padding: 0.3em;
35
+ }
36
+
37
+ td:first-child {
38
+ width: 190px;
39
+ }
40
+
41
+ td {
42
+ border-left: 1px solid #CCC;
43
+ text-align: center;
44
+ }
45
+
46
+ .method_name {
47
+ text-align: left;
48
+ max-width: 25em;
49
+ }
50
+ </style>
51
+ </head>
52
+ <body>
53
+ <h1>Profile Report</h1>
54
+ <!-- Threads Table -->
55
+ <table>
56
+ <tr>
57
+ <th>Thread ID</th>
58
+ <th>Total Time</th>
59
+ </tr>
60
+
61
+ <tr>
62
+ <td><a href="#3696392">3696392</a></td>
63
+ <td>14.408241</td>
64
+ </tr>
65
+
66
+ </table>
67
+
68
+ <!-- Methods Tables -->
69
+
70
+ <h2><a name="3696392">Thread 3696392</a></h2>
71
+
72
+ <table>
73
+ <tr>
74
+ <th> %Total</th>
75
+ <th> %Self</th>
76
+ <th> Total</th>
77
+ <th> Self</th>
78
+ <th> Wait</th>
79
+ <th> Child</th>
80
+ <th> Calls</th>
81
+ <th class="method_name">Name</th>
82
+ <th>Line</th>
83
+ </tr>
84
+
85
+
86
+ <!-- Parents -->
87
+
88
+
89
+ <tr class="method">
90
+ <td> 100.00%</td>
91
+ <td> 0.00%</td>
92
+ <td> 14.41</td>
93
+ <td> 0.00</td>
94
+ <td> 0.00</td>
95
+ <td> 14.41</td>
96
+ <td> 0</td>
97
+ <td class="method_name"><a name="Global_[No method]_3696392">Global#[No method]</a></td>
98
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/prof-pathname.rb#line=28"
99
+ title="/Users/ttilley/tmp/fssm/profile/prof-pathname.rb:28">28</a></td>
100
+ </tr>
101
+
102
+ <!-- Children -->
103
+
104
+
105
+ <tr>
106
+ <td>&nbsp;</td>
107
+ <td>&nbsp;</td>
108
+ <td> 3.06</td>
109
+ <td> 0.56</td>
110
+ <td> 0.00</td>
111
+ <td> 2.50</td>
112
+
113
+ <td> 90000/90000</td>
114
+ <td class="method_name"><a href="#Class_new_3696392">Class#new</a></td>
115
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/prof-pathname.rb#line=35"
116
+ title="/Users/ttilley/tmp/fssm/profile/prof-pathname.rb:35">35</a></td>
117
+ </tr>
118
+
119
+
120
+ <tr>
121
+ <td>&nbsp;</td>
122
+ <td>&nbsp;</td>
123
+ <td> 11.35</td>
124
+ <td> 1.98</td>
125
+ <td> 0.00</td>
126
+ <td> 9.37</td>
127
+
128
+ <td> 90000/90000</td>
129
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
130
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/prof-pathname.rb#line=36"
131
+ title="/Users/ttilley/tmp/fssm/profile/prof-pathname.rb:36">36</a></td>
132
+ </tr>
133
+
134
+ <!-- Create divider row -->
135
+ <tr class="break">
136
+ <td colspan="9"></td>
137
+ </tr>
138
+
139
+
140
+ <!-- Parents -->
141
+
142
+
143
+ <tr>
144
+ <td>&nbsp;</td>
145
+ <td>&nbsp;</td>
146
+ <td> 11.35</td>
147
+ <td> 1.98</td>
148
+ <td> 0.00</td>
149
+ <td> 9.37</td>
150
+
151
+ <td> 90000/90000</td>
152
+ <td class="method_name"><a href="#Global_[No method]_3696392">Global#[No method]</a></td>
153
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/prof-pathname.rb#line=36"
154
+ title="/Users/ttilley/tmp/fssm/profile/prof-pathname.rb:36">36</a></td>
155
+ </tr>
156
+
157
+
158
+ <tr class="method">
159
+ <td> 78.76%</td>
160
+ <td> 13.76%</td>
161
+ <td> 11.35</td>
162
+ <td> 1.98</td>
163
+ <td> 0.00</td>
164
+ <td> 9.37</td>
165
+ <td> 90000</td>
166
+ <td class="method_name"><a name="FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
167
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=47"
168
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:47">47</a></td>
169
+ </tr>
170
+
171
+ <!-- Children -->
172
+
173
+
174
+ <tr>
175
+ <td>&nbsp;</td>
176
+ <td>&nbsp;</td>
177
+ <td> 6.60</td>
178
+ <td> 2.97</td>
179
+ <td> 0.00</td>
180
+ <td> 3.63</td>
181
+
182
+ <td> 90000/90000</td>
183
+ <td class="method_name"><a
184
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
185
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=49"
186
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:49">49</a></td>
187
+ </tr>
188
+
189
+
190
+ <tr>
191
+ <td>&nbsp;</td>
192
+ <td>&nbsp;</td>
193
+ <td> 0.94</td>
194
+ <td> 0.49</td>
195
+ <td> 0.00</td>
196
+ <td> 0.45</td>
197
+
198
+ <td> 90000/90000</td>
199
+ <td class="method_name"><a href="#Kernel_dup_3696392">Kernel#dup</a></td>
200
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=50"
201
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:50">50</a></td>
202
+ </tr>
203
+
204
+
205
+ <tr>
206
+ <td>&nbsp;</td>
207
+ <td>&nbsp;</td>
208
+ <td> 1.40</td>
209
+ <td> 0.78</td>
210
+ <td> 0.00</td>
211
+ <td> 0.62</td>
212
+
213
+ <td> 90000/180000</td>
214
+ <td class="method_name"><a href="#Array_delete_3696392">Array#delete</a></td>
215
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=51"
216
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:51">51</a></td>
217
+ </tr>
218
+
219
+
220
+ <tr>
221
+ <td>&nbsp;</td>
222
+ <td>&nbsp;</td>
223
+ <td> 0.16</td>
224
+ <td> 0.16</td>
225
+ <td> 0.00</td>
226
+ <td> 0.00</td>
227
+
228
+ <td> 90000/90000</td>
229
+ <td class="method_name"><a href="#String_empty__3696392">String#empty?</a></td>
230
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=52"
231
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:52">52</a></td>
232
+ </tr>
233
+
234
+
235
+ <tr>
236
+ <td>&nbsp;</td>
237
+ <td>&nbsp;</td>
238
+ <td> 0.26</td>
239
+ <td> 0.26</td>
240
+ <td> 0.00</td>
241
+ <td> 0.00</td>
242
+
243
+ <td> 90000/90000</td>
244
+ <td class="method_name"><a href="#Array_unshift_3696392">Array#unshift</a></td>
245
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=52"
246
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:52">52</a></td>
247
+ </tr>
248
+
249
+ <!-- Create divider row -->
250
+ <tr class="break">
251
+ <td colspan="9"></td>
252
+ </tr>
253
+
254
+
255
+ <!-- Parents -->
256
+
257
+
258
+ <tr>
259
+ <td>&nbsp;</td>
260
+ <td>&nbsp;</td>
261
+ <td> 6.60</td>
262
+ <td> 2.97</td>
263
+ <td> 0.00</td>
264
+ <td> 3.63</td>
265
+
266
+ <td> 90000/90000</td>
267
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
268
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=49"
269
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:49">49</a></td>
270
+ </tr>
271
+
272
+
273
+ <tr class="method">
274
+ <td> 45.80%</td>
275
+ <td> 20.58%</td>
276
+ <td> 6.60</td>
277
+ <td> 2.97</td>
278
+ <td> 0.00</td>
279
+ <td> 3.63</td>
280
+ <td> 90000</td>
281
+ <td class="method_name"><a
282
+ name="FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
283
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=212"
284
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:212">212</a></td>
285
+ </tr>
286
+
287
+ <!-- Children -->
288
+
289
+
290
+ <tr>
291
+ <td>&nbsp;</td>
292
+ <td>&nbsp;</td>
293
+ <td> 0.46</td>
294
+ <td> 0.46</td>
295
+ <td> 0.00</td>
296
+ <td> 0.00</td>
297
+
298
+ <td> 90000/90000</td>
299
+ <td class="method_name"><a href="#Regexp_match_3696392">Regexp#match</a></td>
300
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=217"
301
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:217">217</a></td>
302
+ </tr>
303
+
304
+
305
+ <tr>
306
+ <td>&nbsp;</td>
307
+ <td>&nbsp;</td>
308
+ <td> 0.23</td>
309
+ <td> 0.23</td>
310
+ <td> 0.00</td>
311
+ <td> 0.00</td>
312
+
313
+ <td> 90000/90000</td>
314
+ <td class="method_name"><a href="#MatchData_[]_3696392">MatchData#[]</a></td>
315
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=218"
316
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:218">218</a></td>
317
+ </tr>
318
+
319
+
320
+ <tr>
321
+ <td>&nbsp;</td>
322
+ <td>&nbsp;</td>
323
+ <td> 0.40</td>
324
+ <td> 0.40</td>
325
+ <td> 0.00</td>
326
+ <td> 0.00</td>
327
+
328
+ <td> 90000/90000</td>
329
+ <td class="method_name"><a href="#FSSM__Pathname_to_s_3696392">FSSM::Pathname#to_s</a></td>
330
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=218"
331
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:218">218</a></td>
332
+ </tr>
333
+
334
+
335
+ <tr>
336
+ <td>&nbsp;</td>
337
+ <td>&nbsp;</td>
338
+ <td> 0.21</td>
339
+ <td> 0.21</td>
340
+ <td> 0.00</td>
341
+ <td> 0.00</td>
342
+
343
+ <td> 90000/90000</td>
344
+ <td class="method_name"><a href="#MatchData_post_match_3696392">MatchData#post_match</a></td>
345
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=219"
346
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:219">219</a></td>
347
+ </tr>
348
+
349
+
350
+ <tr>
351
+ <td>&nbsp;</td>
352
+ <td>&nbsp;</td>
353
+ <td> 0.72</td>
354
+ <td> 0.72</td>
355
+ <td> 0.00</td>
356
+ <td> 0.00</td>
357
+
358
+ <td> 90000/90000</td>
359
+ <td class="method_name"><a href="#String_split_3696392">String#split</a></td>
360
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=219"
361
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:219">219</a></td>
362
+ </tr>
363
+
364
+
365
+ <tr>
366
+ <td>&nbsp;</td>
367
+ <td>&nbsp;</td>
368
+ <td> 0.17</td>
369
+ <td> 0.17</td>
370
+ <td> 0.00</td>
371
+ <td> 0.00</td>
372
+
373
+ <td> 90000/90000</td>
374
+ <td class="method_name"><a href="#Array_compact!_3696392">Array#compact!</a></td>
375
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=225"
376
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:225">225</a></td>
377
+ </tr>
378
+
379
+
380
+ <tr>
381
+ <td>&nbsp;</td>
382
+ <td>&nbsp;</td>
383
+ <td> 1.44</td>
384
+ <td> 0.80</td>
385
+ <td> 0.00</td>
386
+ <td> 0.64</td>
387
+
388
+ <td> 90000/180000</td>
389
+ <td class="method_name"><a href="#Array_delete_3696392">Array#delete</a></td>
390
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=226"
391
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:226">226</a></td>
392
+ </tr>
393
+
394
+ <!-- Create divider row -->
395
+ <tr class="break">
396
+ <td colspan="9"></td>
397
+ </tr>
398
+
399
+
400
+ <!-- Parents -->
401
+
402
+
403
+ <tr>
404
+ <td>&nbsp;</td>
405
+ <td>&nbsp;</td>
406
+ <td> 3.06</td>
407
+ <td> 0.56</td>
408
+ <td> 0.00</td>
409
+ <td> 2.50</td>
410
+
411
+ <td> 90000/90000</td>
412
+ <td class="method_name"><a href="#Global_[No method]_3696392">Global#[No method]</a></td>
413
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/prof-pathname.rb#line=35"
414
+ title="/Users/ttilley/tmp/fssm/profile/prof-pathname.rb:35">35</a></td>
415
+ </tr>
416
+
417
+
418
+ <tr class="method">
419
+ <td> 21.24%</td>
420
+ <td> 3.92%</td>
421
+ <td> 3.06</td>
422
+ <td> 0.56</td>
423
+ <td> 0.00</td>
424
+ <td> 2.50</td>
425
+ <td> 90000</td>
426
+ <td class="method_name"><a name="Class_new_3696392">Class#new</a></td>
427
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
428
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
429
+ </tr>
430
+
431
+ <!-- Children -->
432
+
433
+
434
+ <tr>
435
+ <td>&nbsp;</td>
436
+ <td>&nbsp;</td>
437
+ <td> 0.18</td>
438
+ <td> 0.18</td>
439
+ <td> 0.00</td>
440
+ <td> 0.00</td>
441
+
442
+ <td> 90000/90000</td>
443
+ <td class="method_name"><a href="#_Class__String__allocate_3696392">&lt;Class::String&gt;#allocate</a></td>
444
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=35"
445
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:35">35</a></td>
446
+ </tr>
447
+
448
+
449
+ <tr>
450
+ <td>&nbsp;</td>
451
+ <td>&nbsp;</td>
452
+ <td> 2.31</td>
453
+ <td> 1.18</td>
454
+ <td> 0.00</td>
455
+ <td> 1.13</td>
456
+
457
+ <td> 90000/90000</td>
458
+ <td class="method_name"><a href="#FSSM__Pathname_initialize_3696392">FSSM::Pathname#initialize</a></td>
459
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=35"
460
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:35">35</a></td>
461
+ </tr>
462
+
463
+ <!-- Create divider row -->
464
+ <tr class="break">
465
+ <td colspan="9"></td>
466
+ </tr>
467
+
468
+
469
+ <!-- Parents -->
470
+
471
+
472
+ <tr>
473
+ <td>&nbsp;</td>
474
+ <td>&nbsp;</td>
475
+ <td> 1.44</td>
476
+ <td> 0.80</td>
477
+ <td> 0.00</td>
478
+ <td> 0.64</td>
479
+
480
+ <td> 90000/180000</td>
481
+ <td class="method_name"><a
482
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
483
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=226"
484
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:226">226</a></td>
485
+ </tr>
486
+
487
+
488
+ <tr>
489
+ <td>&nbsp;</td>
490
+ <td>&nbsp;</td>
491
+ <td> 1.40</td>
492
+ <td> 0.78</td>
493
+ <td> 0.00</td>
494
+ <td> 0.62</td>
495
+
496
+ <td> 90000/180000</td>
497
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
498
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=51"
499
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:51">51</a></td>
500
+ </tr>
501
+
502
+
503
+ <tr class="method">
504
+ <td> 19.77%</td>
505
+ <td> 11.03%</td>
506
+ <td> 2.85</td>
507
+ <td> 1.59</td>
508
+ <td> 0.00</td>
509
+ <td> 1.26</td>
510
+ <td> 180000</td>
511
+ <td class="method_name"><a name="Array_delete_3696392">Array#delete</a></td>
512
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
513
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
514
+ </tr>
515
+
516
+ <!-- Children -->
517
+
518
+
519
+ <tr>
520
+ <td>&nbsp;</td>
521
+ <td>&nbsp;</td>
522
+ <td> 1.26</td>
523
+ <td> 1.26</td>
524
+ <td> 0.00</td>
525
+ <td> 0.00</td>
526
+
527
+ <td> 720000/720000</td>
528
+ <td class="method_name"><a href="#String____3696392">String#==</a></td>
529
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=51"
530
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:51">51</a></td>
531
+ </tr>
532
+
533
+ <!-- Create divider row -->
534
+ <tr class="break">
535
+ <td colspan="9"></td>
536
+ </tr>
537
+
538
+
539
+ <!-- Parents -->
540
+
541
+
542
+ <tr>
543
+ <td>&nbsp;</td>
544
+ <td>&nbsp;</td>
545
+ <td> 2.31</td>
546
+ <td> 1.18</td>
547
+ <td> 0.00</td>
548
+ <td> 1.13</td>
549
+
550
+ <td> 90000/90000</td>
551
+ <td class="method_name"><a href="#Class_new_3696392">Class#new</a></td>
552
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=35"
553
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:35">35</a></td>
554
+ </tr>
555
+
556
+
557
+ <tr class="method">
558
+ <td> 16.06%</td>
559
+ <td> 8.21%</td>
560
+ <td> 2.31</td>
561
+ <td> 1.18</td>
562
+ <td> 0.00</td>
563
+ <td> 1.13</td>
564
+ <td> 90000</td>
565
+ <td class="method_name"><a name="FSSM__Pathname_initialize_3696392">FSSM::Pathname#initialize</a></td>
566
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=28"
567
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:28">28</a></td>
568
+ </tr>
569
+
570
+ <!-- Children -->
571
+
572
+
573
+ <tr>
574
+ <td>&nbsp;</td>
575
+ <td>&nbsp;</td>
576
+ <td> 0.94</td>
577
+ <td> 0.94</td>
578
+ <td> 0.00</td>
579
+ <td> 0.00</td>
580
+
581
+ <td> 90000/90000</td>
582
+ <td class="method_name"><a href="#FSSM__Pathname_dememo_3696392">FSSM::Pathname#dememo</a></td>
583
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=33"
584
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:33">33</a></td>
585
+ </tr>
586
+
587
+
588
+ <tr>
589
+ <td>&nbsp;</td>
590
+ <td>&nbsp;</td>
591
+ <td> 0.19</td>
592
+ <td> 0.19</td>
593
+ <td> 0.00</td>
594
+ <td> 0.00</td>
595
+
596
+ <td> 90000/90000</td>
597
+ <td class="method_name"><a href="#String_initialize_3696392">String#initialize</a></td>
598
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=35"
599
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:35">35</a></td>
600
+ </tr>
601
+
602
+ <!-- Create divider row -->
603
+ <tr class="break">
604
+ <td colspan="9"></td>
605
+ </tr>
606
+
607
+
608
+ <!-- Parents -->
609
+
610
+
611
+ <tr>
612
+ <td>&nbsp;</td>
613
+ <td>&nbsp;</td>
614
+ <td> 1.26</td>
615
+ <td> 1.26</td>
616
+ <td> 0.00</td>
617
+ <td> 0.00</td>
618
+
619
+ <td> 720000/720000</td>
620
+ <td class="method_name"><a href="#Array_delete_3696392">Array#delete</a></td>
621
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=51"
622
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:51">51</a></td>
623
+ </tr>
624
+
625
+
626
+ <tr class="method">
627
+ <td> 8.74%</td>
628
+ <td> 8.74%</td>
629
+ <td> 1.26</td>
630
+ <td> 1.26</td>
631
+ <td> 0.00</td>
632
+ <td> 0.00</td>
633
+ <td> 720000</td>
634
+ <td class="method_name"><a name="String____3696392">String#==</a></td>
635
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
636
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
637
+ </tr>
638
+
639
+ <!-- Children -->
640
+
641
+ <!-- Create divider row -->
642
+ <tr class="break">
643
+ <td colspan="9"></td>
644
+ </tr>
645
+
646
+
647
+ <!-- Parents -->
648
+
649
+
650
+ <tr>
651
+ <td>&nbsp;</td>
652
+ <td>&nbsp;</td>
653
+ <td> 0.94</td>
654
+ <td> 0.49</td>
655
+ <td> 0.00</td>
656
+ <td> 0.45</td>
657
+
658
+ <td> 90000/90000</td>
659
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
660
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=50"
661
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:50">50</a></td>
662
+ </tr>
663
+
664
+
665
+ <tr class="method">
666
+ <td> 6.55%</td>
667
+ <td> 3.43%</td>
668
+ <td> 0.94</td>
669
+ <td> 0.49</td>
670
+ <td> 0.00</td>
671
+ <td> 0.45</td>
672
+ <td> 90000</td>
673
+ <td class="method_name"><a name="Kernel_dup_3696392">Kernel#dup</a></td>
674
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
675
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
676
+ </tr>
677
+
678
+ <!-- Children -->
679
+
680
+
681
+ <tr>
682
+ <td>&nbsp;</td>
683
+ <td>&nbsp;</td>
684
+ <td> 0.20</td>
685
+ <td> 0.20</td>
686
+ <td> 0.00</td>
687
+ <td> 0.00</td>
688
+
689
+ <td> 90000/90000</td>
690
+ <td class="method_name"><a href="#_Class__Array__allocate_3696392">&lt;Class::Array&gt;#allocate</a></td>
691
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=50"
692
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:50">50</a></td>
693
+ </tr>
694
+
695
+
696
+ <tr>
697
+ <td>&nbsp;</td>
698
+ <td>&nbsp;</td>
699
+ <td> 0.25</td>
700
+ <td> 0.25</td>
701
+ <td> 0.00</td>
702
+ <td> 0.00</td>
703
+
704
+ <td> 90000/90000</td>
705
+ <td class="method_name"><a href="#Array_initialize_copy_3696392">Array#initialize_copy</a></td>
706
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=50"
707
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:50">50</a></td>
708
+ </tr>
709
+
710
+ <!-- Create divider row -->
711
+ <tr class="break">
712
+ <td colspan="9"></td>
713
+ </tr>
714
+
715
+
716
+ <!-- Parents -->
717
+
718
+
719
+ <tr>
720
+ <td>&nbsp;</td>
721
+ <td>&nbsp;</td>
722
+ <td> 0.94</td>
723
+ <td> 0.94</td>
724
+ <td> 0.00</td>
725
+ <td> 0.00</td>
726
+
727
+ <td> 90000/90000</td>
728
+ <td class="method_name"><a href="#FSSM__Pathname_initialize_3696392">FSSM::Pathname#initialize</a></td>
729
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=33"
730
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:33">33</a></td>
731
+ </tr>
732
+
733
+
734
+ <tr class="method">
735
+ <td> 6.50%</td>
736
+ <td> 6.50%</td>
737
+ <td> 0.94</td>
738
+ <td> 0.94</td>
739
+ <td> 0.00</td>
740
+ <td> 0.00</td>
741
+ <td> 90000</td>
742
+ <td class="method_name"><a name="FSSM__Pathname_dememo_3696392">FSSM::Pathname#dememo</a></td>
743
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=203"
744
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:203">203</a></td>
745
+ </tr>
746
+
747
+ <!-- Children -->
748
+
749
+ <!-- Create divider row -->
750
+ <tr class="break">
751
+ <td colspan="9"></td>
752
+ </tr>
753
+
754
+
755
+ <!-- Parents -->
756
+
757
+
758
+ <tr>
759
+ <td>&nbsp;</td>
760
+ <td>&nbsp;</td>
761
+ <td> 0.72</td>
762
+ <td> 0.72</td>
763
+ <td> 0.00</td>
764
+ <td> 0.00</td>
765
+
766
+ <td> 90000/90000</td>
767
+ <td class="method_name"><a
768
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
769
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=219"
770
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:219">219</a></td>
771
+ </tr>
772
+
773
+
774
+ <tr class="method">
775
+ <td> 4.97%</td>
776
+ <td> 4.97%</td>
777
+ <td> 0.72</td>
778
+ <td> 0.72</td>
779
+ <td> 0.00</td>
780
+ <td> 0.00</td>
781
+ <td> 90000</td>
782
+ <td class="method_name"><a name="String_split_3696392">String#split</a></td>
783
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
784
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
785
+ </tr>
786
+
787
+ <!-- Children -->
788
+
789
+ <!-- Create divider row -->
790
+ <tr class="break">
791
+ <td colspan="9"></td>
792
+ </tr>
793
+
794
+
795
+ <!-- Parents -->
796
+
797
+
798
+ <tr>
799
+ <td>&nbsp;</td>
800
+ <td>&nbsp;</td>
801
+ <td> 0.46</td>
802
+ <td> 0.46</td>
803
+ <td> 0.00</td>
804
+ <td> 0.00</td>
805
+
806
+ <td> 90000/90000</td>
807
+ <td class="method_name"><a
808
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
809
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=217"
810
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:217">217</a></td>
811
+ </tr>
812
+
813
+
814
+ <tr class="method">
815
+ <td> 3.21%</td>
816
+ <td> 3.21%</td>
817
+ <td> 0.46</td>
818
+ <td> 0.46</td>
819
+ <td> 0.00</td>
820
+ <td> 0.00</td>
821
+ <td> 90000</td>
822
+ <td class="method_name"><a name="Regexp_match_3696392">Regexp#match</a></td>
823
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
824
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
825
+ </tr>
826
+
827
+ <!-- Children -->
828
+
829
+ <!-- Create divider row -->
830
+ <tr class="break">
831
+ <td colspan="9"></td>
832
+ </tr>
833
+
834
+
835
+ <!-- Parents -->
836
+
837
+
838
+ <tr>
839
+ <td>&nbsp;</td>
840
+ <td>&nbsp;</td>
841
+ <td> 0.40</td>
842
+ <td> 0.40</td>
843
+ <td> 0.00</td>
844
+ <td> 0.00</td>
845
+
846
+ <td> 90000/90000</td>
847
+ <td class="method_name"><a
848
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
849
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=218"
850
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:218">218</a></td>
851
+ </tr>
852
+
853
+
854
+ <tr class="method">
855
+ <td> 2.77%</td>
856
+ <td> 2.77%</td>
857
+ <td> 0.40</td>
858
+ <td> 0.40</td>
859
+ <td> 0.00</td>
860
+ <td> 0.00</td>
861
+ <td> 90000</td>
862
+ <td class="method_name"><a name="FSSM__Pathname_to_s_3696392">FSSM::Pathname#to_s</a></td>
863
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=42"
864
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:42">42</a></td>
865
+ </tr>
866
+
867
+ <!-- Children -->
868
+
869
+ <!-- Create divider row -->
870
+ <tr class="break">
871
+ <td colspan="9"></td>
872
+ </tr>
873
+
874
+
875
+ <!-- Parents -->
876
+
877
+
878
+ <tr>
879
+ <td>&nbsp;</td>
880
+ <td>&nbsp;</td>
881
+ <td> 0.26</td>
882
+ <td> 0.26</td>
883
+ <td> 0.00</td>
884
+ <td> 0.00</td>
885
+
886
+ <td> 90000/90000</td>
887
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
888
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=52"
889
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:52">52</a></td>
890
+ </tr>
891
+
892
+
893
+ <tr class="method">
894
+ <td> 1.79%</td>
895
+ <td> 1.79%</td>
896
+ <td> 0.26</td>
897
+ <td> 0.26</td>
898
+ <td> 0.00</td>
899
+ <td> 0.00</td>
900
+ <td> 90000</td>
901
+ <td class="method_name"><a name="Array_unshift_3696392">Array#unshift</a></td>
902
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
903
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
904
+ </tr>
905
+
906
+ <!-- Children -->
907
+
908
+ <!-- Create divider row -->
909
+ <tr class="break">
910
+ <td colspan="9"></td>
911
+ </tr>
912
+
913
+
914
+ <!-- Parents -->
915
+
916
+
917
+ <tr>
918
+ <td>&nbsp;</td>
919
+ <td>&nbsp;</td>
920
+ <td> 0.25</td>
921
+ <td> 0.25</td>
922
+ <td> 0.00</td>
923
+ <td> 0.00</td>
924
+
925
+ <td> 90000/90000</td>
926
+ <td class="method_name"><a href="#Kernel_dup_3696392">Kernel#dup</a></td>
927
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=50"
928
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:50">50</a></td>
929
+ </tr>
930
+
931
+
932
+ <tr class="method">
933
+ <td> 1.72%</td>
934
+ <td> 1.72%</td>
935
+ <td> 0.25</td>
936
+ <td> 0.25</td>
937
+ <td> 0.00</td>
938
+ <td> 0.00</td>
939
+ <td> 90000</td>
940
+ <td class="method_name"><a name="Array_initialize_copy_3696392">Array#initialize_copy</a></td>
941
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
942
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
943
+ </tr>
944
+
945
+ <!-- Children -->
946
+
947
+ <!-- Create divider row -->
948
+ <tr class="break">
949
+ <td colspan="9"></td>
950
+ </tr>
951
+
952
+
953
+ <!-- Parents -->
954
+
955
+
956
+ <tr>
957
+ <td>&nbsp;</td>
958
+ <td>&nbsp;</td>
959
+ <td> 0.23</td>
960
+ <td> 0.23</td>
961
+ <td> 0.00</td>
962
+ <td> 0.00</td>
963
+
964
+ <td> 90000/90000</td>
965
+ <td class="method_name"><a
966
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
967
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=218"
968
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:218">218</a></td>
969
+ </tr>
970
+
971
+
972
+ <tr class="method">
973
+ <td> 1.61%</td>
974
+ <td> 1.61%</td>
975
+ <td> 0.23</td>
976
+ <td> 0.23</td>
977
+ <td> 0.00</td>
978
+ <td> 0.00</td>
979
+ <td> 90000</td>
980
+ <td class="method_name"><a name="MatchData_[]_3696392">MatchData#[]</a></td>
981
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
982
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
983
+ </tr>
984
+
985
+ <!-- Children -->
986
+
987
+ <!-- Create divider row -->
988
+ <tr class="break">
989
+ <td colspan="9"></td>
990
+ </tr>
991
+
992
+
993
+ <!-- Parents -->
994
+
995
+
996
+ <tr>
997
+ <td>&nbsp;</td>
998
+ <td>&nbsp;</td>
999
+ <td> 0.21</td>
1000
+ <td> 0.21</td>
1001
+ <td> 0.00</td>
1002
+ <td> 0.00</td>
1003
+
1004
+ <td> 90000/90000</td>
1005
+ <td class="method_name"><a
1006
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
1007
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=219"
1008
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:219">219</a></td>
1009
+ </tr>
1010
+
1011
+
1012
+ <tr class="method">
1013
+ <td> 1.45%</td>
1014
+ <td> 1.45%</td>
1015
+ <td> 0.21</td>
1016
+ <td> 0.21</td>
1017
+ <td> 0.00</td>
1018
+ <td> 0.00</td>
1019
+ <td> 90000</td>
1020
+ <td class="method_name"><a name="MatchData_post_match_3696392">MatchData#post_match</a></td>
1021
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1022
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1023
+ </tr>
1024
+
1025
+ <!-- Children -->
1026
+
1027
+ <!-- Create divider row -->
1028
+ <tr class="break">
1029
+ <td colspan="9"></td>
1030
+ </tr>
1031
+
1032
+
1033
+ <!-- Parents -->
1034
+
1035
+
1036
+ <tr>
1037
+ <td>&nbsp;</td>
1038
+ <td>&nbsp;</td>
1039
+ <td> 0.20</td>
1040
+ <td> 0.20</td>
1041
+ <td> 0.00</td>
1042
+ <td> 0.00</td>
1043
+
1044
+ <td> 90000/90000</td>
1045
+ <td class="method_name"><a href="#Kernel_dup_3696392">Kernel#dup</a></td>
1046
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=50"
1047
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:50">50</a></td>
1048
+ </tr>
1049
+
1050
+
1051
+ <tr class="method">
1052
+ <td> 1.41%</td>
1053
+ <td> 1.41%</td>
1054
+ <td> 0.20</td>
1055
+ <td> 0.20</td>
1056
+ <td> 0.00</td>
1057
+ <td> 0.00</td>
1058
+ <td> 90000</td>
1059
+ <td class="method_name"><a name="_Class__Array__allocate_3696392">&lt;Class::Array&gt;#allocate</a></td>
1060
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1061
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1062
+ </tr>
1063
+
1064
+ <!-- Children -->
1065
+
1066
+ <!-- Create divider row -->
1067
+ <tr class="break">
1068
+ <td colspan="9"></td>
1069
+ </tr>
1070
+
1071
+
1072
+ <!-- Parents -->
1073
+
1074
+
1075
+ <tr>
1076
+ <td>&nbsp;</td>
1077
+ <td>&nbsp;</td>
1078
+ <td> 0.19</td>
1079
+ <td> 0.19</td>
1080
+ <td> 0.00</td>
1081
+ <td> 0.00</td>
1082
+
1083
+ <td> 90000/90000</td>
1084
+ <td class="method_name"><a href="#FSSM__Pathname_initialize_3696392">FSSM::Pathname#initialize</a></td>
1085
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=35"
1086
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:35">35</a></td>
1087
+ </tr>
1088
+
1089
+
1090
+ <tr class="method">
1091
+ <td> 1.35%</td>
1092
+ <td> 1.35%</td>
1093
+ <td> 0.19</td>
1094
+ <td> 0.19</td>
1095
+ <td> 0.00</td>
1096
+ <td> 0.00</td>
1097
+ <td> 90000</td>
1098
+ <td class="method_name"><a name="String_initialize_3696392">String#initialize</a></td>
1099
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1100
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1101
+ </tr>
1102
+
1103
+ <!-- Children -->
1104
+
1105
+ <!-- Create divider row -->
1106
+ <tr class="break">
1107
+ <td colspan="9"></td>
1108
+ </tr>
1109
+
1110
+
1111
+ <!-- Parents -->
1112
+
1113
+
1114
+ <tr>
1115
+ <td>&nbsp;</td>
1116
+ <td>&nbsp;</td>
1117
+ <td> 0.18</td>
1118
+ <td> 0.18</td>
1119
+ <td> 0.00</td>
1120
+ <td> 0.00</td>
1121
+
1122
+ <td> 90000/90000</td>
1123
+ <td class="method_name"><a href="#Class_new_3696392">Class#new</a></td>
1124
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=35"
1125
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:35">35</a></td>
1126
+ </tr>
1127
+
1128
+
1129
+ <tr class="method">
1130
+ <td> 1.26%</td>
1131
+ <td> 1.26%</td>
1132
+ <td> 0.18</td>
1133
+ <td> 0.18</td>
1134
+ <td> 0.00</td>
1135
+ <td> 0.00</td>
1136
+ <td> 90000</td>
1137
+ <td class="method_name"><a name="_Class__String__allocate_3696392">&lt;Class::String&gt;#allocate</a></td>
1138
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1139
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1140
+ </tr>
1141
+
1142
+ <!-- Children -->
1143
+
1144
+ <!-- Create divider row -->
1145
+ <tr class="break">
1146
+ <td colspan="9"></td>
1147
+ </tr>
1148
+
1149
+
1150
+ <!-- Parents -->
1151
+
1152
+
1153
+ <tr>
1154
+ <td>&nbsp;</td>
1155
+ <td>&nbsp;</td>
1156
+ <td> 0.17</td>
1157
+ <td> 0.17</td>
1158
+ <td> 0.00</td>
1159
+ <td> 0.00</td>
1160
+
1161
+ <td> 90000/90000</td>
1162
+ <td class="method_name"><a
1163
+ href="#FSSM__Pathname_set_prefix_and_names_3696392">FSSM::Pathname#set_prefix_and_names</a></td>
1164
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=225"
1165
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:225">225</a></td>
1166
+ </tr>
1167
+
1168
+
1169
+ <tr class="method">
1170
+ <td> 1.19%</td>
1171
+ <td> 1.19%</td>
1172
+ <td> 0.17</td>
1173
+ <td> 0.17</td>
1174
+ <td> 0.00</td>
1175
+ <td> 0.00</td>
1176
+ <td> 90000</td>
1177
+ <td class="method_name"><a name="Array_compact!_3696392">Array#compact!</a></td>
1178
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1179
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1180
+ </tr>
1181
+
1182
+ <!-- Children -->
1183
+
1184
+ <!-- Create divider row -->
1185
+ <tr class="break">
1186
+ <td colspan="9"></td>
1187
+ </tr>
1188
+
1189
+
1190
+ <!-- Parents -->
1191
+
1192
+
1193
+ <tr>
1194
+ <td>&nbsp;</td>
1195
+ <td>&nbsp;</td>
1196
+ <td> 0.16</td>
1197
+ <td> 0.16</td>
1198
+ <td> 0.00</td>
1199
+ <td> 0.00</td>
1200
+
1201
+ <td> 90000/90000</td>
1202
+ <td class="method_name"><a href="#FSSM__Pathname_to_a_3696392">FSSM::Pathname#to_a</a></td>
1203
+ <td><a href="file:///Users/ttilley/tmp/fssm/lib/fssm/pathname.rb#line=52"
1204
+ title="/Users/ttilley/tmp/fssm/lib/fssm/pathname.rb:52">52</a></td>
1205
+ </tr>
1206
+
1207
+
1208
+ <tr class="method">
1209
+ <td> 1.11%</td>
1210
+ <td> 1.11%</td>
1211
+ <td> 0.16</td>
1212
+ <td> 0.16</td>
1213
+ <td> 0.00</td>
1214
+ <td> 0.00</td>
1215
+ <td> 90000</td>
1216
+ <td class="method_name"><a name="String_empty__3696392">String#empty?</a></td>
1217
+ <td><a href="file:///Users/ttilley/tmp/fssm/profile/ruby_runtime#line=0"
1218
+ title="/Users/ttilley/tmp/fssm/profile/ruby_runtime:0">0</a></td>
1219
+ </tr>
1220
+
1221
+ <!-- Children -->
1222
+
1223
+ <!-- Create divider row -->
1224
+ <tr class="break">
1225
+ <td colspan="9"></td>
1226
+ </tr>
1227
+
1228
+ </table>
1229
+
1230
+ </body>
1231
+ </html>