Sha256: b960a84ec135cf3dbf6e8f51be199f8cfe3a86cd84952a4ceb6db54056ffc5ed

Contents?: true

Size: 1.51 KB

Versions: 6

Compression:

Stored size: 1.51 KB

Contents

# Provides your Rails application with social network and activity stream support
module SocialStream
  autoload :Ability,   'social_stream/ability'
  autoload :Populate,  'social_stream/populate'
  autoload :Relations, 'social_stream/relations'

  module Controllers
    autoload :Helpers, 'social_stream/controllers/helpers'
  end

  module Models
    autoload :Supertype, 'social_stream/models/supertype'
    autoload :Subject,   'social_stream/models/subject'
    autoload :Object,    'social_stream/models/object'
  end

  mattr_accessor :subjects
  @@subjects = [ :user, :group ]

  mattr_accessor :devise_modules
  @@devise_modules = [ :database_authenticatable, :registerable, :recoverable,
                       :rememberable, :trackable ]

  mattr_accessor :objects
  @@objects = [ :post, :comment ]

  class << self
    def setup
      yield self
    end

    # Load models for rewrite in application
    #
    # Use this method when you want to reopen some model in SocialStream in order
    # to add or modify functionality
    #
    # Example, in app/models/user.rb
    #   SocialStream.require_model('user')
    #
    #   class User
    #     some_new_functionality
    #   end
    #
    # Maybe Rails provides some method to do this, in this case, please tell!!
    def require_model(m)
      path = $:.find{ |f| f =~ Regexp.new(File.join('social_stream', 'app', 'models')) }

      raise "Can't find social_stream path" if path.blank?

      require_dependency File.join(path, m)
    end
  end
end

require 'social_stream/rails'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
social_stream-0.3.5 lib/social_stream.rb
social_stream-0.3.4 lib/social_stream.rb
social_stream-0.3.3 lib/social_stream.rb
social_stream-0.3.2 lib/social_stream.rb
social_stream-0.3.1 lib/social_stream.rb
social_stream-0.3.0 lib/social_stream.rb