Class: QiitaList

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita_org/list.rb

Instance Method Summary collapse

Constructor Details

#initialize(mode) ⇒ QiitaList

Returns a new instance of QiitaList.



7
8
9
10
11
12
13
# File 'lib/qiita_org/list.rb', line 7

def initialize(mode)
  @mode = mode
  set_config()
  select_path()
  access_qiita()
  view_list()
end

Instance Method Details

#access_qiitaObject

access qiita



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/qiita_org/list.rb', line 35

def access_qiita()
  uri = URI.parse(@qiita + @path)

  headers = { "Authorization" => "Bearer #{@access_token}",
    "Content-Type" => "application/json" }

  response = URI.open(
                      "#{uri}",
                      "Authorization" => "#{headers["Authorization"]}",
                      )
  @items = JSON.parse(response.read)
end

#select_pathObject

select path



23
24
25
26
27
28
29
30
31
32
# File 'lib/qiita_org/list.rb', line 23

def select_path()
  case @mode
  when "teams"
    @qiita = @teams_url
    @path = "api/v2/items?page=1&per_page=100"
  else
    @qiita = "https://qiita.com/"
    @path = "api/v2/authenticated_user/items?page=1&per_page=100"
  end
end

#set_configObject



15
16
17
18
19
20
# File 'lib/qiita_org/list.rb', line 15

def set_config()
  conf_path = File.join(ENV["HOME"], ".qiita.conf")
  conf = JSON.load(File.read(conf_path))
  @access_token = conf["access_token"]
  @teams_url = conf["teams_url"]
end

#view_listObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/qiita_org/list.rb', line 48

def view_list()
  @items.each do |item|
    puts "title: #{item["title"]}"
    puts "Author: #{item["user"]["id"]}" if @mode == "teams"
    puts "URL: #{item["url"]}"
    body = item["body"]
    source = body.match(/- \**source\** ~(.+)/)
    if source != nil
      puts "Source: ~#{source[1]}"
    end
    puts ""
  end
#    p @items[0]["user"]["id"]
end