Sha256: 96b335c20dd2fda8a0faed003896bf2add5328c13d5b766c2e864a22315c074b

Contents?: true

Size: 699 Bytes

Versions: 6

Compression:

Stored size: 699 Bytes

Contents

require 'twitter/core_ext/string'

module Twitter
  class Factory

    # Instantiates a new action object
    #
    # @param attrs [Hash]
    # @raise [ArgumentError] Error raised when supplied argument is missing an :action key.
    # @return [Twitter::Action::Favorite, Twitter::Action::Follow, Twitter::Action::ListMemberAdded, Twitter::Action::Mention, Twitter::Action::Reply, Twitter::Action::Retweet]
    def self.fetch_or_new(method, klass, attrs={})
      return unless attrs
      if type = attrs.delete(method.to_sym)
        klass.const_get(type.camelize.to_sym).fetch_or_new(attrs)
      else
        raise ArgumentError, "argument must have :#{method} key"
      end
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
twitter-4.3.0 lib/twitter/factory.rb
twitter-4.2.0 lib/twitter/factory.rb
twitter-4.1.2 lib/twitter/factory.rb
twitter-4.1.1 lib/twitter/factory.rb
twitter-4.1.0 lib/twitter/factory.rb
twitter-4.0.0 lib/twitter/factory.rb