class GithubMembers::Options

Attributes

fields[RW]
github_org[RW]
github_token[RW]
help[RW]
help_shown[RW]
markdown_file[RW]
version[RW]
yaml_file[RW]

Public Class Methods

new(argv) click to toggle source
# File lib/github_members/options.rb, line 16
def initialize(argv)
  self.github_token = ENV["GITHUB_TOKEN"].to_s

  args = parser.parse!(argv)
  self.help = parser.help + help_examples(parser.program_name)
  self.github_org = args.first
  self.markdown_file = Pathname(markdown_file || Defaults::MARKDOWN_FILE)
  self.yaml_file = Pathname(yaml_file || Defaults::YAML_FILE)
rescue OptionParser::ParseError => e
  raise ParseError, e.message
end

Private Instance Methods

help_examples(program_name) click to toggle source
# File lib/github_members/options.rb, line 60
            def help_examples(program_name)
      <<~HELP

        Examples:
            # By default
            #{program_name} <org>

            # Set a token
            GITHUB_TOKEN=*** #{program_name} <org>
            #{program_name} <org> -g ***

            # Specify files
            #{program_name} <org> -m README.md -y company_members.yml

            # Add fields
            #{program_name} <org> -f slack,note
      HELP
    end
parser() click to toggle source
# File lib/github_members/options.rb, line 28
        def parser
  @parser ||= OptionParser.new do |opts|
    opts.banner = "Usage: #{opts.program_name} [options] <org>"

    opts.on("-g", "--github-token GITHUB_TOKEN",
      "A GitHub access token. The `GITHUB_TOKEN` environment variable",
      "is also available.") do |v|
      self.github_token = v
    end

    opts.on("-m", "--markdown-file [FILE]", "A Markdown file path. Default: `#{Defaults::MARKDOWN_FILE}`") do |v|
      self.markdown_file = v
    end

    opts.on("-y", "--yaml-file [FILE]", "A YAML file path. Default: `#{Defaults::YAML_FILE}`") do |v|
      self.yaml_file = v
    end

    opts.on("-f", "--fields [FIELDS]", Array, "A comma-separated list of a member additional fields") do |v|
      self.fields = v
    end

    opts.on_tail("-h", "--help", "Show help") do
      self.help_shown = true
    end

    opts.on_tail("-v", "--version", "Show version") do
      self.version = VERSION
    end
  end
end