summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/lib/yaml/ypath.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/lib/yaml/ypath.rb')
-rw-r--r--ruby_1_8_6/lib/yaml/ypath.rb52
1 files changed, 0 insertions, 52 deletions
diff --git a/ruby_1_8_6/lib/yaml/ypath.rb b/ruby_1_8_6/lib/yaml/ypath.rb
deleted file mode 100644
index 81348ca043..0000000000
--- a/ruby_1_8_6/lib/yaml/ypath.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# YAML::YPath
-#
-
-module YAML
-
- class YPath
- attr_accessor :segments, :predicates, :flags
- def initialize( str )
- @segments = []
- @predicates = []
- @flags = nil
- while str =~ /^\/?(\/|[^\/\[]+)(?:\[([^\]]+)\])?/
- @segments.push $1
- @predicates.push $2
- str = $'
- end
- unless str.to_s.empty?
- @segments += str.split( "/" )
- end
- if @segments.length == 0
- @segments.push "."
- end
- end
- def YPath.each_path( str )
- #
- # Find choices
- #
- paths = []
- str = "(#{ str })"
- while str.sub!( /\(([^()]+)\)/, "\n#{ paths.length }\n" )
- paths.push $1.split( '|' )
- end
-
- #
- # Construct all possible paths
- #
- all = [ str ]
- ( paths.length - 1 ).downto( 0 ) do |i|
- all = all.collect do |a|
- paths[i].collect do |p|
- a.gsub( /\n#{ i }\n/, p )
- end
- end.flatten.uniq
- end
- all.collect do |path|
- yield YPath.new( path )
- end
- end
- end
-
-end