Class: Lgtm::In

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

Defined Under Namespace

Classes: LgtmLinkStruct

Constant Summary collapse

'http://lgtm.in/i'.freeze
NOT_SET_VALIAVLE_ALERT_1 =
"please set enviromant variable LGTM_IN_USER_PATH \n".freeze
NOT_SET_VALIAVLE_ALERT_2 =
"lgtm.in mypage example ->  http://lgtm.in/l/HaiTo \n".freeze
NOT_SET_VALIAVLE_ALERT_3 =
"in .bashrc, .zshrc -> export LGTM_IN_USER_PATH='http://lgtm.in/l/HaiTo' \n".freeze
REFLASH_TIME =
604_800
LAST_EXECUTED_AT_TIME_PATH =
'last_executed_at.time'.freeze
'cached_links.links'.freeze
BASE_PATH =
'/tmp'.freeze
32
LGTM_MARKDOWN =
'[![LGTM](__LGTM_IMAGE_DETAILS_PATH__)](__LGTM_IMAGE_PATH__)'.freeze
LGTM_MARKDOWN_DETAIL_PATH_BASE =
'http://lgtm.in/p/'.freeze
LGTM_MARKDOWN_IMAGE_PATH_BASE =
'http://lgtm.in/i/'.freeze

Instance Method Summary collapse

Constructor Details

#initializeIn

Returns a new instance of In.



36
37
38
39
40
41
42
43
44
# File 'lib/lgtm.rb', line 36

def initialize
  @lgtm_my_page = ENV['LGTM_IN_USER_PATH'].nil? ? not_set_valiavle_alert : ENV['LGTM_IN_USER_PATH']

  @last_executed_at = begin File.read(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH); rescue; nil;
  end

  @cached_links = begin File.read(BASE_PATH + '/' + CACHED_LINKS_PATH); rescue; nil
  end
end

Instance Method Details



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/lgtm.rb', line 46

def fetch_lgtm_link_markdown!(mode, picker)
  link_structs =
    if Time.now.to_i - @last_executed_at.to_i > REFLASH_TIME
      update_executed_at!

      link_structs = fetch_links
      cache_links!(link_structs)

      link_structs
    else
      @cached_links.nil? ? fetch_links : Marshal.load(@cached_links)
    end

  link_struct =
    case picker.to_i
    when 1..Fixnum::MAX
      link_structs.compact[picker.to_i]
    else
      link_structs.compact.sample
    end

  unless link_struct
    print "you could set to NUMBER at between 0 and #{link_structs.size}"
    exit(1)
  end

  case mode
  when :link
    link_hash = link_struct.link.split('/').last

    LGTM_MARKDOWN.gsub('__LGTM_IMAGE_DETAILS_PATH__', (LGTM_MARKDOWN_DETAIL_PATH_BASE + link_hash).to_s).gsub('__LGTM_IMAGE_PATH__', (LGTM_MARKDOWN_IMAGE_PATH_BASE + link_hash).to_s)
  when :image
    link_struct.image
  end
end

#not_set_valiavle_alertObject



29
30
31
32
33
34
# File 'lib/lgtm.rb', line 29

def not_set_valiavle_alert
  print NOT_SET_VALIAVLE_ALERT_1
  print NOT_SET_VALIAVLE_ALERT_2
  print NOT_SET_VALIAVLE_ALERT_3
  exit(1)
end