Sha256: 4b762dfb7acddf1b1cbe10d76e0f6c8fd259316cfdd5bf0d958e63ec99378638

Contents?: true

Size: 1.1 KB

Versions: 60

Compression:

Stored size: 1.1 KB

Contents

module SocialStream
  # Maintains a list of the equivalences between SocialStream's models
  # and ActivityStreams' object types
  #
  # http://activitystrea.ms/specs/json/schema/activity-schema.html#object-types
  module ActivityStreams
    DEFAULT_TYPE = :note

    class << self
      @@register = {}

      # Register a new ActivityStreams type along with the model
      def register(object_type, klass = nil)
        klass ||= object_type

        @@register[object_type] = klass
      end

      # Get the SocialStream's model, given a ActivityStreams' object type
      def model(type)
        model = @@register[type]
        model && model.to_s.classify.constantize
      end

      # Get the SocialStream's model, given a ActivityStreams' object type
      # or the default model
      def model!(type)
        model(type) || model(SocialStream::ActivityStreams::DEFAULT_TYPE)
      end

      # Get the ActivityStreams' object type, given a SocialStream's model
      def type(klass)
        klass = klass.to_s.underscore.to_sym unless klass.is_a?(Symbol)

        @@register.invert[klass]
      end
    end
  end
end

Version data entries

60 entries across 60 versions & 2 rubygems

Version Path
social_stream-2.2.2 base/lib/social_stream/activity_streams.rb
social_stream-base-2.2.2 lib/social_stream/activity_streams.rb
social_stream-2.2.1 base/lib/social_stream/activity_streams.rb
social_stream-base-2.2.1 lib/social_stream/activity_streams.rb
social_stream-2.2.0 base/lib/social_stream/activity_streams.rb
social_stream-base-2.2.0 lib/social_stream/activity_streams.rb
social_stream-2.1.1 base/lib/social_stream/activity_streams.rb
social_stream-1.1.12 base/lib/social_stream/activity_streams.rb
social_stream-base-1.1.11 lib/social_stream/activity_streams.rb
social_stream-2.1.0 base/lib/social_stream/activity_streams.rb
social_stream-base-2.1.0 lib/social_stream/activity_streams.rb
social_stream-2.0.4 base/lib/social_stream/activity_streams.rb
social_stream-base-2.0.4 lib/social_stream/activity_streams.rb
social_stream-2.0.3 base/lib/social_stream/activity_streams.rb
social_stream-base-2.0.3 lib/social_stream/activity_streams.rb
social_stream-1.1.11 base/lib/social_stream/activity_streams.rb
social_stream-base-1.1.10 lib/social_stream/activity_streams.rb
social_stream-1.1.10 base/lib/social_stream/activity_streams.rb
social_stream-base-1.1.9 lib/social_stream/activity_streams.rb
social_stream-1.1.9 base/lib/social_stream/activity_streams.rb