Sha256: 36ab15213d459b8816ee0a169c9e32e729dde3d95b5ce84aadf112e2d521e06a

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

module Redd
  module Client
    class Authenticated
      module Flair
        def get_flair_list(subreddit, params = {})
          name = extract_attribute(subreddit, :display_name)

          path = "/api/flairlist.json"
          path = path.prepend("/r/#{name}")

          get(path, params)[:users]
        end

        # @see http://ruby-doc.org/core-1.9.3/String.html#method-i-casecmp
        def get_flair(subreddit, user)
          username = extract_attribute(user, :name)
          options = {name: username}

          flair = get_flair_list(subreddit, options).first
          flair if flair[:user].casecmp(username.downcase) == 0
        end

        def set_flair(subreddit, user_or_link, text = "", css_class = "")
          name = extract_attribute(subreddit, :display_name)

          path = "/api/flair"
          path = path.prepend("/r/#{name}")
          params = {api_type: "json", text: text, css_class: css_class}

          case user_or_link
          when Redd::Object::User
            params[:name] = extract_attribute(user_or_link, :name)
          when Redd::Object::Submission
            params[:link] = extract_attribute(user_or_link, :display_name)
          else
            fail "You should provide a User or Submission object."
          end

          post path, params
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
redd-0.4.3 lib/redd/client/authenticated/flair.rb
redd-0.4.2 lib/redd/client/authenticated/flair.rb
redd-0.4.1 lib/redd/client/authenticated/flair.rb
redd-0.4.0 lib/redd/client/authenticated/flair.rb
redd-0.3.0 lib/redd/client/authenticated/flair.rb
redd-0.2.0 lib/redd/client/authenticated/flair.rb
redd-0.1.6 lib/redd/client/authenticated/flair.rb