Module: AutoFreeze
- Defined in:
- lib/auto_freeze.rb,
lib/auto_freeze/version.rb
Overview
Set frozen_string_literals: true when requiring gems.
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
Class Method Details
.setup!(auto_freeze: true, excluded_gems: []) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/auto_freeze.rb', line 9 def setup!(auto_freeze: true, excluded_gems: []) # Freezolite uses File.fnmatch for its patterns. # It also uses load_iseq(<absolute_path>) callback for its around hook. # So to freeze gem, we need to find the absolute path using `Gem.path`. include_patterns = if auto_freeze.is_a?(Array) auto_freeze.flat_map do |gem| Gem::Specification.find_by_full_name(gem).full_require_paths.map do |require_path| File.join(require_path, "*.rb") end end else Gem.path.map { |path| File.join(path, "*.rb") } end exclude_patterns = excluded_gems.map { |gem_name| File.join("**", gem_name, "**") } freezolite_setup( patterns: include_patterns, exclude_patterns: exclude_patterns ) end |