Class: Gzr::Commands::Group::MemberUsers

Inherits:
Gzr::Command show all
Includes:
Group
Defined in:
lib/gzr/commands/group/member_users.rb

Instance Method Summary collapse

Methods included from Group

#query_all_groups, #query_group, #query_group_groups, #query_group_users, #search_groups, #update_user_attribute_group_value

Methods inherited from Gzr::Command

#all_color_collections, #color_collection, #color_palette_lookup!, #create_merge_query, #create_query, #default_color_collection, #field_expressions_eval, #field_names, #find_color_palette_reference, #find_vis_config_reference, #get_auth, #get_user_by_id, #keys_to_keep, #keys_to_keep_internal, #merge_query, #pairs, #query, #render_csv, #rewrite_color_palette!, #run_inline_query, #update_color_palette!

Methods included from Session

#build_connection_hash, #login, #logout_all, #pastel, #read_token_data, #say_error, #say_ok, #say_warning, #sufficient_version?, #token_file, #update_auth, #with_session, #write_token_data

Constructor Details

#initialize(group_id, options) ⇒ MemberUsers

Returns a new instance of MemberUsers.



33
34
35
36
37
# File 'lib/gzr/commands/group/member_users.rb', line 33

def initialize(group_id,options)
  super()
  @group_id = group_id
  @options = options
end

Instance Method Details

#execute(input: $stdin, output: $stdout) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/gzr/commands/group/member_users.rb', line 39

def execute(input: $stdin, output: $stdout)
  say_warning(@options) if @options[:debug]
  with_session do
    data = query_group_users(@group_id,@options[:fields],"id")
    begin
      say_ok "No users found"
      return nil
    end unless data && data.length > 0

    table_hash = Hash.new
    fields = field_names(@options[:fields])
    table_hash[:header] = fields unless @options[:plain]
    table_hash[:rows] = data.map do |row|
      field_expressions_eval(fields,row)
    end
    table = TTY::Table.new(table_hash)
    alignments = fields.collect do |k|
      next :left if k == "external_group_id"
      (k =~ /(id|count)$/) ? :right : :left
    end
    begin
      if @options[:csv] then
        output.puts render_csv(table)
      else
        output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
      end
    end if table
  end
end