模块 Gem
常量
- FLATTENS_REQUIRED_PATHS
一旦 RubyGems 3.3.15 的支持被删除,就可以移除此项
- Net
- SecureRandom
安全随机数生成器接口。¶ ↑
这个库是安全随机数生成器的接口,适用于生成 HTTP Cookie 中的会话密钥等。
您可以通过引用这个库在您的应用程序中使用它
require 'bundler/vendor/securerandom/lib/securerandom'
它支持以下安全随机数生成器
-
openssl
-
/dev/urandom
-
Win32
Bundler::SecureRandom
扩展了 Random::Formatter 模块,该模块定义了以下方法-
alphanumeric
-
base64
-
choose
-
gen_random
-
hex
-
rand
-
random_bytes
-
random_number
-
urlsafe_base64
-
uuid
这些方法可以作为
Bundler::SecureRandom
的类方法使用,例如Bundler::SecureRandom.hex
。如果无法使用安全随机数生成器,将引发
NotImplementedError
错误。-
- Timeout
- URI
Bundler::URI
是一个提供处理统一资源标识符(RFC2396)的类的模块。特性¶ ↑
-
处理 URI 的统一方法。
-
灵活引入自定义的
Bundler::URI
方案。 -
灵活地拥有备用的 Bundler::URI::Parser(或只是不同的模式和正则表达式)。
基本示例¶ ↑
require 'bundler/vendor/uri/lib/uri' uri = Bundler::URI("http://foo.com/posts?id=30&limit=5#time=1305298413") #=> #<Bundler::URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413> uri.scheme #=> "http" uri.host #=> "foo.com" uri.path #=> "/posts" uri.query #=> "id=30&limit=5" uri.fragment #=> "time=1305298413" uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
添加自定义 URI¶ ↑
module Bundler::URI class RSYNC < Generic DEFAULT_PORT = 873 end register_scheme 'RSYNC', RSYNC end #=> Bundler::URI::RSYNC Bundler::URI.scheme_list #=> {"FILE"=>Bundler::URI::File, "FTP"=>Bundler::URI::FTP, "HTTP"=>Bundler::URI::HTTP, # "HTTPS"=>Bundler::URI::HTTPS, "LDAP"=>Bundler::URI::LDAP, "LDAPS"=>Bundler::URI::LDAPS, # "MAILTO"=>Bundler::URI::MailTo, "RSYNC"=>Bundler::URI::RSYNC} uri = Bundler::URI("rsync://rsync.foo.com") #=> #<Bundler::URI::RSYNC rsync://rsync.foo.com>
RFC 参考¶ ↑
查看 RFC 规范的好地方是 www.ietf.org/rfc.html。
以下是所有相关 RFC 的列表
类树¶ ↑
-
Bundler::URI::Generic
(在 uri/generic.rb 中)-
Bundler::URI::File
- (在 uri/file.rb 中) -
Bundler::URI::FTP
- (在 uri/ftp.rb 中) -
Bundler::URI::HTTP
- (在 uri/http.rb 中)-
Bundler::URI::HTTPS
- (在 uri/https.rb 中)
-
-
Bundler::URI::LDAP
- (在 uri/ldap.rb 中)-
Bundler::URI::LDAPS
- (在 uri/ldaps.rb 中)
-
-
Bundler::URI::MailTo
- (在 uri/mailto.rb 中)
-
-
Bundler::URI::Parser - (在 uri/common.rb 中)
-
Bundler::URI::REGEXP - (在 uri/common.rb 中)
-
Bundler::URI::REGEXP::PATTERN - (在 uri/common.rb 中)
-
-
Bundler::URI::Util - (在 uri/common.rb 中)
-
Bundler::URI::Error
- (在 uri/common.rb 中)-
Bundler::URI::InvalidURIError
- (在 uri/common.rb 中) -
Bundler::URI::InvalidComponentError
- (在 uri/common.rb 中) -
Bundler::URI::BadURIError
- (在 uri/common.rb 中)
-
版权信息¶ ↑
- 作者
-
Akira Yamada <[email protected]>
- 文档
-
Akira Yamada <[email protected]> Dmitry V. Sabanin <[email protected]> Vincent Batts <[email protected]>
- 许可证
-
版权所有 © 2001 akira yamada <[email protected]> 您可以根据与 Ruby 相同的条款重新分发和/或修改它。
-
- VALIDATES_FOR_RESOLUTION
一旦 RubyGems 3.5.14 的支持被删除,就可以移除此项
公共类方法
# File bundler/vendored_uri.rb, line 16 def URI(uri) # rubocop:disable Naming/MethodName Bundler::URI(uri) end
# File bundler/rubygems_ext.rb, line 28 def self.freebsd_platform? RbConfig::CONFIG["host_os"].to_s.include?("bsd") end
# File bundler/rubygems_ext.rb, line 38 def open_file_with_flock(path, &block) # read-write mode is used rather than read-only in order to support NFS mode = IO::RDWR | IO::APPEND | IO::CREAT | IO::BINARY mode |= IO::SHARE_DELETE if IO.const_defined?(:SHARE_DELETE) File.open(path, mode) do |io| begin io.flock(File::LOCK_EX) rescue Errno::ENOSYS, Errno::ENOTSUP end yield io end end
# File bundler/rubygems_ext.rb, line 52 def open_file_with_lock(path, &block) file_lock = "#{path}.lock" open_file_with_flock(file_lock, &block) ensure FileUtils.rm_f file_lock end
公共实例方法
# File bundler/rubygems_ext.rb, line 348 def match_gem?(platform, gem_name) match_platforms?(platform, Gem.platforms) end
# File bundler/rubygems_ext.rb, line 361 def match_platforms?(platform, platforms) platforms.any? do |local_platform| platform.nil? || local_platform == platform || (local_platform != Gem::Platform::RUBY && platform =~ local_platform) end end
# File bundler/rubygems_ext.rb, line 344 def match_spec?(spec) match_gem?(spec.platform, spec.name) end
私有实例方法
# File bundler/vendored_uri.rb, line 16 def URI(uri) # rubocop:disable Naming/MethodName Bundler::URI(uri) end