uec_express_api 0.0.3 → 0.1.0

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.
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in uec_express_api.gemspec
4
- gemspec 'hpricot'
5
- gemspec 'json'
4
+ gem 'rspec', :group => :test
5
+ gem 'hpricot'
data/README.md CHANGED
@@ -22,10 +22,15 @@ Or install it yourself as:
22
22
  #!/usr/bin/ruby
23
23
  require 'rubygems'
24
24
  require 'uec_express_api'
25
+ require 'json'
25
26
 
26
- uec_express = UECExpressApi.new()
27
- uec_express.to_s
28
- puts uec_express.to_json
27
+ uec_express_faculty = UECExpressApi.new() #=> Faculty of Information
28
+ uec_express_faculty.to_s
29
+ puts uec_express_faculty.to_hash.to_json
30
+
31
+ uec_express_gs = UECExpressApi.new() #=> Graduate school of Information
32
+ uec_express_gs.to_s
33
+ puts uec_express_gs.to_hash.to_json
29
34
  ```
30
35
 
31
36
  ##License and copyright
@@ -12,30 +12,22 @@ require 'hpricot'
12
12
  require 'json'
13
13
  require 'uec_express_api/version.rb'
14
14
 
15
+ BASE_URL = "http://kyoumu.office.uec.ac.jp/kyuukou/"
16
+ FACULTY = "kyuukou.html" #=> Faculty of Information
17
+ GS = "kyuukou2.html" #=> Graduate school of Information
18
+
15
19
  class UECExpressApi
16
20
 
17
21
  attr_accessor :updated, :express
18
22
 
19
23
  @@debug = false
20
- def initialize()
21
-
24
+ def initialize(type=1)
22
25
  @updated = ""
23
26
  @express = Array.new
24
- parse_UEC_express()
25
- end
26
-
27
- def to_hash
28
- {
29
- :express => @express,
30
- :updated => @updated
31
- }
32
- end
33
-
34
- def to_json(*args)
35
- to_hash().to_json(*args)
27
+ parse(type)
36
28
  end
37
29
 
38
- def to_s()
30
+ def to_s
39
31
  puts "-------------------------------------------------------------"
40
32
  puts "| class | data | time | subject | staff | remark |"
41
33
  @express.each do |ex|
@@ -44,29 +36,50 @@ class UECExpressApi
44
36
  puts "Last Updated :" + @updated
45
37
  puts "-------------------------------------------------------------"
46
38
  end
39
+
40
+ def create_faculty_url
41
+ BASE_URL + FACULTY
42
+ end
43
+
44
+ def create_gs_url
45
+ BASE_URL + GS
46
+ end
47
+
48
+ def to_hash
49
+ {
50
+ :express => @express,
51
+ :updated => @updated
52
+ }
53
+ end
47
54
 
48
55
  private
49
56
 
50
- def parse_UEC_express()
51
- url="http://kyoumu.ofFICE.uec.ac.jp/kyuukou/kyuukou.html"
57
+ def parse(type=1)
58
+ url = create_faculty_url
59
+
60
+ if type != 1
61
+ url = create_gs_url
62
+ end
63
+
52
64
  puts "Getting URL="+url if @@debug
65
+
53
66
  doc = Hpricot(open(url,'User-Agent' => 'ruby'))
54
- express(doc.root)
55
- updated(doc.root)
67
+ parse_express(doc.root)
68
+ parse_updated(doc.root)
56
69
  end
57
-
58
- def updated(doc)
70
+
71
+ def parse_updated(doc)
59
72
  elements = doc/:p
60
73
  if elements
61
74
  begin
62
75
  @updated = elements.last.inner_html.to_s.encode('utf-8', 'sjis')
63
76
  rescue
64
- @updated = elements.last.inner_html.to_s
77
+ @updated = elements.last.inner_html.to_s
65
78
  end
66
79
  end
67
80
  end
68
81
 
69
- def express(doc)
82
+ def parse_express(doc)
70
83
  express_pass = [:class, :data, :time, :subject, :staff, :remark]
71
84
  (doc/:tr).each_with_index do |element, i|
72
85
  next if i == 0
@@ -83,5 +96,3 @@ class UECExpressApi
83
96
  end
84
97
 
85
98
  end
86
-
87
-
@@ -1,3 +1,3 @@
1
1
  module UecExpressApi
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'test/unit'
5
+ $LOAD_PATH << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__))
6
+
7
+ __END__
@@ -0,0 +1,73 @@
1
+ # _*_ coding: utf-8 _*_
2
+
3
+ require File.expand_path(File.join('.', 'spec_helper'), File.dirname(__FILE__))
4
+ require 'uec_express_api'
5
+
6
+ describe UECExpressApi, "UEC Express Api," do
7
+
8
+ shared_examples_for "public check test" do
9
+
10
+ it "create url check" do
11
+ base_url = "http://kyoumu.office.uec.ac.jp/kyuukou/"
12
+ @uec_express.create_faculty_url.should == base_url + "kyuukou.html"
13
+ @uec_express.create_gs_url.should == base_url + "kyuukou2.html"
14
+ end
15
+
16
+ it "check not empty for faculty(default)" do
17
+ @uec_express.updated.should_not == ""
18
+ @uec_express.express.should_not be_empty
19
+ end
20
+
21
+ it "check not empty for faculty" do
22
+ @uec_express.updated.should_not == ""
23
+ @uec_express.express.should_not be_empty
24
+ end
25
+
26
+ it "check not empty for gs" do
27
+ @uec_express.updated.should_not == ""
28
+ @uec_express.express.should_not be_empty
29
+ end
30
+
31
+ it "check hash include express and updated for faculty(default)" do
32
+ @uec_express.to_hash.should include :express
33
+ @uec_express.to_hash.should include :updated
34
+ end
35
+
36
+ it "check hash include express and updated for faculty" do
37
+ @uec_express.to_hash.should include :express
38
+ @uec_express.to_hash.should include :updated
39
+ end
40
+
41
+ it "check hash include express and updated for gs" do
42
+ @uec_express.to_hash.should include :express
43
+ @uec_express.to_hash.should include :updated
44
+ end
45
+ end
46
+
47
+ describe "defalt url," do
48
+ before(:all) do
49
+ @uec_express = UECExpressApi.new()
50
+ end
51
+
52
+ it_behaves_like "public check test"
53
+
54
+ end
55
+
56
+ describe "faculty url," do
57
+ before(:all) do
58
+ @uec_express = UECExpressApi.new(1)
59
+ end
60
+
61
+ it_behaves_like "public check test"
62
+
63
+ end
64
+
65
+ describe "gs url," do
66
+ before(:all) do
67
+ @uec_express = UECExpressApi.new(2)
68
+ end
69
+
70
+ it_behaves_like "public check test"
71
+
72
+ end
73
+ end
data/test.rb CHANGED
@@ -1,4 +1,11 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/lib/uec_express_api')
2
+ require 'json'
2
3
 
3
- app=UECExpressApi.new()
4
- app.to_s
4
+ faculty = UECExpressApi.new()
5
+ gs = UECExpressApi.new(2)
6
+
7
+ faculty.to_s
8
+ gs.to_s
9
+
10
+ puts faculty.to_hash.to_json
11
+ puts gs.to_hash.to_json
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uec_express_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -58,6 +58,8 @@ files:
58
58
  - Rakefile
59
59
  - lib/uec_express_api.rb
60
60
  - lib/uec_express_api/version.rb
61
+ - spec/spec_helper.rb
62
+ - spec/uec_express_api_spec.rb
61
63
  - test.rb
62
64
  - uec_express_api.gemspec
63
65
  homepage: http://henteko07.hatenablog.com/
@@ -85,4 +87,6 @@ signing_key:
85
87
  specification_version: 3
86
88
  summary: API library of the University of Electro-Communications class cancellation
87
89
  information.
88
- test_files: []
90
+ test_files:
91
+ - spec/spec_helper.rb
92
+ - spec/uec_express_api_spec.rb