clicoder 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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: