Class: Nokogiri::VersionInfo
- Inherits:
-
Object
- Object
- Nokogiri::VersionInfo
- Defined in:
- lib/nokogiri/version.rb
Overview
:nodoc:
Constant Summary collapse
- @@instance =
FIXME: maybe switch to singleton?
new
Class Method Summary collapse
Instance Method Summary collapse
- #compiled_parser_version ⇒ Object
- #engine ⇒ Object
- #jruby? ⇒ Boolean
- #libxml2? ⇒ Boolean
- #loaded_parser_version ⇒ Object
- #to_hash ⇒ Object
- #to_markdown ⇒ Object
- #warnings ⇒ Object
Class Method Details
.instance ⇒ Object
78 |
# File 'lib/nokogiri/version.rb', line 78 def self.instance; @@instance; end |
Instance Method Details
#compiled_parser_version ⇒ Object
20 21 22 |
# File 'lib/nokogiri/version.rb', line 20 def compiled_parser_version LIBXML_VERSION end |
#engine ⇒ Object
10 11 12 |
# File 'lib/nokogiri/version.rb', line 10 def engine defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'mri' end |
#jruby? ⇒ Boolean
6 7 8 |
# File 'lib/nokogiri/version.rb', line 6 def jruby? ::JRUBY_VERSION if RUBY_PLATFORM == "java" end |
#libxml2? ⇒ Boolean
24 25 26 |
# File 'lib/nokogiri/version.rb', line 24 def libxml2? defined?(LIBXML_VERSION) end |
#loaded_parser_version ⇒ Object
14 15 16 17 18 |
# File 'lib/nokogiri/version.rb', line 14 def loaded_parser_version LIBXML_PARSER_VERSION.scan(/^(\d+)(\d\d)(\d\d)(?!\d)/).first.collect{ |j| j.to_i }.join(".") end |
#to_hash ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/nokogiri/version.rb', line 38 def to_hash hash_info = {} hash_info['warnings'] = [] hash_info['nokogiri'] = Nokogiri::VERSION hash_info['ruby'] = {} hash_info['ruby']['version'] = ::RUBY_VERSION hash_info['ruby']['platform'] = ::RUBY_PLATFORM hash_info['ruby']['description'] = ::RUBY_DESCRIPTION hash_info['ruby']['engine'] = engine hash_info['ruby']['jruby'] = jruby? if jruby? if libxml2? hash_info['libxml'] = {} hash_info['libxml']['binding'] = 'extension' hash_info['libxml']['compiled'] = compiled_parser_version hash_info['libxml']['loaded'] = loaded_parser_version hash_info['warnings'] = warnings elsif jruby? hash_info['xerces'] = Nokogiri::XERCES_VERSION hash_info['nekohtml'] = Nokogiri::NEKO_VERSION end hash_info end |
#to_markdown ⇒ Object
63 64 65 66 67 68 69 70 71 |
# File 'lib/nokogiri/version.rb', line 63 def to_markdown begin require 'psych' rescue LoadError end require 'yaml' "# Nokogiri (#{Nokogiri::VERSION})\n" + YAML.dump(to_hash).each_line.map { |line| " #{line}" }.join end |
#warnings ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/nokogiri/version.rb', line 28 def warnings return [] unless libxml2? if compiled_parser_version != loaded_parser_version ["Nokogiri was built against LibXML version #{compiled_parser_version}, but has dynamically loaded #{loaded_parser_version}"] else [] end end |