Class: Fastlane::ActionCollector

Inherits:
FastlaneCore::ToolCollector
  • Object
show all
Defined in:
lib/fastlane/action_collector.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.determine_version(name) ⇒ Object

e.g.

:gym
:xcversion
"fastlane-plugin-my_plugin/xcversion"


36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/fastlane/action_collector.rb', line 36

def self.determine_version(name)
  result = super(name)
  return result if result

  if name.to_s.include?(PluginManager.plugin_prefix)
    # That's an action from a plugin, we need to fetch its version number
    begin
      plugin_name = name.split("/").first.gsub(PluginManager.plugin_prefix, '')
      return Fastlane.const_get(plugin_name.fastlane_class)::VERSION
    rescue => ex
      UI.verbose(ex)
      return "undefined"
    end
  end

  return Fastlane::VERSION # that's the case for all built-in actions
end

Instance Method Details

#determine_version(name) ⇒ Object



28
29
30
# File 'lib/fastlane/action_collector.rb', line 28

def determine_version(name)
  self.class.determine_version(name)
end

#is_official?(name) ⇒ Boolean

Is this an official fastlane action, that is bundled with fastlane?

Returns:

  • (Boolean)


4
5
6
7
# File 'lib/fastlane/action_collector.rb', line 4

def is_official?(name)
  return true if name == :lane_switch
  Actions.get_all_official_actions.include?(name)
end

#name_to_track(name) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/fastlane/action_collector.rb', line 9

def name_to_track(name)
  return name if is_official?(name)

  Fastlane.plugin_manager.plugin_references.each do |plugin_name, value|
    return "#{plugin_name}/#{name}" if value[:actions].include?(name)
  end

  return nil
end

#show_messageObject



19
20
21
22
23
24
25
26
# File 'lib/fastlane/action_collector.rb', line 19

def show_message
  UI.message("Sending Crash/Success information. More information on: https://github.com/fastlane/enhancer")
  UI.message("No personal/sensitive data is sent. Only sharing the following:")
  UI.message(launches)
  UI.message(@error) if @error
  UI.message("This information is used to fix failing actions and improve integrations that are often used.")
  UI.message("You can disable this by adding `opt_out_usage` to your Fastfile")
end