X7ROOT File Manager
Current Path:
/opt/alt/ruby18/lib64/ruby/1.8/yaml
opt
/
alt
/
ruby18
/
lib64
/
ruby
/
1.8
/
yaml
/
??
..
??
baseemitter.rb
(5.62 KB)
??
basenode.rb
(5.98 KB)
??
constants.rb
(1.16 KB)
??
dbm.rb
(2.24 KB)
??
encoding.rb
(605 B)
??
error.rb
(1.04 KB)
??
loader.rb
(296 B)
??
rubytypes.rb
(12.73 KB)
??
store.rb
(703 B)
??
stream.rb
(700 B)
??
stringio.rb
(1.92 KB)
??
syck.rb
(271 B)
??
tag.rb
(3.08 KB)
??
types.rb
(4.88 KB)
??
yamlnode.rb
(1.19 KB)
??
ypath.rb
(1.3 KB)
Editing: ypath.rb
# # 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
Upload File
Create Folder