module PtabManager
Example Trial
“trialNumber”: “IPR2016-00831”, “applicationNumber”: “09026118”, “patentNumber”: “6162705”, “petitionerPartyName”: “Commissariat a l’Energie Atomique et aux Energies Alternatives”, “patentOwnerName”: “Silicon Genesis Corporation”, “inventorName”: “FRANCOIS HENLEY”, “prosecutionStatus”: “Terminated-Settled”, “filingDate”: “2016-04-01”, “accordedFilingDate”: “2016-04-01”, “institutionDecisionDate”: “2016-09-28”, “lastModifiedDatetime”: “2017-07-06T16:06:59”,
Public Class Methods
new(params=Hash.new)
click to toggle source
# File lib/ptab.rb, line 33 def initialize(params=Hash.new) @params = params @conn = Faraday.new( :url => "https://ptabdata.uspto.gov" ) @pages = {} end
Public Instance Methods
each() { |get_page(page_no)["results"][position]| ... }
click to toggle source
# File lib/ptab.rb, line 76 def each puts "Record Class #{self.record_class_name}" (0..(length-1)).each do |index| position = index % 25 page_no = (index / 25).floor yield get_page(page_no)["results"][position] end end
filter(*args, **kwargs)
click to toggle source
# File lib/ptab.rb, line 46 def filter(*args, **kwargs) if args kwargs["trialNumber"] = args[0] end new_params = @params.merge(kwargs) self.class.new(new_params) end
get(*args, **kwargs)
click to toggle source
# File lib/ptab.rb, line 41 def get(*args, **kwargs) new_manager = filter(*args, **kwargs) new_manager.first() end
get_page(page_no=0)
click to toggle source
# File lib/ptab.rb, line 55 def get_page(page_no=0) if not @pages.key? page_no params = @params.merge({"page_no" => page_no+1}) url_params = Hash.new inflector = Dry::Inflector.new params.each_pair do |key, value| new_key = inflector.camelize(key) new_key = new_key[0].downcase + new_key[1..] url_params[new_key] = value end response = @conn.get "ptab-api/trials", url_params @pages[page_no] = JSON.parse(response.body) end @pages[page_no] end
length()
click to toggle source
# File lib/ptab.rb, line 71 def length page_one = get_page() page_one["metadata"]["count"] end