Sha256: 8d46e1a9329ee3f930ec0f3fd0584dc3c90ed62759ed0c6a2ede1c6456a1ba5d

Contents?: true

Size: 1.39 KB

Versions: 3

Compression:

Stored size: 1.39 KB

Contents

module FrontEndBuilds
  class App < ActiveRecord::Base
    if defined?(ProtectedAttributes) || ::ActiveRecord::VERSION::MAJOR < 4
      attr_accessible :name,
                      :require_manual_activation,
                      :live_build_id
    end

    belongs_to :live_build, class_name: 'FrontEndBuilds::Build'
    has_many :builds, class_name: 'FrontEndBuilds::Build'

    if ActiveRecord::VERSION::MAJOR < 4
      # Rails 3
      has_many :recent_builds,
        class_name: "FrontEndBuilds::Build",
        limit: 10,
        order: 'created_at'
    else
      # Rails 4
      has_many :recent_builds, -> { recent },
        class_name: "FrontEndBuilds::Build"
    end

    validates :name, presence: true
    validates :api_key, presence: true

    before_validation :ensure_api_key!

    def self.register_url(name, url)
      @_url ||= {}
      @_url[name.to_sym] = url
    end

    def self.get_url(name)
      @_url ||= {}
      @_url[name.to_sym]
    end

    def get_url
      self.class.get_url(name)
    end

    def ensure_api_key!
      self.api_key = SecureRandom.uuid if api_key.blank?
    end

    def serialize
      {
        id: id,
        name: name,
        api_key: api_key,
        build_ids: recent_builds.map(&:id),
        live_build_id: (live_build ? live_build.id : nil),
        location: get_url,
        require_manual_activation: require_manual_activation
      }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
front_end_builds-0.0.26 app/models/front_end_builds/app.rb
front_end_builds-0.0.25 app/models/front_end_builds/app.rb
front_end_builds-0.0.24 app/models/front_end_builds/app.rb