Class: Tapioca::Gemfile::Gem

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/tapioca/gemfile.rb

Constant Summary collapse

IGNORED_GEMS =
T.let(%w{
  sorbet sorbet-static sorbet-runtime tapioca
}.freeze, T::Array[String])

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(spec) ⇒ Gem

Returns a new instance of Gem.



89
90
91
92
93
# File 'lib/tapioca/gemfile.rb', line 89

def initialize(spec)
  @spec = T.let(spec, Tapioca::Gemfile::Spec)
  real_gem_path = to_realpath(@spec.full_gem_path)
  @full_gem_path = T.let(real_gem_path, String)
end

Instance Attribute Details

#full_gem_pathObject (readonly)

Returns the value of attribute full_gem_path.



86
87
88
# File 'lib/tapioca/gemfile.rb', line 86

def full_gem_path
  @full_gem_path
end

Instance Method Details

#contains_path?(path) ⇒ Boolean

Returns:

  • (Boolean)


123
124
125
# File 'lib/tapioca/gemfile.rb', line 123

def contains_path?(path)
  to_realpath(path).start_with?(full_gem_path)
end

#filesObject



101
102
103
104
105
# File 'lib/tapioca/gemfile.rb', line 101

def files
  @spec.full_require_paths.flat_map do |path|
    Pathname.glob((Pathname.new(path) / "**/*.rb").to_s)
  end
end

#ignore?(gemfile_dir) ⇒ Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/tapioca/gemfile.rb', line 96

def ignore?(gemfile_dir)
  gem_ignored? || gem_in_app_dir?(gemfile_dir)
end

#nameObject



108
109
110
# File 'lib/tapioca/gemfile.rb', line 108

def name
  @spec.name
end

#rbi_file_nameObject



118
119
120
# File 'lib/tapioca/gemfile.rb', line 118

def rbi_file_name
  "#{name}@#{version}.rbi"
end

#versionObject



113
114
115
# File 'lib/tapioca/gemfile.rb', line 113

def version
  @spec.version
end