pemilu 0.5.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b972a663d36270f5cb44ac23f67912c49dab9275
4
+ data.tar.gz: 1688f1637c95559c5cf1e8d3b614d6315f83058e
5
+ SHA512:
6
+ metadata.gz: 304c05b90f80d5cad9e671c39869657f8410938ac58457b3c0d82f659f5f8f15cd7629ebf05deb31463fcad2c980ab067df4d1ebc99c96df898f2e7edc5e108a
7
+ data.tar.gz: db067f0cd237b00a26b90efb6ba6e07e2fc49e17eea8b36a398d1251b4e1d960c28b3710a4ea2415b6c59619a18ad2f8d20f2f6dd277205809298e2f325c6e49
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pemilu.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Bayu Aldi Yansyah
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,138 @@
1
+ # pemilu
2
+ A beautiful Ruby interface of [Pemilu APIs](http://pemiluapi.org)
3
+
4
+ ## Contents
5
+ - [Installation](in)
6
+ - [How to use pemilu gem](ht)
7
+ - [Configure API key](c)
8
+ - [APIs](a)
9
+ - [List of Candidate attributes](ca)
10
+ - [Get list of all Candidates (`#candidates`)](g)
11
+ - [`#candidates` usage example](cux)
12
+ - [Get details of Candidate (`#candidate`)](gdoc)
13
+ - [`#candidate` usage example](cue)
14
+ - Get list of all Parties [**wait for the next release**](si)
15
+ - Get details of Party [**wait for the next release**](si)
16
+ - Get list of all Provinces [**wait for the next release**](si)
17
+ - Get details of Province [**wait for the next release**](si)
18
+ - Get list of all Electoral Districts [**wait for the next release**](si)
19
+ - Get details of Electoral District [**wait for the next release**](si)
20
+
21
+ [in]: http
22
+ [ht]: http
23
+ [c]: http
24
+ [a]: http
25
+ [ca]: http
26
+ [g]: http
27
+ [cux]: http
28
+ [gdoc]: http
29
+ [cue]: http
30
+ [si]: http
31
+
32
+ ## Installation
33
+ Add this line to your application's Gemfile:
34
+
35
+ gem 'test'
36
+
37
+ And then execute:
38
+
39
+ $ bundle
40
+
41
+ Or install it yourself as:
42
+
43
+ $ gem install test
44
+
45
+
46
+ ## How to use pemilu gem
47
+
48
+ ### Configure
49
+ Before accessing all available [APIs](a) make sure Configure your API key first.
50
+
51
+ require "pemilu"
52
+
53
+ pemilu = Pemilu::API.new(key: "YOUR API KEY")
54
+
55
+ ### APIs
56
+
57
+ #### List of Candidate attributes object
58
+ List of available attribute to each candidate that you can get some information
59
+ about candidate itself. For example `candidate.id` will display id of candidate.
60
+
61
+ |Attribute|Return|Description|`#candidates`|`#candidate`|
62
+ ---------------------------------------------------------
63
+ |`id`|String|ID of Candidate|x|x|
64
+ |`name`|String|Name of Candidate|x|x|
65
+ |`gender`|String|Gender of Candidate|x|x|
66
+ |`religion`|String|Religion of Candidate|x|x|
67
+ |`birthplace`|String|Birthplace of Candidate|x|x|
68
+ |`date_of_birth`|String|Date of Candidate birth|x|x|
69
+ |`marital_status`|String|Marital status of Candidate|x|x|
70
+ |`name_of_couples`|String|Name of Candidate couples|x|x|
71
+ |`number_of_children`|Integer|Number of Candidate children|x|x|
72
+ |`village`|String|Village where Candidate live|x|x|
73
+ |`sub_district`|String|Sub district where Candidate live|x|x|
74
+ |`district`|String|District where Candidate live|x|x|
75
+ |`province`|Hash|Province where Candidate live|x|x|
76
+ |`electoral_district`|Hash|Electoral district where Candidate running on|x|x|
77
+ |`election_year`|Integer|Election year where Candidate running on|x|x|
78
+ |`legislative_body`|String|Legislative body where Candidate running on (ex. DPR)|x|x|
79
+ |`party`|String|Party of Candidate|x|-|
80
+ |`party`|Hash|Party of Candidate|-|x|
81
+ |`ordinal`|Integer|Ordinal of Candidate|x|x|
82
+ |`picture`|String|URL of Candidate picture|x|x|
83
+ |`educations`|Array|List of Candidate education history|-|x|
84
+ |`jobs`|Array|List of Candidate job history|-|x|
85
+ |`organizations`|Array|List of Candidate organization history|-|x|
86
+
87
+ #### Get list of all candidates
88
+ Return an array of `Pemilu::Candidate` object that filtered by declared option.
89
+
90
+ pemilu.candidates(options = {})
91
+
92
+ ##### Available options
93
+
94
+ |Option|Value|Default|Description|Return|
95
+ -----------------------------------------
96
+ |`name`|String|`nil`|String full or partial name of the candidate|Only all candidates that matching with `name`|
97
+ |`party`|String|`nil`|Name of the available party|Only all candidates on the `party`|
98
+ |`electoral_district`|String|`nil`|ID of electoral district (daerah pilihan)|Only all candidates that running on electoral district|
99
+ |`election_year`|Integer|`nil`|Election year (tahun pemilihan)of candidate|Only all candidates that running on election year|
100
+ |`province`|String|`nil`|ID of the Province|Only all candidates that running on `province`|
101
+ |`gender`|String|`nil`|`"L"` for man and `"W"` for woman|Only all candidates has `gender` specified|
102
+ |`religion`|String|`nil`|Religion of the candidate|Only all candidates that have religion specified|
103
+ |`legislative_body`|String|`nil`|Legislative body that the candidate is running for|Only all candidates that running on that legislative body|
104
+ |`limit`|Integer|`100`| Number of records to return| All candidates on specific limit number|
105
+ |`offset`|Integer|`nil`|Number the offset|All candidates from beginning of the offset number|
106
+
107
+ #### `#candidates` usage example
108
+
109
+ # get 10 man candidates
110
+ pemilu.candidates(limit: 10, gender: "L")
111
+
112
+ # print some information about 2 candidates with Islam religion
113
+ candidates = pemilu.candidates(limit:2, religion: "ISLAM")
114
+ candidates.each do |candidate|
115
+ puts "Name: #{candidate.name}"
116
+ puts "Regligion: #{candidate.religion}"
117
+ end
118
+
119
+
120
+ #### Get details of Candidate
121
+ Return an object of `Pemilu::Candidate` with an `id` specified.
122
+
123
+ pemilu.candidate("ID CANDIDATE")
124
+
125
+ #### `#candidate` usage example
126
+
127
+ # print some information about Candidate with id=1101-00-0000-0102
128
+ candidate = pemilu.candidate("1101-00-0000-0102")
129
+ puts "Name: #{candidate.name}"
130
+
131
+ ## Still in active development
132
+ 23:32 Saturday, 1 March 2014.
133
+ Sorry this gem is still under development. Actually you can use it on production
134
+ because this gem is [well tested](wt). But, you don't get full feature yet.
135
+ Please wait for the next release. You can give me a shot at [@peeyek](pyk) on twitter.
136
+
137
+ [wt]: http://linktospec
138
+ [pyk] : http:/twitterlink
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/lib/pemilu/api.rb ADDED
@@ -0,0 +1,110 @@
1
+ require "pp"
2
+ module Pemilu
3
+ class API
4
+
5
+ attr_reader :key
6
+
7
+ def initialize(key: nil)
8
+ @key = key
9
+ end
10
+
11
+ def candidates(name: nil, party: nil, electoral_district: nil, election_year: nil, province: nil, gender: nil, religion: nil, legislative_body: nil, limit: 100, offset: nil)
12
+
13
+ uri = URI("http://api.pemiluapi.org/candidate/api/caleg")
14
+ params = {
15
+ apiKey: @key,
16
+ nama: name,
17
+ partai: party,
18
+ dapil: electoral_district,
19
+ tahun: election_year,
20
+ provinsi: province,
21
+ jenis_kelamin: gender,
22
+ agama: religion,
23
+ lembaga: legislative_body,
24
+ limit: limit,
25
+ offset: offset
26
+ }
27
+ params.delete_if{ |k,v| v.nil? }
28
+ uri.query = URI.encode_www_form(params)
29
+ respond = Net::HTTP.get_response(uri)
30
+ result = []
31
+ if respond.is_a?(Net::HTTPSuccess)
32
+ data = JSON.parse(respond.body)
33
+ @total_candidate = data["data"]["results"]["total"]
34
+ candidates = data["data"]["results"]["caleg"]
35
+ candidates.each do |caleg|
36
+ result << Pemilu::Candidate.new(
37
+ id: caleg["id"],
38
+ name: caleg["nama"],
39
+ gender: caleg["jenis_kelamin"],
40
+ religion: caleg["agama"],
41
+ birthplace: caleg["tempat_lahir"],
42
+ date_of_birth: caleg["tanggal_lahir"],
43
+ marital_status: caleg["status_perkawinan"],
44
+ name_of_couples: caleg["nama_pasangan"],
45
+ number_of_children: caleg["jumlah_anak"],
46
+ village: caleg["kelurahan_tinggal"],
47
+ sub_district: caleg["kecamatan_tinggal"],
48
+ district: caleg["kab_kota_tinggal"],
49
+ province: {
50
+ "id" => caleg["provinsi"]["id"],
51
+ "name" => caleg["provinsi"]["nama"]
52
+ },
53
+ electoral_district: {
54
+ "id" => caleg["dapil"]["id"],
55
+ "nama" => caleg["dapil"]["nama"]
56
+ },
57
+ election_year: caleg["tahun"],
58
+ legislative_body: caleg["lembaga"],
59
+ party: caleg["partai"],
60
+ ordinal: caleg["urutan"],
61
+ picture: caleg["foto_url"])
62
+ end
63
+ else
64
+ return "Can't reach the http://api.pemiluapi.org"
65
+ end
66
+ return result
67
+ end
68
+
69
+ def candidate(id)
70
+ uri = URI("http://api.pemiluapi.org/candidate/api/caleg/#{id}")
71
+ params = { apiKey: @key }
72
+ uri.query = URI.encode_www_form(params)
73
+ respond = Net::HTTP.get_response(uri)
74
+ data = JSON.parse(respond.body) if respond.is_a?(Net::HTTPSuccess)
75
+ candidate = data["data"]["results"]["caleg"][0]
76
+ return Pemilu::Candidate.new(
77
+ id: candidate["id"],
78
+ name: candidate["nama"],
79
+ gender: candidate["jenis_kelamin"],
80
+ religion: candidate["agama"],
81
+ birthplace: candidate["tempat_lahir"],
82
+ date_of_birth: candidate["tanggal_lahir"],
83
+ marital_status: candidate["status_perkawinan"],
84
+ name_of_couples: candidate["nama_pasangan"],
85
+ number_of_children: candidate["jumlah_anak"].to_i,
86
+ village: candidate["kelurahan_tinggal"],
87
+ sub_district: candidate["kecamatan_tinggal"],
88
+ district: candidate["kab_kota_tinggal"],
89
+ province: {
90
+ "id" => candidate["provinsi"]["id"],
91
+ "name" => candidate["provinsi"]["nama"]
92
+ },
93
+ electoral_district: {
94
+ "id" => candidate["dapil"]["id"],
95
+ "name" => candidate["dapil"]["nama"]
96
+ },
97
+ election_year: candidate["tahun"],
98
+ legislative_body: candidate["lembaga"],
99
+ party: {
100
+ "id" => candidate["partai"]["id"].to_i,
101
+ "name" => candidate["partai"]["nama"]
102
+ },
103
+ ordinal: candidate["urutan"],
104
+ picture: candidate["foto_url"],
105
+ educations: candidate["riwayat_pendidikan"],
106
+ jobs: candidate["riwayat_pekerjaan"],
107
+ organizations: candidate["riwayat_organisasi"])
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,31 @@
1
+ module Pemilu
2
+ class Candidate
3
+ attr_reader :id, :name, :gender, :religion, :birthplace, :date_of_birth, :marital_status, :name_of_couples, :number_of_children, :village, :sub_district, :district, :province, :electoral_district, :election_year, :legislative_body, :party, :ordinal, :picture, :educations, :jobs, :organizations
4
+
5
+ def initialize( id: nil, name: nil, gender: nil, religion: nil, birthplace: nil, date_of_birth: nil, marital_status: nil, name_of_couples: nil, number_of_children: nil, village: nil, sub_district: nil, district: nil, province: nil, electoral_district: nil, election_year: nil, legislative_body: nil, party: nil, ordinal: nil, picture: nil, educations: nil, jobs: nil, organizations: nil)
6
+
7
+ @id = id
8
+ @name = name
9
+ @gender = gender
10
+ @religion = religion
11
+ @birthplace = birthplace
12
+ @date_of_birth = date_of_birth
13
+ @marital_status = marital_status
14
+ @name_of_couples = name_of_couples
15
+ @number_of_children = number_of_children
16
+ @village = village
17
+ @sub_district = sub_district
18
+ @district = district
19
+ @province = province
20
+ @electoral_district = electoral_district
21
+ @election_year = election_year
22
+ @legislative_body = legislative_body
23
+ @party = party
24
+ @ordinal = ordinal
25
+ @picture = picture
26
+ @educations = educations
27
+ @jobs = jobs
28
+ @organizations = organizations
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,9 @@
1
+ class Hash
2
+ def id
3
+ self["id"]
4
+ end
5
+
6
+ def name
7
+ self["name"]
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module Pemilu
2
+ VERSION = "0.5.1"
3
+ end
data/lib/pemilu.rb ADDED
@@ -0,0 +1,10 @@
1
+ require "net/http"
2
+ require "json"
3
+ require "pemilu/version"
4
+ require "pemilu/api"
5
+ require "pemilu/candidate"
6
+ require "pemilu/hash_extension"
7
+
8
+ module Pemilu
9
+ # Your code goes here...
10
+ end
data/pemilu.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pemilu/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "pemilu"
8
+ spec.version = Pemilu::VERSION
9
+ spec.authors = ["Bayu Aldi Yansyah"]
10
+ spec.email = ["bayualdiyansyah@gmail.com"]
11
+ spec.summary = %q{A beautiful Ruby interface for Pemilu APIs (pemiluapi.org)}
12
+ spec.description = %q{A beautiful Ruby interface for Pemilu APIs}
13
+ spec.homepage = "https://github.com/pyk/pemilu"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.5"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+ end
@@ -0,0 +1,75 @@
1
+ require "spec_helper"
2
+
3
+ module Pemilu
4
+ describe API do
5
+ describe "new" do
6
+ let(:pemilu) { Pemilu::API.new(key: "06ec082d057daa3d310b27483cc3962e") }
7
+
8
+ it "should an object" do
9
+ pemilu.class.should be_a(Object)
10
+ end
11
+
12
+ end
13
+
14
+ describe "#key" do
15
+ let(:pemilu) { Pemilu::API.new(key: "06ec082d057daa3d310b27483cc3962e") }
16
+
17
+ it "should return 06ec082d057daa3d310b27483cc3962e" do
18
+ expect(pemilu.key).to eq("06ec082d057daa3d310b27483cc3962e")
19
+ end
20
+ end
21
+
22
+ describe "#candidates" do
23
+ let(:pemilu) { Pemilu::API.new(key: "06ec082d057daa3d310b27483cc3962e") }
24
+
25
+ it "should return an array" do
26
+ pemilu.candidates.should be_a(Array)
27
+ end
28
+
29
+ it "should return an array of Pemilu::Candidate object" do
30
+ pemilu.candidates.each do |candidate|
31
+ expect(candidate.class).to eq(Pemilu::Candidate)
32
+ end
33
+ end
34
+ end
35
+
36
+ describe "#candidate" do
37
+ let(:pemilu) { Pemilu::API.new(key: "06ec082d057daa3d310b27483cc3962e") }
38
+
39
+ it "should return one Pemilu::Candidate object" do
40
+ caleg = pemilu.candidate("1101-00-0000-0102")
41
+ expect(caleg.class).to eq(Pemilu::Candidate)
42
+ end
43
+
44
+ it "should return details of candidate" do
45
+ caleg = pemilu.candidate("1101-00-0000-0102")
46
+ expect(caleg.id).to eq("1101-00-0000-0102")
47
+ expect(caleg.name).to eq("Drs. H. T. PRIBADI")
48
+ expect(caleg.gender).to eq("L")
49
+ expect(caleg.religion).to eq("ISLAM")
50
+ expect(caleg.birthplace).to eq("BANDA ACEH")
51
+ expect(caleg.date_of_birth).to eq("1950-01-19")
52
+ expect(caleg.marital_status).to eq("KAWIN")
53
+ expect(caleg.name_of_couples).to eq("CUT MUSRI")
54
+ expect(caleg.number_of_children).to eq(3)
55
+ expect(caleg.village).to eq("GEUCEU INIEM")
56
+ expect(caleg.sub_district).to eq("BANDA RAYA")
57
+ expect(caleg.district).to eq("KOTA BANDA ACEH")
58
+ expect(caleg.province.id).to eq(11)
59
+ expect(caleg.province.name).to eq("Aceh")
60
+ expect(caleg.electoral_district.id).to eq("1101-00-0000")
61
+ expect(caleg.electoral_district.name).to eq("Aceh I")
62
+ expect(caleg.election_year).to eq(2014)
63
+ expect(caleg.legislative_body).to eq("DPR")
64
+ expect(caleg.party.id).to eq(1)
65
+ expect(caleg.party.name).to eq("Partai NasDem")
66
+ expect(caleg.ordinal).to eq(2)
67
+ expect(caleg.picture).to eq("http://dct.kpu.go.id/images/foto/DPR/1101.%20ACEH%20I/01.%20NASDEM/02.%20DRS.%20H.T.%20PRIBADI.JPG")
68
+ expect(caleg.educations.class).to eq(Array)
69
+ expect(caleg.jobs.class).to eq(Array)
70
+ expect(caleg.organizations.class).to eq(Array)
71
+ end
72
+ end
73
+
74
+ end
75
+ end
@@ -0,0 +1,75 @@
1
+ require "spec_helper"
2
+
3
+ module Pemilu
4
+ describe Candidate do
5
+ describe "new" do
6
+ let(:candidate) { Pemilu::Candidate.new(
7
+ id: 1,
8
+ name: "bayu aldi yansyah",
9
+ gender: "L",
10
+ religion: "ISLAM",
11
+ birthplace: "Nganjuk",
12
+ date_of_birth: "07 Oktober 1996",
13
+ marital_status: "Di PHPin",
14
+ name_of_couples: "Pevita Pearce",
15
+ number_of_children: 100,
16
+ village: "Keloposepuluh",
17
+ sub_district: "Sukodono",
18
+ district: "Sidoarjo",
19
+ province: {
20
+ "id" => 2,
21
+ "name" => "Jawa Timur"
22
+ },
23
+ electoral_district: {
24
+ "id" => 20,
25
+ "name" => "Sidoarjo"
26
+ },
27
+ election_year: 2014,
28
+ legislative_body: "DPR",
29
+ party: "Partai Asolole jos!",
30
+ ordinal: 1,
31
+ picture: "hhtp://foto.jpg",
32
+ educations: [{
33
+ "id" => 9,
34
+ "ringkasan" => "Test"
35
+ }],
36
+ jobs: [{
37
+ "id" => 9,
38
+ "ringkasan" => "Test"
39
+ }],
40
+ organizations: [{
41
+ "id" => 9,
42
+ "ringkasan" => "Test"
43
+ }] ) }
44
+
45
+ it "should return a correct candidate details" do
46
+ expect(candidate.id).to eq(1)
47
+ expect(candidate.name).to eq("bayu aldi yansyah")
48
+ expect(candidate.gender).to eq("L")
49
+ expect(candidate.religion).to eq("ISLAM")
50
+ expect(candidate.birthplace).to eq("Nganjuk")
51
+ expect(candidate.date_of_birth).to eq("07 Oktober 1996")
52
+ expect(candidate.marital_status).to eq("Di PHPin")
53
+ expect(candidate.name_of_couples).to eq("Pevita Pearce")
54
+ expect(candidate.number_of_children).to eq(100)
55
+ expect(candidate.number_of_children).to eq(100)
56
+ expect(candidate.village).to eq("Keloposepuluh")
57
+ expect(candidate.sub_district).to eq("Sukodono")
58
+ expect(candidate.district).to eq("Sidoarjo")
59
+ expect(candidate.province.id).to eq(2)
60
+ expect(candidate.province.name).to eq("Jawa Timur")
61
+ expect(candidate.electoral_district.id).to eq(20)
62
+ expect(candidate.electoral_district.name).to eq("Sidoarjo")
63
+ expect(candidate.election_year).to eq(2014)
64
+ expect(candidate.legislative_body).to eq("DPR")
65
+ expect(candidate.party).to eq("Partai Asolole jos!")
66
+ expect(candidate.ordinal).to eq(1)
67
+ expect(candidate.picture).to eq("hhtp://foto.jpg")
68
+ expect(candidate.educations.class).to eq(Array)
69
+ expect(candidate.jobs.class).to eq(Array)
70
+ expect(candidate.organizations.class).to eq(Array)
71
+ end
72
+
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,18 @@
1
+ require "pemilu"
2
+ # This file was generated by the `rspec --init` command. Conventionally, all
3
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
4
+ # Require this file using `require "spec_helper"` to ensure that it is only
5
+ # loaded once.
6
+ #
7
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
8
+ RSpec.configure do |config|
9
+ config.treat_symbols_as_metadata_keys_with_true_values = true
10
+ config.run_all_when_everything_filtered = true
11
+ config.filter_run :focus
12
+
13
+ # Run specs in random order to surface order dependencies. If you find an
14
+ # order dependency and want to debug it, you can fix the order by providing
15
+ # the seed, which is printed after each run.
16
+ # --seed 1234
17
+ config.order = 'random'
18
+ end
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pemilu
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Bayu Aldi Yansyah
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: A beautiful Ruby interface for Pemilu APIs
56
+ email:
57
+ - bayualdiyansyah@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - Gemfile
65
+ - LICENSE.txt
66
+ - README.md
67
+ - Rakefile
68
+ - lib/pemilu.rb
69
+ - lib/pemilu/api.rb
70
+ - lib/pemilu/candidate.rb
71
+ - lib/pemilu/hash_extension.rb
72
+ - lib/pemilu/version.rb
73
+ - pemilu.gemspec
74
+ - spec/pemilu/api_spec.rb
75
+ - spec/pemilu/candidate_spec.rb
76
+ - spec/spec_helper.rb
77
+ homepage: https://github.com/pyk/pemilu
78
+ licenses:
79
+ - MIT
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 2.2.0
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: A beautiful Ruby interface for Pemilu APIs (pemiluapi.org)
101
+ test_files:
102
+ - spec/pemilu/api_spec.rb
103
+ - spec/pemilu/candidate_spec.rb
104
+ - spec/spec_helper.rb