Skip to content

Commit

Permalink
Fix Repo is not a class error
Browse files Browse the repository at this point in the history
  • Loading branch information
straight-shoota committed Dec 18, 2020
1 parent 5296b4d commit 19fb582
Show file tree
Hide file tree
Showing 4 changed files with 265 additions and 257 deletions.
6 changes: 4 additions & 2 deletions spec/support/mock_resolver.cr
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
class Repo::Resolver
def initialize(@resolver : MockResolver, @repo_ref)
class Repo
class Resolver
def initialize(@resolver : MockResolver, @repo_ref)
end
end
end

Expand Down
154 changes: 78 additions & 76 deletions src/fetchers/github_api.cr
Original file line number Diff line number Diff line change
Expand Up @@ -82,88 +82,90 @@ struct Shardbox::GitHubAPI
end
end

struct Repo::Metadata
def initialize(github_pull pull : JSON::PullParser)
pull.read_object do |key|
case key
when "forks"
pull.on_key!("totalCount") do
@forks_count = pull.read?(Int32)
end
when "stargazers"
pull.on_key!("totalCount") do
@stargazers_count = pull.read?(Int32)
end
when "watchers"
pull.on_key!("totalCount") do
@watchers_count = pull.read?(Int32)
end
when "createdAt"
@created_at = Time.new(pull)
when "description"
@description = pull.read_string_or_null
when "hasIssuesEnabled"
@issues_enabled = pull.read_bool
when "hasWikiEnabled"
@wiki_enabled = pull.read_bool
when "homepageUrl"
@homepage_url = pull.read_string_or_null
when "isArchived"
@archived = pull.read_bool
when "isFork"
@fork = pull.read_bool
when "isMirror"
@mirror = pull.read_bool
when "licenseInfo"
pull.read_null_or do
pull.on_key!("key") do
@license = pull.read_string
class Repo
struct Metadata
def initialize(github_pull pull : JSON::PullParser)
pull.read_object do |key|
case key
when "forks"
pull.on_key!("totalCount") do
@forks_count = pull.read?(Int32)
end
end
when "primaryLanguage"
pull.read_null_or do
pull.on_key!("name") do
@primary_language = pull.read_string
when "stargazers"
pull.on_key!("totalCount") do
@stargazers_count = pull.read?(Int32)
end
end
when "pushedAt"
pull.read_null_or do
@pushed_at = Time.new(pull)
end
when "closedIssues"
pull.on_key!("totalCount") do
@closed_issues_count = pull.read?(Int32)
end
when "openIssues"
pull.on_key!("totalCount") do
@open_issues_count = pull.read?(Int32)
end
when "closedPullRequests"
pull.on_key!("totalCount") do
@closed_pull_requests_count = pull.read?(Int32)
end
when "openPullRequests"
pull.on_key!("totalCount") do
@open_pull_requests_count = pull.read?(Int32)
end
when "mergedPullRequests"
pull.on_key!("totalCount") do
@merged_pull_requests_count = pull.read?(Int32)
end
when "repositoryTopics"
topics = [] of String
@topics = topics
pull.on_key!("nodes") do
pull.read_array do
pull.on_key!("topic") do
pull.on_key!("name") do
topics << pull.read_string
when "watchers"
pull.on_key!("totalCount") do
@watchers_count = pull.read?(Int32)
end
when "createdAt"
@created_at = Time.new(pull)
when "description"
@description = pull.read_string_or_null
when "hasIssuesEnabled"
@issues_enabled = pull.read_bool
when "hasWikiEnabled"
@wiki_enabled = pull.read_bool
when "homepageUrl"
@homepage_url = pull.read_string_or_null
when "isArchived"
@archived = pull.read_bool
when "isFork"
@fork = pull.read_bool
when "isMirror"
@mirror = pull.read_bool
when "licenseInfo"
pull.read_null_or do
pull.on_key!("key") do
@license = pull.read_string
end
end
when "primaryLanguage"
pull.read_null_or do
pull.on_key!("name") do
@primary_language = pull.read_string
end
end
when "pushedAt"
pull.read_null_or do
@pushed_at = Time.new(pull)
end
when "closedIssues"
pull.on_key!("totalCount") do
@closed_issues_count = pull.read?(Int32)
end
when "openIssues"
pull.on_key!("totalCount") do
@open_issues_count = pull.read?(Int32)
end
when "closedPullRequests"
pull.on_key!("totalCount") do
@closed_pull_requests_count = pull.read?(Int32)
end
when "openPullRequests"
pull.on_key!("totalCount") do
@open_pull_requests_count = pull.read?(Int32)
end
when "mergedPullRequests"
pull.on_key!("totalCount") do
@merged_pull_requests_count = pull.read?(Int32)
end
when "repositoryTopics"
topics = [] of String
@topics = topics
pull.on_key!("nodes") do
pull.read_array do
pull.on_key!("topic") do
pull.on_key!("name") do
topics << pull.read_string
end
end
end
end
else
pull.skip
end
else
pull.skip
end
end
end
Expand Down
66 changes: 34 additions & 32 deletions src/repo/owner.cr
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
class Repo::Owner
property resolver : String
property slug : String
property name : String?
property description : String?
property extra : Hash(String, JSON::Any)
property shards_count : Int32?
property! id : Int64
class Repo
class Owner
property resolver : String
property slug : String
property name : String?
property description : String?
property extra : Hash(String, JSON::Any)
property shards_count : Int32?
property! id : Int64

def initialize(@resolver : String, @slug : String,
@name : String? = nil, @description : String? = nil,
@extra : Hash(String, JSON::Any) = Hash(String, JSON::Any).new,
@shards_count : Int32? = nil,
*, @id : Int64? = nil)
end
def initialize(@resolver : String, @slug : String,
@name : String? = nil, @description : String? = nil,
@extra : Hash(String, JSON::Any) = Hash(String, JSON::Any).new,
@shards_count : Int32? = nil,
*, @id : Int64? = nil)
end

def self.from_repo_ref(repo_ref : Ref) : Owner?
if owner = repo_ref.owner
new(repo_ref.resolver, owner)
def self.from_repo_ref(repo_ref : Ref) : Owner?
if owner = repo_ref.owner
new(repo_ref.resolver, owner)
end
end
end

def_equals_and_hash @resolver, @slug, @name, @description, @extra, @shards_count
def_equals_and_hash @resolver, @slug, @name, @description, @extra, @shards_count

def website_url : String?
extra["website_url"]?.try(&.as_s?)
end
def website_url : String?
extra["website_url"]?.try(&.as_s?)
end

record Metrics,
shards_count : Int32,
dependents_count : Int32,
transitive_dependents_count : Int32,
dev_dependents_count : Int32,
transitive_dependencies_count : Int32,
dev_dependencies_count : Int32,
dependencies_count : Int32,
popularity : Float32,
created_at : Time? = nil
record Metrics,
shards_count : Int32,
dependents_count : Int32,
transitive_dependents_count : Int32,
dev_dependents_count : Int32,
transitive_dependencies_count : Int32,
dev_dependencies_count : Int32,
dependencies_count : Int32,
popularity : Float32,
created_at : Time? = nil
end
end
Loading

0 comments on commit 19fb582

Please sign in to comment.