Class: RestScrapyd
Overview
Don’t define a ‘RestScrapyd::Client` and include it in the class to avoid yardoc choking
Instance Attribute Summary collapse
-
#project ⇒ Object
Default project name (can also be passed as hash argument to constructor).
Instance Method Summary collapse
-
#addversion(version, egg, project = self.project) ⇒ Hash<String, Object>
Add a version to a project, creating the project if it doesn’t exist.
-
#cancel(job, project = self.project) ⇒ String
Cancel a scheduled or running job.
-
#delproject(project) ⇒ Object
Delete a project and all its uploaded versions.
-
#delversion(version, project = self.project) ⇒ Object
Delete a project version.
-
#listjobs(project = self.project) ⇒ Hash<String, Array<Hash>>
Get the list of pending, running and finished jobs of some project.
-
#listprojects ⇒ Array<String>
Get the list of projects uploaded to this Scrapy server.
-
#listspiders(project = self.project) ⇒ Array<String>
Get the list of spiders available in the last version of some project.
-
#listversions(project = self.project) ⇒ Array<String>
Get the list of versions available for some project.
-
#schedule(spider, version, settings = {}) ⇒ String
Schedule a spider run (also known as a job).
Instance Attribute Details
#project ⇒ Object
Default project name (can also be passed as hash argument to constructor).
26 27 28 |
# File 'lib/rest-scrapyd.rb', line 26 def project @project end |
Instance Method Details
#addversion(version, egg, project = self.project) ⇒ Hash<String, Object>
Add a version to a project, creating the project if it doesn’t exist.
33 34 35 36 |
# File 'lib/rest-scrapyd.rb', line 33 def addversion(version, egg, project=self.project) egg = File.open(egg, 'rb') if egg.is_a? String post('addversion.json', project: project, version: version, egg: egg) end |
#cancel(job, project = self.project) ⇒ String
Cancel a scheduled or running job
55 56 57 |
# File 'lib/rest-scrapyd.rb', line 55 def cancel(job, project=self.project) post('cancel.json', project: project, job: job)['prevstate'] end |
#delproject(project) ⇒ Object
Delete a project and all its uploaded versions.
101 102 103 |
# File 'lib/rest-scrapyd.rb', line 101 def delproject(project) post('delproject.json', project: project) end |
#delversion(version, project = self.project) ⇒ Object
Delete a project version.
94 95 96 |
# File 'lib/rest-scrapyd.rb', line 94 def delversion(version, project=self.project) post('delversion.json', project: project, version: version) end |
#listjobs(project = self.project) ⇒ Hash<String, Array<Hash>>
Get the list of pending, running and finished jobs of some project.
86 87 88 |
# File 'lib/rest-scrapyd.rb', line 86 def listjobs(project=self.project) get('listjobs.json', project: project).reject{|k,v| k=='status'} end |
#listprojects ⇒ Array<String>
Get the list of projects uploaded to this Scrapy server.
62 63 64 |
# File 'lib/rest-scrapyd.rb', line 62 def listprojects get('listprojects.json')['projects'] end |
#listspiders(project = self.project) ⇒ Array<String>
Get the list of spiders available in the last version of some project.
78 79 80 |
# File 'lib/rest-scrapyd.rb', line 78 def listspiders(project=self.project) get('listspiders.json', project: project)['spiders'] end |
#listversions(project = self.project) ⇒ Array<String>
Get the list of versions available for some project.
70 71 72 |
# File 'lib/rest-scrapyd.rb', line 70 def listversions(project=self.project) get('listversions.json', project: project)['versions'] end |
#schedule(spider, version, settings = {}) ⇒ String
Schedule a spider run (also known as a job).
45 46 47 48 |
# File 'lib/rest-scrapyd.rb', line 45 def schedule(spider, version, settings={}) settings = {project: self.project, spider: spider}.merge(settings) post('schedule.json', settings)['jobid'] end |