diff --git a/lib/crunchbase.rb b/lib/crunchbase.rb index c3c9834..bed2b2e 100644 --- a/lib/crunchbase.rb +++ b/lib/crunchbase.rb @@ -1,6 +1,7 @@ require 'crunchbase/api' require 'crunchbase/cb_object' require 'crunchbase/date_methods' +require 'crunchbase/array_from_list' require 'crunchbase/milestone' require 'crunchbase/company' require 'crunchbase/financial_organization' diff --git a/lib/crunchbase/array_from_list.rb b/lib/crunchbase/array_from_list.rb new file mode 100644 index 0000000..02651b6 --- /dev/null +++ b/lib/crunchbase/array_from_list.rb @@ -0,0 +1,9 @@ +module Crunchbase + module ArrayFromList + # Takes a list (directly from the JSON hash) and returns an + # array of instances of the class + def array_from_list(list) + list.map {|l| self.new(l) } + end + end +end diff --git a/lib/crunchbase/company.rb b/lib/crunchbase/company.rb index 4d2eee3..2ca38c6 100644 --- a/lib/crunchbase/company.rb +++ b/lib/crunchbase/company.rb @@ -43,16 +43,16 @@ def initialize(json) @overview = json["overview"] @image = json["image"] @products_list = json["products"] - @relationships = Relationship.array_from_relationship_list(json["relationships"]) if json["relationships"] + @relationships = Relationship.array_from_list(json["relationships"]) if json["relationships"] @competitions = json["competitions"] - @providerships = Relationship.array_from_relationship_list(json["providerships"]) if json["providerships"] + @providerships = Relationship.array_from_list(json["providerships"]) if json["providerships"] @total_money_raised = json["total_money_raised"] @funding_rounds = json["funding_rounds"] - @investments = Investment.array_from_investment_list(json['investments']) if json['investments'] + @investments = Investment.array_from_list(json['investments']) if json['investments'] @acquisition = json["acquisition"] @acquisitions = json["acquisitions"] @offices = json["offices"] - @milestones = Milestone.array_from_milestone_list(json["milestones"]) if json["milestones"] + @milestones = Milestone.array_from_list(json["milestones"]) if json["milestones"] @ipo = json["ipo"] @video_embeds = json["video_embeds"] @screenshots = json["screenshots"] diff --git a/lib/crunchbase/financial_organization.rb b/lib/crunchbase/financial_organization.rb index 24a701e..0a2c29c 100644 --- a/lib/crunchbase/financial_organization.rb +++ b/lib/crunchbase/financial_organization.rb @@ -36,10 +36,10 @@ def initialize(json) @overview = json['overview'] @image = json['image'] @offices = json['offices'] - @relationships = Relationship.array_from_relationship_list(json["relationships"]) if json["relationships"] - @investments = Investment.array_from_investment_list(json['investments']) if json['investments'] - @milestones = Milestone.array_from_milestone_list(json['milestones']) if json['milestones'] - @providerships = Relationship.array_from_relationship_list(json['providerships']) if json["providerships"] + @relationships = Relationship.array_from_list(json["relationships"]) if json["relationships"] + @investments = Investment.array_from_list(json['investments']) if json['investments'] + @milestones = Milestone.array_from_list(json['milestones']) if json['milestones'] + @providerships = Relationship.array_from_list(json['providerships']) if json["providerships"] @funds = json['funds'] @video_embeds = json['video_embeds'] @external_links = json['external_links'] diff --git a/lib/crunchbase/investment.rb b/lib/crunchbase/investment.rb index b5c29ab..44310aa 100644 --- a/lib/crunchbase/investment.rb +++ b/lib/crunchbase/investment.rb @@ -2,15 +2,12 @@ module Crunchbase class Investment include Crunchbase::DateMethods + self.extend Crunchbase::ArrayFromList attr_reader :funding_round_code, :funding_source_url, :funding_source_description, :raised_amount, :raised_currency_code, :company_name, :company_permalink - def self.array_from_investment_list(list) - list.map{|l| self.new(l)} - end - def initialize(hash) hash = hash["funding_round"] @funding_round_code = hash["round_code"] @@ -38,4 +35,4 @@ def funded_date end end -end \ No newline at end of file +end diff --git a/lib/crunchbase/milestone.rb b/lib/crunchbase/milestone.rb index 1931d9d..d3863f7 100644 --- a/lib/crunchbase/milestone.rb +++ b/lib/crunchbase/milestone.rb @@ -5,12 +5,7 @@ class Milestone :stoned_value_type, :stoned_acquirer include Crunchbase::DateMethods - - # Takes a relationship list (directly from the JSON hash) and returns an - # array of instances of Relationship subclasses. - def self.array_from_milestone_list(list) - list.map {|l| Milestone.new(l) } - end + self.extend Crunchbase::ArrayFromList def initialize(obj) @description = obj['description'] diff --git a/lib/crunchbase/person.rb b/lib/crunchbase/person.rb index 2a56ff5..eb02c86 100644 --- a/lib/crunchbase/person.rb +++ b/lib/crunchbase/person.rb @@ -37,9 +37,9 @@ def initialize(json) @updated_at = DateTime.parse(json["updated_at"]) @overview = json["overview"] - @relationships = Relationship.array_from_relationship_list(json["relationships"]) if json["relationships"] - @investments = Investment.array_from_investment_list(json["investments"]) if json["investments"] - @milestones = Milestones.array_from_milestone_list(json["milestones"]) if json["milestones"] + @relationships = Relationship.array_from_list(json["relationships"]) if json["relationships"] + @investments = Investment.array_from_list(json["investments"]) if json["investments"] + @milestones = Milestone.array_from_list(json["milestones"]) if json["milestones"] @video_embeds = json["video_embeds"] @external_links = json["external_links"] @web_presences = json["web_presences"] diff --git a/lib/crunchbase/product.rb b/lib/crunchbase/product.rb index f6b5e51..1abd881 100644 --- a/lib/crunchbase/product.rb +++ b/lib/crunchbase/product.rb @@ -38,7 +38,7 @@ def initialize(json) @image = json['image'] @company_permalink = json['company']['permalink'] @company_name = json['company']['name'] - @milestones = Milestone.array_from_milestone_list(json['milestones']) if json['milestones'] + @milestones = Milestone.array_from_list(json['milestones']) if json['milestones'] @video_embeds = json['video_embeds'] @external_links = json['external_links'] end diff --git a/lib/crunchbase/relationship.rb b/lib/crunchbase/relationship.rb index 14e986e..251372f 100644 --- a/lib/crunchbase/relationship.rb +++ b/lib/crunchbase/relationship.rb @@ -7,7 +7,7 @@ class Relationship # Takes a relationship list (directly from the JSON hash) and returns an # array of instances of Relationship subclasses. - def self.array_from_relationship_list(list) + def self.array_from_list(list) list.map do |l| if l["person"] PersonRelationship.new(l) @@ -37,4 +37,4 @@ def is_past? @is_past end end -end \ No newline at end of file +end diff --git a/lib/crunchbase/service_provider.rb b/lib/crunchbase/service_provider.rb index b3a6fd3..a7a444d 100644 --- a/lib/crunchbase/service_provider.rb +++ b/lib/crunchbase/service_provider.rb @@ -22,7 +22,7 @@ def initialize(json) @overview = json["overview"] @image = json["image"] @offices = json["offices"] - @providerships = Relationship.array_from_relationship_list(json["providerships"]) if json["providerships"] + @providerships = Relationship.array_from_list(json["providerships"]) if json["providerships"] @external_links = json["external_links"] end