nusmods 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: 646705ac8ac19ea152e6561e8b773146dfc72d47
4
- data.tar.gz: a4b77c00d38cb854d8bee3fdd32094d4b99155ea
3
+ metadata.gz: 7ac41ee74ad59262404aaf3f1759626684bddcdd
4
+ data.tar.gz: 6ca47f3f3f368a8ed672a6888679350eca36712a
5
5
  SHA512:
6
- metadata.gz: d9782a618b38ea224086c6f00d2faf6189079d2d53cd7027c7e3fc8d0be5ac661880c2cd63319e3b25eae635260a37133b7844644398c470cfea7158f621a93d
7
- data.tar.gz: 7f47afb0189bbff35ffc7f287ee9b6da7ca7d5c823f6671194f532b6638f0aa1a2b505c2d57a91c3ebb9455834aa067719c170bac92c2c7333637eb2700951e2
6
+ metadata.gz: 5e7d05f743eb270e61bbc24e48ee67d07d6982131597713b265c5021faf2d909e315a4c67862ea6126e61655e86457abd4b33b9386897328ef5f5e06f4413b12
7
+ data.tar.gz: d0179c45e3f8c548a681d80bd0e2fe4517c833f2374ae40b50cf4fd619178f55603635af3549df61eb9f203b27c217a92466058f53cd8601e0864c9752bc0075
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'faraday'
4
- gem 'faraday_middleware'
5
- gem 'activesupport'
3
+ gem 'httparty'
data/README.md CHANGED
@@ -1,11 +1,11 @@
1
- A ruby wrapper for the NUSModsAPI
1
+ A ruby wrapper for the NUSModsAPI (v0.0.3)
2
2
  ---
3
3
 
4
4
  ### Disclaimer
5
5
 
6
6
  This gem is not maintained by the creator of NUSMods.
7
7
 
