Module: Nehm::UserManager

Defined in:
lib/nehm/user_manager.rb

Class Method Summary collapse

Class Method Details

.default_userObject



38
39
40
41
42
43
44
45
46
# File 'lib/nehm/user_manager.rb', line 38

def default_user
  if UserManager.logged_in?
    User.new(Cfg[:default_id])
  else
    puts Paint["You didn't logged in", :red]
    puts "Login from #{Paint['nehm configure', :yellow]} or use #{Paint['[from PERMALINK]', :yellow]} option"
    exit
  end
end

.get_user(permalink) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/nehm/user_manager.rb', line 48

def get_user(permalink)
  begin
    user = Client.get('/resolve', url: "https://soundcloud.com/#{permalink}")
  rescue SoundCloud::ResponseError => e
    if e.message =~ /404/
      user = nil
    else
      raise e
    end
  end
  user
end

.log_inObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/nehm/user_manager.rb', line 11

def self.
  loop do
    permalink = HighLine.new.ask('Please enter your permalink (last word in your profile url): ')
    user = get_user(permalink)
    if user
      Cfg[:default_id] = user.id
      Cfg[:permalink] = permalink
      puts Paint['Successfully logged in!', :green]
      break
    else
      puts Paint['Invalid permalink. Please enter correct permalink', :red]
    end
  end
end

.logged_in?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/nehm/user_manager.rb', line 7

def self.logged_in?
  Cfg.key?(:default_id)
end

.temp_user=(permalink) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/nehm/user_manager.rb', line 26

def self.temp_user=(permalink)
  user = get_user(permalink)
  if user
    @temp_user = User.new(user.id)
  else
    puts Paint['Invalid permalink. Please enter correct permalink', :red]
    exit
  end
end

.userObject



3
4
5
# File 'lib/nehm/user_manager.rb', line 3

def self.user
  @temp_user || default_user
end