D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Gem
/
Filename :
cdesc-Gem.ri
back
Copy
U:RDoc::NormalModule[iI"Gem:ET@0o:RDoc::Markup::Document:@parts[o;;[ : @fileI"lib/rubygems.rb;T:0@omit_headings_from_table_of_contents_below0o;;[7o:RDoc::Markup::Paragraph;[I"KRubyGems is the Ruby standard for publishing and managing third party ;TI"libraries.;To:RDoc::Markup::BlankLine o;;[I"!For user documentation, see:;T@o:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;;[I"6<tt>gem help</tt> and <tt>gem help [command]</tt>;To;;0;[o;;[I"8{RubyGems User Guide}[https://guides.rubygems.org/];To;;0;[o;;[I"C{Frequently Asked Questions}[https://guides.rubygems.org/faqs];T@o;;[I")For gem developer documentation see:;T@o; ;;;[o;;0;[o;;[I"C{Creating Gems}[https://guides.rubygems.org/make-your-own-gem];To;;0;[o;;[I"Gem::Specification;To;;0;[o;;[I".Gem::Version for version dependency notes;T@o;;[I"4Further RubyGems documentation can be found at:;T@o; ;;;[o;;0;[o;;[I"3{RubyGems Guides}[https://guides.rubygems.org];To;;0;[o;;[I"\{RubyGems API}[https://www.rubydoc.info/github/rubygems/rubygems] (also available from ;TI"<tt>gem server</tt>);T@S:RDoc::Markup::Heading: leveli: textI"RubyGems Plugins;T@o;;[ I"ORubyGems will load plugins in the latest version of each installed gem or ;TI"N$LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and ;TI"Qplaced at the root of your gem's #require_path. Plugins are installed at a ;TI")special location and loaded on boot.;T@o;;[I"TFor an example plugin, see the {Graph gem}[https://github.com/seattlerb/graph] ;TI"-which adds a <tt>gem graph</tt> command.;T@S;;i;I"!RubyGems Defaults, Packaging;T@o;;[I"TRubyGems defaults are stored in lib/rubygems/defaults.rb. If you're packaging ;TI"ERubyGems or implementing Ruby you can change RubyGems' defaults.;T@o;;[I"OFor RubyGems packagers, provide lib/rubygems/defaults/operating_system.rb ;TI"=and override any defaults from lib/rubygems/defaults.rb.;T@o;;[I"PFor Ruby implementers, provide lib/rubygems/defaults/#{RUBY_ENGINE}.rb and ;TI"9override any defaults from lib/rubygems/defaults.rb.;T@o;;[ I"NIf you need RubyGems to perform extra work on install or uninstall, your ;TI"Jdefaults override file can set pre/post install and uninstall hooks. ;TI"BSee Gem::pre_install, Gem::pre_uninstall, Gem::post_install, ;TI"Gem::post_uninstall.;T@S;;i;I" Bugs;T@o;;[I" You can submit bugs to the ;TI"I{RubyGems bug tracker}[https://github.com/rubygems/rubygems/issues] ;TI"on GitHub;T@S;;i;I"Credits;T@o;;[I"4RubyGems is currently maintained by Eric Hodel.;T@o;;[I";RubyGems was originally developed at RubyConf 2003 by:;T@o; ;;;[ o;;0;[o;;[I"*Rich Kilmer -- rich(at)infoether.com;To;;0;[o;;[I"+Chad Fowler -- chad(at)chadfowler.com;To;;0;[o;;[I"+David Black -- dblack(at)wobblini.net;To;;0;[o;;[I"'Paul Brannan -- paul(at)atdesk.com;To;;0;[o;;[I"-Jim Weirich -- jim(at)weirichhouse.org;T@o;;[I"Contributors:;T@o; ;;;[o;;0;[o;;[I"7Gavin Sinclair -- gsinclair(at)soyabean.com.au;To;;0;[o;;[I"9George Marrows -- george.marrows(at)ntlworld.com;To;;0;[o;;[I"9Dick Davies -- rasputnik(at)hellooperator.net;To;;0;[o;;[I"3Mauricio Fernandez -- batsman.geo(at)yahoo.com;To;;0;[o;;[I"1Simon Strandgaard -- neoneye(at)adslhome.dk;To;;0;[o;;[I"-Dave Glasser -- glasser(at)mit.edu;To;;0;[o;;[I"0Paul Duncan -- pabs(at)pablotron.org;To;;0;[o;;[I"2Ville Aine -- vaine(at)cs.helsinki.fi;To;;0;[o;;[I"2Eric Hodel -- drbrain(at)segment7.net;To;;0;[o;;[I"0Daniel Berger -- djberg96(at)gmail.com;To;;0;[o;;[I"3Phil Hagelberg -- technomancy(at)gmail.com;To;;0;[o;;[I"6Ryan Davis -- ryand-ruby(at)zenspider.com;To;;0;[o;;[I"2Evan Phoenix -- evan(at)fallingsnow.net;To;;0;[o;;[I"4Steve Klabnik -- steve(at)steveklabnik.com;T@o;;[I"3(If your name is missing, PLEASE let us know!);T@S;;i;I"License;T@o;;[I"eSee {LICENSE.txt}[https://github.com/rubygems/rubygems/blob/master/LICENSE.txt] for permissions.;T@o;;[I"Thanks!;T@o;;[I"-The RubyGems Team;T; @; 0o;;[ ; I" lib/rubygems/ci_detector.rb;T; 0o;;[ ; I""lib/rubygems/compatibility.rb;T; 0o;;[ ; I"lib/rubygems/defaults.rb;T; 0o;;[o;;[I"CProvides 3 methods for declaring when something is going away.;T@o;;[I"*+deprecate(name, repl, year, month)+:;To:RDoc::Markup::Verbatim;[I"@Indicate something may be removed on/after a certain date. ;T:@format0o;;[I"3+rubygems_deprecate(name, replacement=:none)+:;To;;[I"LIndicate something will be removed in the next major RubyGems version, ;TI",and (optionally) a replacement for it. ;T;0o;;[I""+rubygems_deprecate_command+:;To;;[I"KIndicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be ;TI"+removed in the next RubyGems version. ;T;0o;;[I"SAlso provides +skip_during+ for temporarily turning off deprecation warnings. ;TI"LThis is intended to be used in the test suite, so deprecation warnings ;TI"Rdon't cause test failures if you need to make sure stderr is otherwise empty.;T@o;;[I";Example usage of +deprecate+ and +rubygems_deprecate+:;T@o;;[I"class Legacy ;TI"" def self.some_class_method ;TI" # ... ;TI" end ;TI" ;TI" def some_instance_method ;TI" # ... ;TI" end ;TI" ;TI" def some_old_method ;TI" # ... ;TI" end ;TI" ;TI" extend Gem::Deprecate ;TI"7 deprecate :some_instance_method, "X.z", 2011, 4 ;TI"E rubygems_deprecate :some_old_method, "Modern#some_new_method" ;TI" ;TI" class << self ;TI" extend Gem::Deprecate ;TI"6 deprecate :some_class_method, :none, 2011, 4 ;TI" end ;TI" end ;T;0o;;[I"3Example usage of +rubygems_deprecate_command+:;T@o;;[I"6class Gem::Commands::QueryCommand < Gem::Command ;TI" extend Gem::Deprecate ;TI"" rubygems_deprecate_command ;TI" ;TI" # ... ;TI" end ;T;0o;;[I"$Example usage of +skip_during+:;T@o;;[I")class TestSomething < Gem::Testcase ;TI"- def test_some_thing_with_deprecations ;TI"' Gem::Deprecate.skip_during do ;TI"< actual_stdout, actual_stderr = capture_output do ;TI"& Gem.something_deprecated ;TI" end ;TI"& assert_empty actual_stdout ;TI"1 assert_equal(expected, actual_stderr) ;TI" end ;TI" end ;TI"end;T;0; I"lib/rubygems/deprecate.rb;T; 0o;;[ ; I"lib/rubygems/errors.rb;T; 0o;;[ ; I"lib/rubygems/openssl.rb;T; 0o;;[ ; I"lib/rubygems/psych_tree.rb;T; 0o;;[ ; I"lib/rubygems/rdoc.rb;T; 0o;;[ ; I"!lib/rubygems/safe_marshal.rb;T; 0o;;[ ; I"*lib/rubygems/safe_marshal/elements.rb;T; 0o;;[ ; I"(lib/rubygems/safe_marshal/reader.rb;T; 0o;;[ ; I"lib/rubygems/safe_yaml.rb;T; 0o;;[ ; I")lib/rubygems/specification_record.rb;T; 0o;;[ ; I"lib/rubygems/util/list.rb;T; 0o;;[ ; I"$lib/rubygems/yaml_serializer.rb;T; 0; 0; 0[[ I""disable_system_update_message;TI"RW;T:publicTI"lib/rubygems.rb;T[ I"discover_gems_on_require;T@l;T@m[ I"done_installing_hooks;TI"R;T;T@m[ I"gemdeps;T@r;T@m[ I"loaded_specs;T@r;T@m[ I"post_build_hooks;T@r;T@m[ I"post_install_hooks;T@r;T@m[ I"post_reset_hooks;T@r;T@m[ I"post_uninstall_hooks;T@r;T@m[ I"pre_install_hooks;T@r;T@m[ I"pre_reset_hooks;T@r;T@m[ I"pre_uninstall_hooks;T@r;T@m[U:RDoc::Constant[i I"VERSION;TI"Gem::VERSION;T;0o;;[ ; @; 0@@cRDoc::NormalModule0U;[i I"RUBYGEMS_DIR;TI"Gem::RUBYGEMS_DIR;T;0o;;[ ; @; 0@@@�0U;[i I"WIN_PATTERNS;TI"Gem::WIN_PATTERNS;T;0o;;[o;;[I";An Array of Regexps that match windows Ruby platforms.;T; @; 0@@@�0U;[i I"GEM_DEP_FILES;TI"Gem::GEM_DEP_FILES;T;0o;;[ ; @; 0@@@�0U;[i I"REPOSITORY_SUBDIRECTORIES;TI"#Gem::REPOSITORY_SUBDIRECTORIES;T;0o;;[o;;[I"'Subdirectories in a gem repository;T; @; 0@@@�0U;[i I"*REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES;TI"/Gem::REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES;T;0o;;[o;;[I"8Subdirectories in a gem repository for default gems;T; @; 0@@@�0U;[i I"DEFAULT_SOURCE_DATE_EPOCH;TI"#Gem::DEFAULT_SOURCE_DATE_EPOCH;T;0o;;[o;;[I"?The default value for SOURCE_DATE_EPOCH if not specified. ;TI"HWe want a date after 1980-01-01, to prevent issues with Zip files. ;TI">This particular timestamp is for 1980-01-02 00:00:00 GMT.;T; @; 0@@@�0U;[i I"LOADED_SPECS_MUTEX;TI"Gem::LOADED_SPECS_MUTEX;T;0o;;[ ; @; 0@@@�0U;[i I"MARSHAL_SPEC_DIR;TI"Gem::MARSHAL_SPEC_DIR;T;0o;;[o;;[I">Location of Marshal quick gemspecs on remote repositories;T; @; 0@@@�0U;[i I"DEFAULT_HOST;TI"Gem::DEFAULT_HOST;T;0o;;[ ; @�; 0@�@@�0U;[i I" RDoc;TI"Gem::RDoc;T;I"RDoc::RubyGemsHook;To;;[o;;[I"CWe define the following two similar name classes in this file:;T@o; ;;;[o;;0;[o;;[I"RDoc::RubyGemsHook;To;;0;[o;;[I"RDoc::RubygemsHook;T@o;;[I">RDoc::RubyGemsHook is the main class that has real logic.;T@o;;[ I"4RDoc::RubygemsHook is a class that is only for ;TI"Hcompatibility. RDoc::RubygemsHook is used by RubyGems directly. We ;TI"9can remove this when all maintained RubyGems remove ;TI"`rubygems/rdoc.rb`.;T; I"lib/rdoc/rubygems_hook.rb;T; 0@S@@�0[ [[I" class;T[[;[o[I"activated_gem_paths;T@m[I"add_to_load_path;T@m[I" bin_path;T@m[I"binary_mode;T@m[I"bindir;T@m[I"cache_home;TI"lib/rubygems/defaults.rb;T[I"clear_default_specs;T@m[I"clear_paths;T@m[I"config_file;T@[I"config_home;T@[I"configuration;T@m[I"configuration=;T@m[I"data_home;T@[I"default_bindir;T@[I"default_cert_path;T@[I"default_dir;T@[I"default_exec_format;T@[I"default_ext_dir_for;T@[I"default_key_path;T@[I"default_path;T@[I"default_rubygems_dirs;T@[I"default_sources;T@[I"default_spec_cache_dir;T@[I"default_specifications_dir;T@[I"deflate;T@m[I"dir;T@m[I"done_installing;T@m[I"dynamic_library_suffixes;T@m[I"&ensure_default_gem_subdirectories;T@m[I"ensure_gem_subdirectories;T@m[I"env_requirement;T@m[I"find_config_file;T@[I"find_default_spec;T@m[I"find_files;T@m[I"find_latest_files;T@m[I"!find_unresolved_default_spec;T@m[I"finish_resolve;T@m[I"freebsd_platform?;T@m[I" host;T@m[I" host=;T@m[I"install;T@m[I"java_platform?;T@m[I"latest_rubygems_version;T@m[I"latest_spec_for;T@m[I"latest_version_for;T@m[I"load_env_plugins;T@m[I"load_path_insert_index;T@m[I"load_plugins;T@m[I"load_safe_marshal;T@m[I"load_yaml;T@m[I"location_of_caller;T@m[I"marshal_version;T@m[I" needs;T@m[I"open_file;T@m[I"open_file_with_flock;T@m[I"open_file_with_lock;T@m[I"operating_system_defaults;T@[I" path;T@m[I"path_separator;T@[I" paths;T@m[I"paths=;T@m[I"platform_defaults;T@[I"platforms;T@m[I"platforms=;T@m[I"plugin_suffix_pattern;T@m[I"plugin_suffix_regexp;T@m[I"plugindir;T@m[I"post_build;T@m[I"post_install;T@m[I"post_reset;T@m[I"post_uninstall;T@m[I"pre_install;T@m[I"pre_reset;T@m[I"pre_uninstall;T@m[I"prefix;T@m[I"#rdoc_hooks_defined_via_plugin?;TI"lib/rubygems/rdoc.rb;T[I"read_binary;T@m[I"refresh;T@m[I"register_default_spec;T@m[I" ruby;T@m[I"ruby_api_version;T@m[I"ruby_engine;T@[I"ruby_version;T@m[I"rubygems_version;T@m[I"set_target_rbconfig;T@m[I"solaris_platform?;T@m[I"source_date_epoch;T@m[I"source_date_epoch_string;T@m[I"sources;T@m[I" sources=;T@m[I"spec_cache_dir;T@m[I"state_file;T@[I"state_home;T@[I"suffix_pattern;T@m[I"suffix_regexp;T@m[I" suffixes;T@m[I"target_rbconfig;T@m[I" time;T@m[I"try_activate;T@m[I"ui;T@m[I"use_gemdeps;T@m[I"use_paths;T@m[I" user_dir;T@[I"user_home;T@[I"win_platform?;T@m[I"write_binary;T@m[:protected[ [:private[ [I"already_loaded?;T@m[I"default_gem_load_paths;T@m[I"find_home;T@[I"find_spec_for_exe;T@m[I" instance;T[[;[ [;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0; 0[�I"lib/bundled_gems.rb;TI"lib/bundler.rb;T@�I"lib/rdoc/servlet.rb;T@I""lib/rubygems/available_set.rb;TI"(lib/rubygems/basic_specification.rb;TI"+lib/rubygems/bundler_version_finder.rb;T@�I"lib/rubygems/command.rb;TI"$lib/rubygems/command_manager.rb;TI"+lib/rubygems/commands/build_command.rb;TI"*lib/rubygems/commands/cert_command.rb;TI"+lib/rubygems/commands/check_command.rb;TI"-lib/rubygems/commands/cleanup_command.rb;TI".lib/rubygems/commands/contents_command.rb;TI"0lib/rubygems/commands/dependency_command.rb;TI"1lib/rubygems/commands/environment_command.rb;TI"*lib/rubygems/commands/exec_command.rb;TI"+lib/rubygems/commands/fetch_command.rb;TI"4lib/rubygems/commands/generate_index_command.rb;TI"*lib/rubygems/commands/help_command.rb;TI"*lib/rubygems/commands/info_command.rb;TI"-lib/rubygems/commands/install_command.rb;TI"*lib/rubygems/commands/list_command.rb;TI"*lib/rubygems/commands/lock_command.rb;TI",lib/rubygems/commands/mirror_command.rb;TI"*lib/rubygems/commands/open_command.rb;TI".lib/rubygems/commands/outdated_command.rb;TI"+lib/rubygems/commands/owner_command.rb;TI".lib/rubygems/commands/pristine_command.rb;TI"*lib/rubygems/commands/push_command.rb;TI"+lib/rubygems/commands/query_command.rb;TI"*lib/rubygems/commands/rdoc_command.rb;TI"-lib/rubygems/commands/rebuild_command.rb;TI",lib/rubygems/commands/search_command.rb;TI",lib/rubygems/commands/server_command.rb;TI"+lib/rubygems/commands/setup_command.rb;TI",lib/rubygems/commands/signin_command.rb;TI"-lib/rubygems/commands/signout_command.rb;TI"-lib/rubygems/commands/sources_command.rb;TI"3lib/rubygems/commands/specification_command.rb;TI"+lib/rubygems/commands/stale_command.rb;TI"/lib/rubygems/commands/uninstall_command.rb;TI",lib/rubygems/commands/unpack_command.rb;TI",lib/rubygems/commands/update_command.rb;TI"+lib/rubygems/commands/which_command.rb;TI"*lib/rubygems/commands/yank_command.rb;T@�I" lib/rubygems/config_file.rb;TI"(lib/rubygems/core_ext/kernel_gem.rb;TI",lib/rubygems/core_ext/kernel_require.rb;T@�I"lib/rubygems/dependency.rb;TI")lib/rubygems/dependency_installer.rb;TI"$lib/rubygems/dependency_list.rb;T@GI"lib/rubygems/doctor.rb;T@JI"lib/rubygems/exceptions.rb;TI"lib/rubygems/ext.rb;TI"$lib/rubygems/ext/build_error.rb;TI" lib/rubygems/ext/builder.rb;TI"&lib/rubygems/ext/cargo_builder.rb;TI":lib/rubygems/ext/cargo_builder/link_flag_converter.rb;TI"&lib/rubygems/ext/cmake_builder.rb;TI"*lib/rubygems/ext/configure_builder.rb;TI")lib/rubygems/ext/ext_conf_builder.rb;TI"%lib/rubygems/ext/rake_builder.rb;TI"lib/rubygems/gem_runner.rb;TI"(lib/rubygems/gemcutter_utilities.rb;TI":lib/rubygems/gemcutter_utilities/webauthn_listener.rb;TI"Clib/rubygems/gemcutter_utilities/webauthn_listener/response.rb;TI"8lib/rubygems/gemcutter_utilities/webauthn_poller.rb;TI",lib/rubygems/install_default_message.rb;TI"$lib/rubygems/install_message.rb;TI"+lib/rubygems/install_update_options.rb;TI"lib/rubygems/installer.rb;TI"0lib/rubygems/installer_uninstaller_utils.rb;TI")lib/rubygems/local_remote_options.rb;TI"lib/rubygems/name_tuple.rb;T@MI"lib/rubygems/package.rb;TI"&lib/rubygems/package/digest_io.rb;TI"(lib/rubygems/package/file_source.rb;TI"&lib/rubygems/package/io_source.rb;TI" lib/rubygems/package/old.rb;TI"#lib/rubygems/package/source.rb;TI"'lib/rubygems/package/tar_header.rb;TI"'lib/rubygems/package/tar_reader.rb;TI"-lib/rubygems/package/tar_reader/entry.rb;TI"'lib/rubygems/package/tar_writer.rb;TI"!lib/rubygems/package_task.rb;TI"!lib/rubygems/path_support.rb;TI"lib/rubygems/platform.rb;T@PI" lib/rubygems/query_utils.rb;T@SI"#lib/rubygems/remote_fetcher.rb;TI"lib/rubygems/request.rb;TI"-lib/rubygems/request/connection_pools.rb;TI"&lib/rubygems/request/http_pool.rb;TI"'lib/rubygems/request/https_pool.rb;TI" lib/rubygems/request_set.rb;TI"3lib/rubygems/request_set/gem_dependency_api.rb;TI")lib/rubygems/request_set/lockfile.rb;TI"0lib/rubygems/request_set/lockfile/parser.rb;TI"3lib/rubygems/request_set/lockfile/tokenizer.rb;TI" lib/rubygems/requirement.rb;TI"lib/rubygems/resolver.rb;TI"0lib/rubygems/resolver/activation_request.rb;TI"%lib/rubygems/resolver/api_set.rb;TI"0lib/rubygems/resolver/api_set/gem_parser.rb;TI"/lib/rubygems/resolver/api_specification.rb;TI"&lib/rubygems/resolver/best_set.rb;TI"*lib/rubygems/resolver/composed_set.rb;TI"&lib/rubygems/resolver/conflict.rb;TI")lib/rubygems/resolver/current_set.rb;TI"0lib/rubygems/resolver/dependency_request.rb;TI"%lib/rubygems/resolver/git_set.rb;TI"/lib/rubygems/resolver/git_specification.rb;TI"'lib/rubygems/resolver/index_set.rb;TI"1lib/rubygems/resolver/index_specification.rb;TI"5lib/rubygems/resolver/installed_specification.rb;TI"+lib/rubygems/resolver/installer_set.rb;TI"1lib/rubygems/resolver/local_specification.rb;TI"&lib/rubygems/resolver/lock_set.rb;TI"0lib/rubygems/resolver/lock_specification.rb;TI".lib/rubygems/resolver/requirement_list.rb;TI"!lib/rubygems/resolver/set.rb;TI"(lib/rubygems/resolver/source_set.rb;TI"0lib/rubygems/resolver/spec_specification.rb;TI"+lib/rubygems/resolver/specification.rb;TI"#lib/rubygems/resolver/stats.rb;TI"(lib/rubygems/resolver/vendor_set.rb;TI"2lib/rubygems/resolver/vendor_specification.rb;TI""lib/rubygems/s3_uri_signer.rb;T@V@Y@\I"9lib/rubygems/safe_marshal/visitors/stream_printer.rb;TI"2lib/rubygems/safe_marshal/visitors/to_ruby.rb;TI"2lib/rubygems/safe_marshal/visitors/visitor.rb;T@_I"lib/rubygems/security.rb;TI"&lib/rubygems/security/policies.rb;TI"$lib/rubygems/security/policy.rb;TI"$lib/rubygems/security/signer.rb;TI"'lib/rubygems/security/trust_dir.rb;TI"$lib/rubygems/security_option.rb;TI"lib/rubygems/source.rb;TI"lib/rubygems/source/git.rb;TI"%lib/rubygems/source/installed.rb;TI"!lib/rubygems/source/local.rb;TI" lib/rubygems/source/lock.rb;TI")lib/rubygems/source/specific_file.rb;TI""lib/rubygems/source/vendor.rb;TI" lib/rubygems/source_list.rb;TI"!lib/rubygems/spec_fetcher.rb;TI""lib/rubygems/specification.rb;TI")lib/rubygems/specification_policy.rb;T@bI"'lib/rubygems/stub_specification.rb;TI"$lib/rubygems/target_rbconfig.rb;TI"lib/rubygems/text.rb;TI" lib/rubygems/uninstaller.rb;TI"2lib/rubygems/unknown_command_spell_checker.rb;TI"&lib/rubygems/update_suggestion.rb;TI"lib/rubygems/uri.rb;TI""lib/rubygems/uri_formatter.rb;TI"%lib/rubygems/user_interaction.rb;TI"lib/rubygems/util.rb;TI""lib/rubygems/util/licenses.rb;T@eI"lib/rubygems/validator.rb;TI"&lib/rubygems/vendored_net_http.rb;TI"%lib/rubygems/vendored_timeout.rb;TI"lib/rubygems/version.rb;TI"#lib/rubygems/version_option.rb;T@h@hcRDoc::TopLevel