class Flumtter::self::Profile

Public Class Methods

new(twitter) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 7
      def initialize(twitter)
        @twitter = twitter
        setting = Window::DynamicView.new("Change Profile", <<~EOF)
          Please select item you want to change with new profile.
          Syntax: '\#{item} \#{new profile}'
        EOF
        setting.dynamic_view do
          user = twitter.rest.user
          {
            "Current value": {
              name: user.name,
              description: user.description.split_num(40),
              location: user.location,
              url: user.website.to_s
            },
          }.indent
        end
        %w(name description url location).each do |meth|
          setting.command(cvr(meth)) do |m|
            begin
              send(meth, m)
            rescue RangeError
              Window::Popup::Error.new("Too short or Too long.").show
            end
            raise Dispel::Recall
          end
        end
        setting.show(true)
      end

Public Instance Methods

description(m) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 42
def description(m)
  m[1].range?(160)
  update_profile(description: m[1])
end
location(m) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 52
def location(m)
  m[1].range?(100)
  update_profile(location: m[1])
end
name(m) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 37
def name(m)
  m[1].range?(20)
  update_profile(name: m[1])
end
url(m) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 47
def url(m)
  m[1].range?(30)
  update_profile(url: m[1])
end

Private Instance Methods

mutual() click to toggle source
# File lib/flumtter/app/plugins/commands/user.rb, line 25
def mutual
  friendship = @twitter.rest.friendship(@twitter.account.id, @user)
  following = friendship.source.following? ? ">" : "/"
  follower = friendship.source.followed_by? ? "<": "/"
  "@#{@twitter.account.screen_name} #{following}=#{follower} @#{@user.screen_name}"
end
parse(obj) click to toggle source
# File lib/flumtter/app/plugins/commands/user.rb, line 50
def parse(obj)
  @user = case obj
  when Twitter::Tweet
    obj.user
  when Twitter::DirectMessage
    ob.sender
  when Twitter::Streaming::Event
    ob.source
  when Twitter::Streaming::DeletedTweet
    obj.user
  when String
    @twitter.rest.user(obj)
  else
    raise UnSupportError
  end
end
profile(user) click to toggle source
# File lib/flumtter/app/plugins/commands/user.rb, line 32
def profile(user)
  {
    name: user.name,
    description: user.description.split_num(44),
    location: user.location,
    url: user.website.to_s
  }.indent
end
statistics(user) click to toggle source
# File lib/flumtter/app/plugins/commands/user.rb, line 41
def statistics(user)
  {
    tweets: user.tweets_count,
    follow: user.friends_count,
    follower: user.followers_count,
    favorite: user.favorites_count
  }.indent
end
update_profile(hash) click to toggle source
# File lib/flumtter/app/plugins/commands/change_profile.rb, line 58
def update_profile(hash)
  @twitter.rest.update_profile(hash)
rescue Twitter::Error::Forbidden => e
  Window::Popup::Error.new(e.message).show
end