class Fastlane::Helper::GitlabLintLine

Attributes

basename[RW]
character[RW]
commit[RW]
line[RW]
new_path[RW]
old_path[RW]
reason[RW]
rule_id[RW]
severity[RW]
type[RW]

Public Class Methods

from_discussion(discussion) click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 88
def from_discussion(discussion)
  rt = discussion.match(/swiftlint\|(.*)\|(.*)\|(.*)/)
  return nil unless rt
  
  line = LintLine.new({})
  line.reason = rt[1]
  line.commit = rt[3]
  
  ru_info = rt[2]
  rt2 = ru_info.match(/\[(.*).*\]/)
  line.rule_id = rt2[1]
  
  line
end
new(args) click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 9
def initialize(args)
  @character = args['character']
  @new_path = args['new_path']
  @basename = File.basename(@new_path) if @new_path
  @old_path = args['old_path']
  @line = args['line']
  @reason = args['reason']
  @rule_id = args['rule_id']
  @type = args['type']
  @severity = args['severity']
  @commit = args['commit']
end

Public Instance Methods

equal_to_position?(position) click to toggle source

@param position {

"base_sha": "16692b5cfa1d4dba9a6d060368942992ffba3680",
"start_sha": "16692b5cfa1d4dba9a6d060368942992ffba3680",
"head_sha": "6216046ac5a36d0273754c22b06b08236ec6c133",
"old_path": "ZHCoreHybrid/Classes/Haha.swift",
"new_path": "ZHCoreHybrid/Classes/Haha.swift",
"position_type": "text",
"old_line": null,
"new_line": 18

}

# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 33
def equal_to_position?(position)
  position_base_sha = position['base_sha']
  position_start_sha = position['start_sha']
  position_head_sha = position['head_sha']
  position_old_path = position['old_path']
  position_new_path = position['new_path']
  position_old_line = position['old_line']
  position_new_line = position['new_line']
  
  # puts line == position_new_line
  # puts basename == File.basename(position_new_path)
  # puts commit == position_head_sha
  
  # if line == position_new_line && basename == File.basename(position_new_path) && commit == position_head_sha
  if line == position_new_line && basename == File.basename(position_new_path)
    true
  else
    false
  end
end
line_in_positons?(positions) click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 54
def line_in_positons?(positions)
  positions.each do |position|
    return true if equal_to_position?(position)
  end
  false
end
to_discussion() click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 61
def to_discussion
  # eg: "swiftlint|ZHModuleCreationObjecs.swift|Function should have complexity 10 or less: currently complexity equals 11|101|21dc9ccdc021f0f489f9b9fa50b76d60cee3f04e"
  # "swiftlint|%s|%s|%s|%s" % [basename, reason, line, commit]
  
  # 不需要保存 line、basename
  # (line、basename 都可以直接从 note/position/new_line 或 old_line 获取到)
  rule_id_str = rule_id.gsub('_', '-')
  rule_info = "[#{rule_id}](https://github.com/realm/SwiftLint/blob/master/Rules.md##{rule_id_str})"
  "swiftlint|%s|%s|%s" % [reason, rule_info, commit]
end
to_hash() click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 72
def to_hash
  {
    basename: @basename,
    character: @character,
    commit: @commit,
    line: @line,
    new_path: @new_path,
    old_path: @old_path,
    reason: @reason,
    rule_id: @rule_id,
    severity: @severity,
    type: @type
  }
end