8
- NUSModsAPI repository: https://github.com/ahbeng/NUSModsAPI
8
+ NUSModsAPI repository: [https://github.com/nusmodifications/nusmods-api](https://github.com/nusmodifications/nusmods-api)
9
9
 
10
10
  ---
11
11
 
@@ -36,61 +36,79 @@ client = NUSMods::Client.new # => #<NUSMods::Client:0x007f85928efb10 @base_url=
36
36
  All methods are set to retrieve the current AY's records if you do not provide
37
37
  any parameters for year or semester.
38
38
 
39
+ Every response is either an `Array` or a `Hash` object.
40
+
41
+ Example:
42
+ ```ruby
43
+ client.get_module_details("MA1101R").keys
44
+ => ["ModuleCode", "ModuleTitle", "Department", "ModuleDescription",
45
+ "ModuleCredit", "Workload", "Prerequisite", "Preclusion", "ExamDate", "Types",
46
+ "Lecturers", "IVLE", "Timetable", "CorsBiddingStats", "LecturePeriods",
47
+ "TutorialPeriods"]
48
+ ```
49
+
39
50
  #### Faculty Departments
40
51
 
41
- Retrieves the list of faculty departments/sub-departments.
52
+ Retrieves the list of faculty departments/sub-departments in a `Hash`.
42
53
 
43
- ```rb
54
+ ```ruby
44
55
  client.get_faculty_departments(year = 2014, semester = 1)
56
+
57
+ # => {"Arts & Social Sciences"=>["Centre For Language Studies", "Chinese Studies", "Communications And New Media", "Dean's Office (Arts & Social Sc.)", ...
45
58
  ```
46
59
 
47
60
  #### Lesson Types
48
61
 
49
- Retrieves a list of the types of lessons. This API call is not tied to a
62
+ Retrieves a list of the types of lessons in a `Hash`. This API call is not tied to a
50
63
  specific AY or semester.
51
64
 
52
65
  ```rb
53
66
  client.get_lesson_types
67
+ # => {"DESIGN LECTURE"=>"Tutorial", "LABORATORY"=>"Tutorial", "LECTURE"=>"Lecture" ...
54
68
  ```
55
69
 
56
70
  #### Module codes
57
71
 
58
- Retrieves a list of all module codes offered in the semester.
72
+ Retrieves a list of all module codes offered in the semester in an `Array`.
59
73
 
60
- ```rb
74
+ ```ruby
61
75
  client.get_module_codes(year = 2014, semester = 1)
76
+ # => ["ACC1002", "ACC1002X", "ACC2002", "ACC3601", "ACC3602", ...
62
77
  ```
63
78
 
64
79
  #### Module codes with names
65
80
 
66
- Retrieves a list of all module codes accompanied by their names.
81
+ Retrieves a list of all module codes accompanied by their names in an `Array`.
67
82
 
68
- ```rb
83
+ ```ruby
69
84
  client.get_module_codes_with_names(year = 2014, semester = 1)
85
+ # => {"ACC1002"=>"Financial Accounting", "ACC1002X"=>"Financial Accounting", "ACC2002"=>"Managerial Accounting" ...
70
86
  ```
71
87
 
72
88
  #### Module details
73
89
 
74
- Retrieves all information about a specific module
90
+ Retrieves all information about a specific module in a `Hash`
75
91
 
76
- ```rb
92
+ ```ruby
77
93
  client.get_module_details("MA1101R", year = 2014, semester = 1)
94
+ # => {"ModuleCode"=>"MA1101R", "ModuleTitle"=>"Linear Algebra I", "Department"=>"Mathematics", ...
78
95
  ```
79
96
 
80
97
  #### All modules
81
98
 
82
- Retrieves all information about every module.
99
+ Retrieves all information about every module in an `Array`.
83
100
  Note: This retrieves a large dataset, so it will take a while. It is highly
84
101
  suggested that you download a copy from the API directly and store it locally.
85
102
 
86
- ```rb
103
+ ```ruby
87
104
  client.get_modules(year = 2014, semester = 1)
105
+ # => [{ "ModuleCredit" => "4", "ModmavenTree" => { "name" => "ACC1002", "children" => [] }, "LockedModules" => [ "FIN3113", "ACC2002", "IS5116", "FIN2004", ...
88
106
  ```
89
107
 
90
- For more details, see [NUSModsAPI's README.][1]
108
+ For exact response examples or more details, see [NUSMods API's README.][1]
91
109
 
92
110
 
93
- [1]: https://github.com/ahbeng/NUSModsAPI/blob/master/README.md
111
+ [1]: https://github.com/nusmodifications/nusmods-api/blob/master/README.md
94
112
 
95
113
 
96
114
  ### Tests:
@@ -1,16 +1,3 @@
1
- require 'faraday'
2
- require 'faraday_middleware'
3
1
  require 'nusmods/client'
4
2
 
5
- directory = File.expand_path(File.dirname(__FILE__))
6
-
7
- module NUSMods
8
- class << self
9
-
10
- ## configure default
11
- def configure
12
- yield self
13
- end
14
-
15
- end
16
- end
3
+ File.expand_path(File.dirname(__FILE__))
@@ -1,5 +1,6 @@
1
+ require 'httparty'
2
+ require 'json'
1
3
  require 'nusmods/endpoints'
2
- require 'active_support/notifications'
3
4
 
4
5
  module NUSMods
5
6
  class Client
@@ -12,17 +13,10 @@ module NUSMods
12
13
 
13
14
  private
14
15
 
15
- def connection
16
- Faraday.new(url: @base_url) do |f|
17
- f.response :json, :content_type => /\bjson$/
18
- f.use :instrumentation
19
- f.adapter Faraday.default_adapter
20
- end
21
- end
16
+ attr_accessor :conn
22
17
 
23
18
  def get(url)
24
- response = connection.get url
25
- response.body
19
+ JSON.parse(HTTParty.get(@base_url + url).body)
26
20
  end
27
21
 
28
22
  # Converts a provided year to the API requirements
@@ -2,7 +2,7 @@ module NUSMods
2
2
  module Endpoints
3
3
 
4
4
  CURRENT_YEAR = 2014
5
- CURRENT_SEMESTER = 1
5
+ CURRENT_SEMESTER = 2
6
6
 
7
7
  # Returns a Array of all module codes in the given year and semester
8
8
  def get_module_codes(year = CURRENT_YEAR, semester = CURRENT_SEMESTER)
@@ -1,3 +1,3 @@
1
1
  module NUSMods
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -17,7 +17,5 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.files = `git ls-files -z`.split("\x0")
19
19
  s.require_paths = %w( lib )
20
- s.add_dependency 'faraday'
21
- s.add_dependency 'faraday_middleware'
22
- s.add_dependency 'activesupport'
20
+ s.add_dependency 'httparty'
23
21
  end
metadata CHANGED
@@ -1,55 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nusmods
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
  - Jingwen Chen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-31 00:00:00.000000000 Z
11
+ date: 2015-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: activesupport
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
24
+ - - ">="
53
25
  - !ruby/object:Gem::Version
54
26
  version: '0'
55
27
  description: A ruby wrapper interface for NUSModsAPI.
@@ -58,7 +30,7 @@ executables: []
58
30
  extensions: []
59
31
  extra_rdoc_files: []
60
32
  files:
61
- - .rspec
33
+ - ".rspec"
62
34
  - Gemfile
63
35
  - README.md
64
36
  - lib/nusmods.rb
@@ -78,17 +50,17 @@ require_paths:
78
50
  - lib
79
51
  required_ruby_version: !ruby/object:Gem::Requirement
80
52
  requirements:
81
- - - '>='
53
+ - - ">="
82
54
  - !ruby/object:Gem::Version
83
55
  version: '0'
84
56
  required_rubygems_version: !ruby/object:Gem::Requirement
85
57
  requirements:
86
- - - '>='
58
+ - - ">="
87
59
  - !ruby/object:Gem::Version
88
60
  version: '0'
89
61
  requirements: []
90
62
  rubyforge_project:
91
- rubygems_version: 2.0.14
63
+ rubygems_version: 2.2.2
92
64
  signing_key:
93
65
  specification_version: 4
94
66
  summary: A ruby wrapper interface for NUSModsAPI.