Class: GemXray::GemEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/gemxray/gem_entry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, version: nil, groups: [], line_number: nil, end_line: nil, source_line: nil, autorequire: nil, options: {}) ⇒ GemEntry

Returns a new instance of GemEntry.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/gemxray/gem_entry.rb', line 7

def initialize(name:, version: nil, groups: [], line_number: nil, end_line: nil, source_line: nil, autorequire: nil,
               options: {})
  @name = name
  @version = normalize_version(version)
  @groups = Array(groups).map(&:to_sym).reject { |group| group == :default }.uniq
  @line_number = line_number
  @end_line = end_line || line_number
  @source_line = source_line
  @autorequire = autorequire
  @options = options
end

Instance Attribute Details

#autorequireObject (readonly)

Returns the value of attribute autorequire.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def autorequire
  @autorequire
end

#end_lineObject (readonly)

Returns the value of attribute end_line.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def end_line
  @end_line
end

#groupsObject (readonly)

Returns the value of attribute groups.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def groups
  @groups
end

#line_numberObject (readonly)

Returns the value of attribute line_number.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def line_number
  @line_number
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def options
  @options
end

#source_lineObject (readonly)

Returns the value of attribute source_line.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def source_line
  @source_line
end

#versionObject (readonly)

Returns the value of attribute version.



5
6
7
# File 'lib/gemxray/gem_entry.rb', line 5

def version
  @version
end

Instance Method Details

#development_group?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/gemxray/gem_entry.rb', line 23

def development_group?
  !(groups & %i[development test]).empty?
end

#gemfile_groupObject



27
28
29
30
31
32
# File 'lib/gemxray/gem_entry.rb', line 27

def gemfile_group
  return nil if groups.empty?
  return groups.first.to_s if groups.one?

  groups.map(&:to_s)
end

#line_rangeObject



34
35
36
37
38
# File 'lib/gemxray/gem_entry.rb', line 34

def line_range
  return nil unless line_number

  line_number..(end_line || line_number)
end

#pinned_version?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/gemxray/gem_entry.rb', line 19

def pinned_version?
  !version.nil?
end

#require_namesObject



40
41
42
43
44
45
46
47
48
49
# File 'lib/gemxray/gem_entry.rb', line 40

def require_names
  case autorequire
  when false
    []
  when nil
    default_require_names
  else
    Array(autorequire).compact.map(&:to_s).uniq
  end
end