🐐 GOAT Shell
Current path:
opt
/
alt
/
ruby21
/
lib64
/
ruby
/
2.1.0
/
rdoc
/
👤 Create WP Admin
⬆️
Go up: 2.1.0
✏️ Editing: encoding.rb
# coding: US-ASCII ## # This class is a wrapper around File IO and Encoding that helps RDoc load # files and convert them to the correct encoding. module RDoc::Encoding ## # Reads the contents of +filename+ and handles any encoding directives in # the file. # # The content will be converted to the +encoding+. If the file cannot be # converted a warning will be printed and nil will be returned. # # If +force_transcode+ is true the document will be transcoded and any # unknown character in the target encoding will be replaced with '?' def self.read_file filename, encoding, force_transcode = false content = open filename, "rb" do |f| f.read end content.gsub!("\r\n", "\n") if RUBY_PLATFORM =~ /mswin|mingw/ utf8 = content.sub!(/\A\xef\xbb\xbf/, '') RDoc::Encoding.set_encoding content if Object.const_defined? :Encoding then begin encoding ||= Encoding.default_external orig_encoding = content.encoding if utf8 then content.force_encoding Encoding::UTF_8 content.encode! encoding else # assume the content is in our output encoding content.force_encoding encoding end unless content.valid_encoding? then # revert and try to transcode content.force_encoding orig_encoding content.encode! encoding end unless content.valid_encoding? then warn "unable to convert #{filename} to #{encoding}, skipping" content = nil end rescue Encoding::InvalidByteSequenceError, Encoding::UndefinedConversionError => e if force_transcode then content.force_encoding orig_encoding content.encode!(encoding, :invalid => :replace, :undef => :replace, :replace => '?') return content else warn "unable to convert #{e.message} for #{filename}, skipping" return nil end end end content rescue ArgumentError => e raise unless e.message =~ /unknown encoding name - (.*)/ warn "unknown encoding name \"#{$1}\" for #{filename}, skipping" nil rescue Errno::EISDIR, Errno::ENOENT nil end ## # Sets the encoding of +string+ based on the magic comment def self.set_encoding string string =~ /\A(?:#!.*\n)?(.*\n)/ first_line = $1 name = case first_line when /^<\?xml[^?]*encoding=(["'])(.*?)\1/ then $2 when /\b(?:en)?coding[=:]\s*([^\s;]+)/i then $1 else return end string.sub! first_line, '' return unless Object.const_defined? :Encoding enc = Encoding.find name string.force_encoding enc if enc end end
Save
📁
context
|
✏️ Rename
|
🗑️ Delete
📁
generator
|
✏️ Rename
|
🗑️ Delete
📁
markdown
|
✏️ Rename
|
🗑️ Delete
📁
markup
|
✏️ Rename
|
🗑️ Delete
📁
parser
|
✏️ Rename
|
🗑️ Delete
📁
rd
|
✏️ Rename
|
🗑️ Delete
📁
ri
|
✏️ Rename
|
🗑️ Delete
📁
stats
|
✏️ Rename
|
🗑️ Delete
📄
alias.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
anon_class.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
any_method.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
attr.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
class_module.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
code_object.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
code_objects.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
comment.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
constant.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
context.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
cross_reference.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
encoding.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
erbio.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
erb_partial.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
extend.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
generator.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ghost_method.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
include.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
known_classes.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
markdown.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
markup.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
meta_method.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
method_attr.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
mixin.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
normal_class.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
normal_module.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
options.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
parser.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rd.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rdoc.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
require.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ri.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rubygems_hook.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ruby_lex.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ruby_token.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
servlet.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
single_class.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
stats.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
store.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
task.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
test_case.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
text.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
token_stream.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
tom_doc.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
top_level.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📤 Upload File
Upload
📁 Create Folder
Create Folder