Sha256: b220b75b8d43f09240b7c11176651141153660467f31cbb95f64946443a3b158

Contents?: true

Size: 1.35 KB

Versions: 21

Compression:

Stored size: 1.35 KB

Contents

module Hubstats
  class Repo < ActiveRecord::Base

    scope :with_recent_activity, lambda {|time| where("updated_at > ?", time).order("updated_at DESC") }

    attr_accessible :id, :name, :full_name, :homepage, :language, :description, :default_branch,
      :url, :html_url, :clone_url, :git_url, :ssh_url, :svn_url, :mirror_url,
      :hooks_url, :issue_events_url, :events_url, :contributors_url, :git_commits_url, 
      :issue_comment_url, :merges_url, :issues_url, :pulls_url, :labels_url,
      :forks_count, :stargazers_count, :watchers_count, :size, :open_issues_count,
      :has_issues, :has_wiki, :has_downloads,:fork, :private, 
      :pushed_at, :created_at, :updated_at, :owner_id

    has_many :pull_requests
    belongs_to :owner, :class_name => "User", :foreign_key => "id"

    def self.create_or_update(github_repo)
      github_repo = github_repo.to_h.with_indifferent_access if github_repo.respond_to? :to_h
      repo_data = github_repo.slice(*column_names.map(&:to_sym))

      if github_repo[:owner]
        user = Hubstats::User.create_or_update(github_repo[:owner])
        repo_data[:owner_id] = user[:id]
      end

      repo = where(:id => repo_data[:id]).first_or_create(repo_data)
      return repo if repo.update_attributes(repo_data)
      Rails.logger.warn repo.errors.inspect
    end
    
    def to_param
      self.name
    end

  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
hubstats-0.3.4 app/models/hubstats/repo.rb
hubstats-0.3.3 app/models/hubstats/repo.rb
hubstats-0.3.2 app/models/hubstats/repo.rb
hubstats-0.3.1 app/models/hubstats/repo.rb
hubstats-0.3.0 app/models/hubstats/repo.rb
hubstats-0.2.3 app/models/hubstats/repo.rb
hubstats-0.2.2 app/models/hubstats/repo.rb
hubstats-0.2.1 app/models/hubstats/repo.rb
hubstats-0.2.0 app/models/hubstats/repo.rb
hubstats-0.1.3 app/models/hubstats/repo.rb
hubstats-0.1.2 app/models/hubstats/repo.rb
hubstats-0.1.1 app/models/hubstats/repo.rb
hubstats-0.1.0 app/models/hubstats/repo.rb
hubstats-0.0.23 app/models/hubstats/repo.rb
hubstats-0.0.22 app/models/hubstats/repo.rb
hubstats-0.0.21 app/models/hubstats/repo.rb
hubstats-0.0.20 app/models/hubstats/repo.rb
hubstats-0.0.19 app/models/hubstats/repo.rb
hubstats-0.0.18 app/models/hubstats/repo.rb
hubstats-0.0.17 app/models/hubstats/repo.rb