Sha256: 416314029ddd061b01652c30367b81260301b2cf975b0437605f0a00c3363cb1

Contents?: true

Size: 1014 Bytes

Versions: 13

Compression:

Stored size: 1014 Bytes

Contents

module IntercomRails

  module Proxy

    class Company < Proxy

      proxy_delegator :id, :identity => true
      proxy_delegator :name
      proxy_delegator :created_at

      config_delegator :plan
      config_delegator :monthly_spend

      def self.companies_for_user(user)
        return unless config(:user).company_association.present?
        companies = config(:user).company_association.call(user.user)
        return unless companies.kind_of?(Array)

        companies.map { |company| new(company) }.select { |company_proxy| company_proxy.valid? }
      end

      def self.current_in_context(search_object)
        begin
          if config.current.present?
            company_proxy = new(search_object.instance_eval(&config.current), search_object)
            return company_proxy if company_proxy.valid?
          end
        rescue NameError
        end

        raise NoCompanyFoundError
      end

      def valid?
        company.present? && identity_present?
      end

    end

  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
intercom-rails-0.3.1 lib/intercom-rails/proxy/company.rb
intercom-rails-0.3.0 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.36 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.35 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.34 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.33 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.31 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.30 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.29 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.28 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.27 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.26 lib/intercom-rails/proxy/company.rb
intercom-rails-0.2.25 lib/intercom-rails/proxy/company.rb