clicoder 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e45a56f5d323ec2a19d38ca50d4d4a84ab51b82
4
- data.tar.gz: 80b7005f184a56a550eeb1220c0ea0af8e60eaf5
3
+ metadata.gz: ab43482f8623533ebf4522b2ba10a442943e36f4
4
+ data.tar.gz: fd96596c5157e9322f157c7295c3141fee35e901
5
5
  SHA512:
6
- metadata.gz: 0eea30ea83fe4978e54ac637a68f687c0f327df6bb01f8d5db8d04722fca48c8ffff86e6cd5eef55ff8baa3707dcdfe2387cbf2f745855986a1ebfc5f5e83aa1
7
- data.tar.gz: cf0c007839b541d6b163eba5e2849811e579400666d26ba52c4b0608db390699d283c58fec3fd46d3a671c5d5ee1abce9b8a1413b9f29a0712210479e3ec411c
6
+ metadata.gz: 06a0796538db286cfd1675fd83163ab968d846610fc5a6b12c672163f133a149853c3cb299a35287efb3be33b26b584b0c22fb7a226e71408ed40a6ddb72b603
7
+ data.tar.gz: b89241d61f27cc6eb051a3d8d8995a7b9f91f7b015708aa2671a8d0fac2e0f0fe28cffd3bf4c89f0b159153703dabce467851c44d1af68100a2c43a28b345357
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Command Line Interface for Online Programming Contests.
4
4
 
5
+ [![clicoder API Documentation](https://www.omniref.com/ruby/gems/clicoder.png)](https://www.omniref.com/ruby/gems/clicoder)
6
+
5
7
  # Why
6
8
 
7
9
  Programming contests are fun.
@@ -22,9 +22,16 @@ module Clicoder
22
22
  start_with(aoj)
23
23
  end
24
24
 
25
- desc "atcoder CONTEST_ID PROBLEM_NUMBER", "Prepare directory to deal with new problem from AtCoder"
26
- def atcoder(contest_id, problem_number)
27
- atcoder = AtCoder.new(contest_id, problem_number)
25
+ desc "atcoder TASK_URL", "Prepare directory to deal with new problem from AtCoder"
26
+ def atcoder(task_url)
27
+ match_regexp = %r{http://([^.]*)\.contest\.atcoder\.jp/tasks/(.*)}
28
+ if m = task_url.match(match_regexp)
29
+ contest_id, task_id = task_url.match(match_regexp)[1, 2]
30
+ else
31
+ raise ArgumentError, 'Please provide a valid atcoder task url.'
32
+ end
33
+
34
+ atcoder = AtCoder.new(contest_id, task_id)
28
35
  start_with(atcoder)
29
36
  end
30
37
 
@@ -13,6 +13,7 @@ module Clicoder
13
13
  include Helper
14
14
 
15
15
  # Parameters
16
+ abstract_method :login
16
17
  abstract_method :site_name
17
18
  abstract_method :problem_url
18
19
  abstract_method :description_xpath
@@ -32,7 +33,7 @@ module Clicoder
32
33
  when 'aoj'
33
34
  AOJ.new(config['problem_number'])
34
35
  when 'atcoder'
35
- AtCoder.new(config['contest_id'], config['problem_number'])
36
+ AtCoder.new(config['contest_id'], config['task_id'])
36
37
  end
37
38
  end
38
39
 
@@ -121,7 +122,9 @@ module Clicoder
121
122
  end
122
123
 
123
124
  def xml_document
124
- @xml_document ||= Nokogiri::HTML(open(problem_url))
125
+ login do |mechanize, contest_page|
126
+ @xml_document ||= Nokogiri::HTML(mechanize.get(problem_url).content)
127
+ end
125
128
  end
126
129
 
127
130
  def config
@@ -6,11 +6,11 @@ require 'mechanize'
6
6
  module Clicoder
7
7
  class AtCoder < SiteBase
8
8
 
9
- def initialize(contest_id, problem_number)
9
+ def initialize(contest_id, task_id)
10
10
  config.local['contest_id'] = contest_id
11
- config.local['problem_number'] = problem_number
11
+ config.local['task_id'] = task_id
12
12
  @contest_id = contest_id
13
- @problem_id = "#{@contest_id}_#{problem_number}"
13
+ @task_id = task_id
14
14
  end
15
15
 
16
16
  def submit
@@ -44,7 +44,7 @@ module Clicoder
44
44
  end
45
45
 
46
46
  def problem_url
47
- "http://#{@contest_id}.contest.atcoder.jp/tasks/#{@problem_id}"
47
+ "http://#{@contest_id}.contest.atcoder.jp/tasks/#{@task_id}"
48
48
  end
49
49
 
50
50
  def description_xpath
@@ -60,7 +60,7 @@ module Clicoder
60
60
  end
61
61
 
62
62
  def working_directory
63
- @problem_id
63
+ @task_id
64
64
  end
65
65
  end
66
66
  end
@@ -1,3 +1,3 @@
1
1
  module Clicoder
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clicoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-16 00:00:00.000000000 Z
11
+ date: 2014-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -266,3 +266,4 @@ test_files:
266
266
  - spec/sites/aoj_spec.rb
267
267
  - spec/sites/sample_site_spec.rb
268
268
  - spec/spec_helper.rb
269
+ has_rdoc: