bahtera 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.rvmrc +48 -0
- data/Gemfile +18 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +8 -0
- data/bahtera.gemspec +26 -0
- data/lib/bahtera.rb +56 -0
- data/lib/bahtera/kata.rb +65 -0
- data/lib/bahtera/version.rb +3 -0
- data/spec/bahtera_spec.rb +65 -0
- data/spec/fixtures/bahtera_kata_error_404.json +9 -0
- data/spec/fixtures/bahtera_kata_invalid.json +7 -0
- data/spec/fixtures/bahtera_kata_valid.json +1 -0
- data/spec/lib/bahtera/kata_spec.rb +59 -0
- data/spec/spec_helper.rb +52 -0
- metadata +139 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
+
# development environment upon cd'ing into the directory
|
5
|
+
|
6
|
+
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
|
7
|
+
# Only full ruby name is supported here, for short names use:
|
8
|
+
# echo "rvm use 1.9.3" > .rvmrc
|
9
|
+
environment_id="ruby-1.9.3-p392@bahtera"
|
10
|
+
|
11
|
+
# Uncomment the following lines if you want to verify rvm version per project
|
12
|
+
# rvmrc_rvm_version="1.18.15 (stable)" # 1.10.1 seams as a safe start
|
13
|
+
# eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
|
14
|
+
# echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
|
15
|
+
# return 1
|
16
|
+
# }
|
17
|
+
|
18
|
+
# First we attempt to load the desired environment directly from the environment
|
19
|
+
# file. This is very fast and efficient compared to running through the entire
|
20
|
+
# CLI and selector. If you want feedback on which environment was used then
|
21
|
+
# insert the word 'use' after --create as this triggers verbose mode.
|
22
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
|
23
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
|
24
|
+
then
|
25
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
26
|
+
[[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
|
27
|
+
\. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
|
28
|
+
else
|
29
|
+
# If the environment file has not yet been created, use the RVM CLI to select.
|
30
|
+
rvm --create "$environment_id" || {
|
31
|
+
echo "Failed to create RVM environment '${environment_id}'."
|
32
|
+
return 1
|
33
|
+
}
|
34
|
+
fi
|
35
|
+
|
36
|
+
# If you use bundler, this might be useful to you:
|
37
|
+
# if [[ -s Gemfile ]] && {
|
38
|
+
# ! builtin command -v bundle >/dev/null ||
|
39
|
+
# builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
|
40
|
+
# }
|
41
|
+
# then
|
42
|
+
# printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
|
43
|
+
# gem install bundler
|
44
|
+
# fi
|
45
|
+
# if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
|
46
|
+
# then
|
47
|
+
# bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
|
48
|
+
# fi
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in bahtera.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
|
7
|
+
# To use in development
|
8
|
+
group :development do
|
9
|
+
gem 'guard'
|
10
|
+
gem 'guard-rspec'
|
11
|
+
gem 'pry', require: true
|
12
|
+
gem 'pry-debugger'
|
13
|
+
|
14
|
+
if RbConfig::CONFIG['host_os'] =~ /darwin/
|
15
|
+
gem 'growl'
|
16
|
+
gem 'rb-fsevent', require: false
|
17
|
+
end
|
18
|
+
end
|
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Adinda Praditya
|
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,29 @@
|
|
1
|
+
# Bahtera
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'bahtera'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install bahtera
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bahtera.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'bahtera/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "bahtera"
|
8
|
+
gem.version = Bahtera::VERSION
|
9
|
+
gem.authors = ["Adinda Praditya"]
|
10
|
+
gem.email = ["apraditya@gmail.com"]
|
11
|
+
gem.description = %q{The unofficial Ruby library for accessing Kateglo Bahtera API, an online dictionary, thesaurus and glossarium for bahasa Indonesia}
|
12
|
+
gem.summary = %q{Kateglo Bahtera Ruby gem}
|
13
|
+
gem.homepage = "https://github.com/apraditya/bahtera"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'rspec'
|
22
|
+
|
23
|
+
gem.add_runtime_dependency 'addressable'
|
24
|
+
gem.add_runtime_dependency 'multi_json'
|
25
|
+
|
26
|
+
end
|
data/lib/bahtera.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'bahtera/version'
|
2
|
+
require 'bahtera/kata'
|
3
|
+
require 'net/http'
|
4
|
+
require 'addressable/uri'
|
5
|
+
require 'multi_json'
|
6
|
+
|
7
|
+
module Bahtera
|
8
|
+
class RequestError < StandardError; end
|
9
|
+
|
10
|
+
class << self
|
11
|
+
BASE_URL = "http://kateglo.bahtera.org/api.php"
|
12
|
+
BASE_PARAMS = { format: 'json' }
|
13
|
+
|
14
|
+
def lookup(lemma)
|
15
|
+
@lemma = lemma
|
16
|
+
if @lemma =~ /\s/
|
17
|
+
@lemma.split(' ').map do |l|
|
18
|
+
begin
|
19
|
+
lookup(l)
|
20
|
+
rescue MultiJson::LoadError
|
21
|
+
end
|
22
|
+
end
|
23
|
+
else
|
24
|
+
@uri = Addressable::URI.parse BASE_URL
|
25
|
+
@uri.query_values = BASE_PARAMS.merge(phrase: @lemma)
|
26
|
+
response = Net::HTTP.get_response(@uri)
|
27
|
+
|
28
|
+
unless response.kind_of? Net::HTTPSuccess
|
29
|
+
raise Bahtera::RequestError, "HTTP Response: #{response.code} #{response.message}"
|
30
|
+
end
|
31
|
+
parse_response(response.body)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
private
|
37
|
+
def parse_response(response)
|
38
|
+
begin
|
39
|
+
parsed_json = MultiJson.load response
|
40
|
+
Kata.new parsed_json
|
41
|
+
rescue MultiJson::LoadError
|
42
|
+
LemmaNotFound.new("No entry found for '#{@lemma}'", @uri)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class LemmaNotFound
|
48
|
+
attr_reader :message, :uri
|
49
|
+
|
50
|
+
def initialize(message, uri)
|
51
|
+
@message = message
|
52
|
+
@uri = uri
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/lib/bahtera/kata.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
module Bahtera
|
2
|
+
class BaseKata
|
3
|
+
def initialize(hash)
|
4
|
+
assign_attribute_names hash
|
5
|
+
end
|
6
|
+
|
7
|
+
|
8
|
+
private
|
9
|
+
def assign_attribute_names(hash_response)
|
10
|
+
attributes = hash_response.keys
|
11
|
+
self.class.class_eval { attr_reader *attributes }
|
12
|
+
attributes.each do |attr_name|
|
13
|
+
if hash_response[attr_name]
|
14
|
+
instance_variable_set("@#{attr_name}",
|
15
|
+
hash_response[attr_name])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Kata < BaseKata
|
22
|
+
def initialize(hash)
|
23
|
+
assign_attribute_names hash['kateglo']
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
private
|
28
|
+
def assign_attribute_names(hash_response)
|
29
|
+
super hash_response
|
30
|
+
%w( root definition reference proverbs translations all_relation ).each do |attribute_name|
|
31
|
+
override_array_hash(attribute_name)
|
32
|
+
self.class.send :define_method, "has_#{attribute_name}?" do
|
33
|
+
send(attribute_name).any?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
assign_relations if relation.any?
|
37
|
+
end
|
38
|
+
|
39
|
+
def assign_relations
|
40
|
+
relation_hashes = relation.keys.map do |rel_type|
|
41
|
+
relation[rel_type] if relation[rel_type].is_a?(Hash)
|
42
|
+
end.compact
|
43
|
+
relation_hashes.each do |relation_hash|
|
44
|
+
if relation_hash['name']
|
45
|
+
method_name = relation_hash.delete('name').downcase.gsub(/\s/, '_')
|
46
|
+
self.class.send :define_method, method_name.to_sym do
|
47
|
+
relation_hash.values.map do |hash_attr|
|
48
|
+
(hash_attr.is_a?(Hash))? BaseKata.new(hash_attr) : hash_attr
|
49
|
+
end
|
50
|
+
end
|
51
|
+
self.class.send :define_method, "has_#{method_name}?" do
|
52
|
+
self.send(method_name).any?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def override_array_hash(attr_name)
|
59
|
+
new_value = send(attr_name).map do |hash_attr|
|
60
|
+
BaseKata.new(hash_attr)
|
61
|
+
end
|
62
|
+
instance_variable_set("@#{attr_name}", new_value)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Bahtera do
|
4
|
+
describe '#lookup' do
|
5
|
+
it 'should respond to #lookup' do
|
6
|
+
Bahtera.should respond_to(:lookup)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should send request to the correct address' do
|
10
|
+
word = 'makan'
|
11
|
+
Net::HTTP.should_receive(:get_response).
|
12
|
+
with(Addressable::URI.parse("http://kateglo.bahtera.org/api.php?format=json&phrase=#{word}")).
|
13
|
+
and_return(stub_net_http_success('bahtera_kata_valid'))
|
14
|
+
Bahtera.lookup word
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#lookup valid words' do
|
18
|
+
before do
|
19
|
+
stub_net_http('bahtera_kata_valid')
|
20
|
+
end
|
21
|
+
|
22
|
+
it '#lookup a valid word should return an instance of Bahtera::Kata' do
|
23
|
+
word = 'kata'
|
24
|
+
Bahtera.lookup(word).should be_a(Bahtera::Kata)
|
25
|
+
end
|
26
|
+
|
27
|
+
it '#lookup many valid words should return an array of Bahtera::Kata instances' do
|
28
|
+
results = Bahtera.lookup('minum makan belajar')
|
29
|
+
results.should be_a(Array)
|
30
|
+
results.all? { |r| r.is_a?(Bahtera::Kata) }.should be_true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
it '#lookup invalid words should raise MultiJson::LoadError' do
|
35
|
+
stub_net_http('bahtera_kata_invalid')
|
36
|
+
word = 'invalid_kata'
|
37
|
+
Bahtera.lookup(word).should be_a(Bahtera::LemmaNotFound)
|
38
|
+
end
|
39
|
+
|
40
|
+
it '#lookup mix of invalid & valid words returns an array of LemmaNotFound & Kata instances' do
|
41
|
+
word_hash = {
|
42
|
+
kata: 'bahtera_kata_valid',
|
43
|
+
gwempor: 'bahtera_kata_invalid'
|
44
|
+
}
|
45
|
+
word_hash.each do |word, filename|
|
46
|
+
Net::HTTP.stub(:get_response).
|
47
|
+
with(Addressable::URI.parse("http://kateglo.bahtera.org/api.php?format=json&phrase=#{word}")).
|
48
|
+
and_return(stub_net_http_success(filename))
|
49
|
+
end
|
50
|
+
results = Bahtera.lookup('kata gwempor')
|
51
|
+
results.should be_a(Array)
|
52
|
+
results.first.should be_a(Bahtera::Kata)
|
53
|
+
results.last.should be_a(Bahtera::LemmaNotFound)
|
54
|
+
end
|
55
|
+
|
56
|
+
describe 'should raise Bahtera::RequestError when' do
|
57
|
+
it 'returning request is a client error' do
|
58
|
+
stub_net_http(nil, '404')
|
59
|
+
expect {
|
60
|
+
Bahtera.lookup('that_throws_error')
|
61
|
+
}.to raise_error(Bahtera::RequestError)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
2
|
+
<html><head>
|
3
|
+
<title>404 Not Found</title>
|
4
|
+
</head><body>
|
5
|
+
<h1>Not Found</h1>
|
6
|
+
<p>The requested URL /api.php was not found on this server.</p>
|
7
|
+
<hr>
|
8
|
+
<address>Apache Server at invalidkateglo.bahtera.org Port 80</address>
|
9
|
+
</body></html>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<p>Antarmuka pemrograman aplikasi (API) yang (masih) sangat sederhana ini dibuat untuk memungkinkan para pengembang memanfaatkan data yang disediakan oleh Kateglo. Untuk tahap awal, baru modul kamus yang dapat diakses dengan API ini.</p>
|
2
|
+
<p>Gunakan format</p>
|
3
|
+
<blockquote>http://bahtera.org/kateglo/api.php?format=[xml|json]&phrase=[lema_yang_dicari].</blockquote></p>
|
4
|
+
<p>Contoh:</p>
|
5
|
+
<blockquote><a href="api.php?format=xml&phrase=kata">http://bahtera.org/kateglo/api.php?format=xml&phrase=kata</a><br /><a href="api.php?format=json&phrase=bahtera">http://bahtera.org/kateglo/api.php?format=json&phrase=bahtera</a></blockquote>
|
6
|
+
<p>Silakan pelajari sendiri dulu keluaran XML atau JSON yang dihasilkan karena dokumentasi masih belum sempat dibuat.</p>
|
7
|
+
<p>API ini disediakan dengan apa adanya, dan ada kemungkinan akan berubah format.</p>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"kateglo":{"phrase":"makan","phrase_type":"r","lex_class":"v","roget_class":null,"pronounciation":null,"etymology":null,"ref_source":"KBBI3","def_count":"16","actual_phrase":null,"info":null,"notes":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","created":"2009-06-01 07:55:05","creator":null,"proverb_updated":null,"wikipedia_updated":"2009-06-02 19:00:31","kbbi_updated":"2009-06-11 13:46:30","lex_class_name":"Verba","roget_name":null,"ref_source_name":"KBBI III","lex_class_ref":"verba","root":[],"definition":[{"def_uid":"122565","phrase":"makan","def_num":"1","lex_class":null,"def_text":"memasukkan makanan pokok ke dalam mulut serta mengunyah dan menelannya","discipline":null,"sample":"mereka -- tiga kali sehari","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122566","phrase":"makan","def_num":"2","lex_class":null,"def_text":"memasukkan sesuatu ke dalam mulut, kemudian mengunyah dan menelannya","discipline":null,"sample":"ia sedang -- pisang","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122567","phrase":"makan","def_num":"3","lex_class":null,"def_text":"memasukkan sesuatu ke dalam mulut dan mengunyah-ngunyahnya","discipline":null,"sample":"Nenek sedang -- sirih","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122568","phrase":"makan","def_num":"4","lex_class":null,"def_text":"memasukkan sesuatu ke dalam mulut dan menelannya","discipline":null,"sample":"pasien harus -- pil","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122569","phrase":"makan","def_num":"5","lex_class":null,"def_text":"mengisap","discipline":null,"sample":"-- candu","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122570","phrase":"makan","def_num":"6","lex_class":null,"def_text":"memakai; memerlukan; menghabiskan (waktu, biaya, dsb)","discipline":null,"sample":"pembangunan jembatan ini -- waktu lama; upacara adat itu -- ongkos besar","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122571","phrase":"makan","def_num":"7","lex_class":null,"def_text":"menyerang, mematikan, mengambil (dalam permainan catur)","discipline":null,"sample":"gajah -- bidak putih","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122572","phrase":"makan","def_num":"8","lex_class":null,"def_text":"bekerja sebagaimana mestinya (tentang rem, gigi roda, dsb)","discipline":null,"sample":null,"see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122573","phrase":"makan","def_num":"9","lex_class":null,"def_text":"melukai","discipline":null,"sample":"air keras itu -- kulit","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122574","phrase":"makan","def_num":"10","lex_class":null,"def_text":"mengenai; menembus","discipline":null,"sample":"ditembaknya tiga kali, tetapi tidak --","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122575","phrase":"makan","def_num":"11","lex_class":null,"def_text":"memperoleh sesuatu; mencapai sesuatu","discipline":null,"sample":"layarnya tidak -- , tidak memperoleh angin; sauhnya dapat -- , mencapai dasar laut","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122576","phrase":"makan","def_num":"12","lex_class":null,"def_text":"(dapat) masuk (tentang barang yang dimasukkan ke lubang, ke air)","discipline":null,"sample":"kapal ini lima meter -- nya ke dalam air","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122577","phrase":"makan","def_num":"13","lex_class":null,"def_text":"mengambil; mempergunakan dsb secara tidak sah (milik orang lain atau negara)","discipline":"ki","sample":"ia telah -- pupuk milik koperasi","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122578","phrase":"makan","def_num":"14","lex_class":null,"def_text":"meniduri perempuan (biasanya dalam arti hubungan gelap)","discipline":"ki","sample":"pemuda itu -- anak gadis tetangganya sampai hamil","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":null},{"def_uid":"122579","phrase":"makan","def_num":"15","lex_class":"n","def_text":"rezeki","discipline":"ki","sample":"memberi --; diberi --","see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":"nomina"},{"def_uid":"122583","phrase":"makan","def_num":"16","lex_class":"n","def_text":"tempat berlindungnya hati dan kesehatan jasmani, lenyapnya keragu-raguan yang disebabkan oleh kesibukan kerja jasmani","discipline":null,"sample":null,"see":null,"updated":"2010-03-10 14:42:51","updater":"ivanlanin","wikipedia_updated":null,"lex_class_ref":"nomina"}],"reference":[{"ext_uid":"7315","phrase":"makan","label":"Makan - Wikipedia bahasa Indonesia","url":"http:\/\/id.wikipedia.org\/wiki\/Makan","updated":"2010-03-10 14:42:51","updater":"ivanlanin"},{"ext_uid":"7316","phrase":"makan","label":"Eating - Wikipedia bahasa Inggris","url":"http:\/\/en.wikipedia.org\/wiki\/Eating","updated":"2010-03-10 14:42:51","updater":"ivanlanin"}],"proverbs":[{"prv_uid":"2425","phrase":"makan","proverb":"kalau guru makan berdiri, maka murid makan berlari","meaning":"kelakuan murid mencontoh kelakuan guru, biasanya dl hal yg tidak baik","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2426","phrase":"makan","proverb":"kenyang (banyak) makan garam","meaning":"sudah berpengalaman dl hidup","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2420","phrase":"makan","proverb":"makan bersabitkan","meaning":"orang yg senang, tiada bekerja dan dapat makan minum yg cukup, msl dr istri yg kaya dan pemurah","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2421","phrase":"makan","proverb":"makan bubur panas-panas","meaning":"terlalu berharap akan beroleh rezeki, lalu bertindak tergesa-gesa sehingga kecewa jadinya","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2422","phrase":"makan","proverb":"makan hati berulam jantung","meaning":"bersusah hati krn perbuatan salah seorang teman karib","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2423","phrase":"makan","proverb":"makan sudah terhidang, jamu belum jua datang","meaning":" gadis yg telah besar, sudah patut bersuami, tetapi orang belum ada yg datang meminangnya","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2424","phrase":"makan","proverb":"makan upas berulam racun","meaning":"orang yg dl kesusahan dan duka cita krn diliputi marabahaya yg besar","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2427","phrase":"makan","proverb":"sudah makan, bismillah","meaning":"suatu pekerjaan atau rundingan yg dilakukan terbalik, jadi tidak mengikuti aturan","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2428","phrase":"makan","proverb":"tempat makan jangan dibenahi","meaning":"kita jangan berbuat tidak senonoh di tempat kita menumpang; jangan berbuat jahat kpd orang yg berlaku baik kpd kita","prv_type":"1","updated":null,"updater":null},{"prv_uid":"2429","phrase":"makan","proverb":"tidak makan siku-siku","meaning":"1 cakap orang yg berleleran saja, tiada langsung ke tujuannya; 2 tidak baik; tidak patut","prv_type":"1","updated":null,"updater":null}],"translations":[{"lemma":"makan","ref_source":"ebsoft","translation":"1 eat, eat a meal. 2 take, swallow, ingest. 3 meal, food. 4 destroy, consume. 5 take, require, consume. 6 make a living by (in set phrases). 7 hit, strike. 8 in working condition. 9 range of a weapon,"},{"lemma":"makan","ref_source":"gkamus","translation":"1 eat, eat a meal. 2 take, swallow, ingest. 3 meal, food. 4 destroy, consume. 5 take, require, consume. 6 make a living by (in set phrases). 7 hit, strike. 8 in working condition. 9 range of a weapon, draw of a ship."}],"relation":{"relation_direct":110,"relation_reverse":10,"s":{"0":{"rel_uid":"106373","root_phrase":"makan","related_phrase":"melukai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},"1":{"rel_uid":"106371","root_phrase":"makan","related_phrase":"memakai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},"2":{"rel_uid":"106372","root_phrase":"makan","related_phrase":"memerlukan","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},"3":{"rel_uid":"106374","root_phrase":"makan","related_phrase":"mengenai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"n"},"4":{"rel_uid":"106370","root_phrase":"makan","related_phrase":"mengisap","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},"5":{"rel_uid":"106377","root_phrase":"makan","related_phrase":"rezeki","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"n"},"6":{"rel_uid":"195066","root_phrase":"makan","related_phrase":"santap","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},"name":"Sinonim","7":{"root_phrase":"makan","related_phrase":"mencekik","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"8":{"root_phrase":"makan","related_phrase":"caplok","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"9":{"root_phrase":"makan","related_phrase":"mencengam","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"10":{"root_phrase":"makan","related_phrase":"ciak","rel_type":"s","rel_type_name":"Sinonim","lex_class":"n"},"11":{"root_phrase":"makan","related_phrase":"dahar","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"12":{"root_phrase":"makan","related_phrase":"melepaskan lapar","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"13":{"root_phrase":"makan","related_phrase":"mimik","rel_type":"s","rel_type_name":"Sinonim","lex_class":"n"},"14":{"root_phrase":"makan","related_phrase":"isi perut","rel_type":"s","rel_type_name":"Sinonim","lex_class":"n"},"15":{"root_phrase":"makan","related_phrase":"bersantap","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"},"16":{"root_phrase":"makan","related_phrase":"berboga","rel_type":"s","rel_type_name":"Sinonim","lex_class":"v"}},"a":{"name":"Antonim"},"r":{"name":"Berkaitan"},"d":{"0":{"rel_uid":"106444","root_phrase":"makan","related_phrase":"dimakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"1":{"rel_uid":"106450","root_phrase":"makan","related_phrase":"dimakan pakaian","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"2":{"rel_uid":"106452","root_phrase":"makan","related_phrase":"dimakan peluru","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"3":{"rel_uid":"106454","root_phrase":"makan","related_phrase":"dimakan sumpah","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"4":{"rel_uid":"106455","root_phrase":"makan","related_phrase":"dimakan tikus","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"5":{"rel_uid":"106456","root_phrase":"makan","related_phrase":"dimakan umur","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"6":{"rel_uid":"106457","root_phrase":"makan","related_phrase":"dimakan usia","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"7":{"rel_uid":"106442","root_phrase":"makan","related_phrase":"makan-makan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"8":{"rel_uid":"106492","root_phrase":"makan","related_phrase":"makan-makanan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"9":{"rel_uid":"106466","root_phrase":"makan","related_phrase":"makanan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"10":{"rel_uid":"106468","root_phrase":"makan","related_phrase":"makanan alami","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"11":{"rel_uid":"106469","root_phrase":"makan","related_phrase":"makanan anak ayam","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"12":{"rel_uid":"106470","root_phrase":"makan","related_phrase":"makanan babi","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"13":{"rel_uid":"106471","root_phrase":"makan","related_phrase":"makanan beku","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"14":{"rel_uid":"106472","root_phrase":"makan","related_phrase":"makanan berserat","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"15":{"rel_uid":"106473","root_phrase":"makan","related_phrase":"makanan buatan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"16":{"rel_uid":"106474","root_phrase":"makan","related_phrase":"makanan cepat saji","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"17":{"rel_uid":"106475","root_phrase":"makan","related_phrase":"makanan cepat siap","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"18":{"rel_uid":"106476","root_phrase":"makan","related_phrase":"makanan dimurnikan sebagian","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"19":{"rel_uid":"106477","root_phrase":"makan","related_phrase":"makanan empuk","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"20":{"rel_uid":"106478","root_phrase":"makan","related_phrase":"makanan hijau","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"21":{"rel_uid":"106479","root_phrase":"makan","related_phrase":"makanan kaleng","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"22":{"rel_uid":"106480","root_phrase":"makan","related_phrase":"makanan kecil","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"23":{"rel_uid":"106482","root_phrase":"makan","related_phrase":"makanan laut","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"24":{"rel_uid":"106483","root_phrase":"makan","related_phrase":"makanan mengapung","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"25":{"rel_uid":"106484","root_phrase":"makan","related_phrase":"makanan peluru","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"26":{"rel_uid":"106485","root_phrase":"makan","related_phrase":"makanan praktis","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"27":{"rel_uid":"106486","root_phrase":"makan","related_phrase":"makanan ringan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"28":{"rel_uid":"106488","root_phrase":"makan","related_phrase":"makanan serba guna","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"29":{"rel_uid":"106489","root_phrase":"makan","related_phrase":"makanan siap saji","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"30":{"rel_uid":"106490","root_phrase":"makan","related_phrase":"makanan tambahan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"31":{"rel_uid":"106491","root_phrase":"makan","related_phrase":"makanan tunagiri","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"32":{"rel_uid":"106443","root_phrase":"makan","related_phrase":"memakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"33":{"rel_uid":"106458","root_phrase":"makan","related_phrase":"memakani","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"34":{"rel_uid":"106459","root_phrase":"makan","related_phrase":"memakankan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"35":{"rel_uid":"106493","root_phrase":"makan","related_phrase":"pemakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"36":{"rel_uid":"106494","root_phrase":"makan","related_phrase":"pemakan anak","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"37":{"rel_uid":"106495","root_phrase":"makan","related_phrase":"pemakan bawang","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"38":{"rel_uid":"106514","root_phrase":"makan","related_phrase":"pemakan daging","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},"39":{"rel_uid":"106519","root_phrase":"makan","related_phrase":"sepemakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"adv"},"40":{"rel_uid":"106523","root_phrase":"makan","related_phrase":"sepemakan sirih","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"adv"},"41":{"rel_uid":"106460","root_phrase":"makan","related_phrase":"termakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},"name":"Turunan"},"c":{"0":{"rel_uid":"257342","root_phrase":"makan","related_phrase":"bosor makan","rel_type":"c","updated":"2010-03-24 18:08:40","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"adj"},"1":{"rel_uid":"254504","root_phrase":"makan","related_phrase":"kamar makan","rel_type":"c","updated":"2010-03-17 19:00:32","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"2":{"rel_uid":"247582","root_phrase":"makan","related_phrase":"kereta makan","rel_type":"c","updated":"2010-03-12 04:08:41","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"3":{"rel_uid":"257615","root_phrase":"makan","related_phrase":"kursi makan","rel_type":"c","updated":"2010-03-25 20:49:42","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"4":{"rel_uid":"244450","root_phrase":"makan","related_phrase":"lemari makan","rel_type":"c","updated":"2010-03-10 18:15:43","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"5":{"rel_uid":"106380","root_phrase":"makan","related_phrase":"makan ampun","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"6":{"rel_uid":"106381","root_phrase":"makan","related_phrase":"makan angin","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"7":{"rel_uid":"106382","root_phrase":"makan","related_phrase":"makan arwah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"8":{"rel_uid":"106383","root_phrase":"makan","related_phrase":"makan asam garam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"9":{"rel_uid":"106384","root_phrase":"makan","related_phrase":"makan ayapan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"10":{"rel_uid":"106387","root_phrase":"makan","related_phrase":"makan bawang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"11":{"rel_uid":"106392","root_phrase":"makan","related_phrase":"makan bebas","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"12":{"rel_uid":"106395","root_phrase":"makan","related_phrase":"makan benak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"13":{"rel_uid":"106397","root_phrase":"makan","related_phrase":"makan berpantang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"14":{"rel_uid":"106400","root_phrase":"makan","related_phrase":"makan berulam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"15":{"rel_uid":"106401","root_phrase":"makan","related_phrase":"makan besar","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"16":{"rel_uid":"106404","root_phrase":"makan","related_phrase":"makan biaya","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"17":{"rel_uid":"106406","root_phrase":"makan","related_phrase":"makan darah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"18":{"rel_uid":"106407","root_phrase":"makan","related_phrase":"makan dati","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"19":{"rel_uid":"106408","root_phrase":"makan","related_phrase":"makan dawai","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"20":{"rel_uid":"106409","root_phrase":"makan","related_phrase":"makan dedak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"21":{"rel_uid":"106410","root_phrase":"makan","related_phrase":"makan diri","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"22":{"rel_uid":"106411","root_phrase":"makan","related_phrase":"makan duit","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"23":{"rel_uid":"106412","root_phrase":"makan","related_phrase":"makan emas","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"24":{"rel_uid":"106413","root_phrase":"makan","related_phrase":"makan gaji","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"25":{"rel_uid":"106414","root_phrase":"makan","related_phrase":"makan hak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"26":{"rel_uid":"106415","root_phrase":"makan","related_phrase":"makan jangat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"27":{"rel_uid":"106416","root_phrase":"makan","related_phrase":"makan kawan sendiri","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"28":{"rel_uid":"106417","root_phrase":"makan","related_phrase":"makan kawat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"29":{"rel_uid":"106418","root_phrase":"makan","related_phrase":"makan kerawat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"30":{"rel_uid":"106419","root_phrase":"makan","related_phrase":"makan keringat orang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"31":{"rel_uid":"106420","root_phrase":"makan","related_phrase":"makan kuli","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"32":{"rel_uid":"106421","root_phrase":"makan","related_phrase":"makan malam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"33":{"rel_uid":"106422","root_phrase":"makan","related_phrase":"makan ongkos","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"34":{"rel_uid":"106423","root_phrase":"makan","related_phrase":"makan pagi","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"35":{"rel_uid":"106425","root_phrase":"makan","related_phrase":"makan pena","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"36":{"rel_uid":"106426","root_phrase":"makan","related_phrase":"makan riba","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"37":{"rel_uid":"106427","root_phrase":"makan","related_phrase":"makan sekolah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"38":{"rel_uid":"106429","root_phrase":"makan","related_phrase":"makan sepinggan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"39":{"rel_uid":"106430","root_phrase":"makan","related_phrase":"makan siang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"40":{"rel_uid":"106431","root_phrase":"makan","related_phrase":"makan sogok","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"41":{"rel_uid":"106432","root_phrase":"makan","related_phrase":"makan suap","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"42":{"rel_uid":"106433","root_phrase":"makan","related_phrase":"makan sumpah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"43":{"rel_uid":"106434","root_phrase":"makan","related_phrase":"makan tali","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"44":{"rel_uid":"106435","root_phrase":"makan","related_phrase":"makan tanah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"45":{"rel_uid":"106436","root_phrase":"makan","related_phrase":"makan tangan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"46":{"rel_uid":"106437","root_phrase":"makan","related_phrase":"makan tidur","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"47":{"rel_uid":"106438","root_phrase":"makan","related_phrase":"makan tulang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"48":{"rel_uid":"106439","root_phrase":"makan","related_phrase":"makan uang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"49":{"rel_uid":"106440","root_phrase":"makan","related_phrase":"makan upah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"50":{"rel_uid":"106441","root_phrase":"makan","related_phrase":"makan waktu","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},"51":{"rel_uid":"261315","root_phrase":"makan","related_phrase":"mencari makan","rel_type":"c","updated":"2010-04-06 05:12:35","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},"52":{"rel_uid":"247240","root_phrase":"makan","related_phrase":"menyosoh makan","rel_type":"c","updated":"2010-03-11 22:27:34","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},"53":{"rel_uid":"260537","root_phrase":"makan","related_phrase":"mogok makan","rel_type":"c","updated":"2010-04-02 23:12:47","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},"54":{"rel_uid":"260648","root_phrase":"makan","related_phrase":"perkakas makan","rel_type":"c","updated":"2010-04-03 10:55:34","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"55":{"rel_uid":"263356","root_phrase":"makan","related_phrase":"pisau makan","rel_type":"c","updated":"2010-04-18 02:32:27","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"56":{"rel_uid":"252887","root_phrase":"makan","related_phrase":"rumah makan","rel_type":"c","updated":"2010-03-15 19:35:13","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"57":{"rel_uid":"255342","root_phrase":"makan","related_phrase":"sendok makan","rel_type":"c","updated":"2010-03-19 09:48:32","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"58":{"rel_uid":"249693","root_phrase":"makan","related_phrase":"servis makan","rel_type":"c","updated":"2010-03-13 17:09:01","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"59":{"rel_uid":"258058","root_phrase":"makan","related_phrase":"turun makan","rel_type":"c","updated":"2010-03-27 11:42:50","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},"60":{"rel_uid":"261876","root_phrase":"makan","related_phrase":"uang makan","rel_type":"c","updated":"2010-04-09 04:56:18","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},"name":"Gabungan kata"},"pb":{"name":"Peribahasa"},"relation_all":120},"all_relation":[{"rel_uid":"106373","root_phrase":"makan","related_phrase":"melukai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},{"rel_uid":"106371","root_phrase":"makan","related_phrase":"memakai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},{"rel_uid":"106372","root_phrase":"makan","related_phrase":"memerlukan","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},{"rel_uid":"106374","root_phrase":"makan","related_phrase":"mengenai","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"n"},{"rel_uid":"106370","root_phrase":"makan","related_phrase":"mengisap","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},{"rel_uid":"106377","root_phrase":"makan","related_phrase":"rezeki","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"n"},{"rel_uid":"195066","root_phrase":"makan","related_phrase":"santap","rel_type":"s","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Sinonim","lex_class":"v"},{"rel_uid":"106444","root_phrase":"makan","related_phrase":"dimakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106450","root_phrase":"makan","related_phrase":"dimakan pakaian","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106452","root_phrase":"makan","related_phrase":"dimakan peluru","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106454","root_phrase":"makan","related_phrase":"dimakan sumpah","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106455","root_phrase":"makan","related_phrase":"dimakan tikus","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106456","root_phrase":"makan","related_phrase":"dimakan umur","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106457","root_phrase":"makan","related_phrase":"dimakan usia","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106442","root_phrase":"makan","related_phrase":"makan-makan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106492","root_phrase":"makan","related_phrase":"makan-makanan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106466","root_phrase":"makan","related_phrase":"makanan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106468","root_phrase":"makan","related_phrase":"makanan alami","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106469","root_phrase":"makan","related_phrase":"makanan anak ayam","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106470","root_phrase":"makan","related_phrase":"makanan babi","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106471","root_phrase":"makan","related_phrase":"makanan beku","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106472","root_phrase":"makan","related_phrase":"makanan berserat","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106473","root_phrase":"makan","related_phrase":"makanan buatan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106474","root_phrase":"makan","related_phrase":"makanan cepat saji","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106475","root_phrase":"makan","related_phrase":"makanan cepat siap","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106476","root_phrase":"makan","related_phrase":"makanan dimurnikan sebagian","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106477","root_phrase":"makan","related_phrase":"makanan empuk","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106478","root_phrase":"makan","related_phrase":"makanan hijau","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106479","root_phrase":"makan","related_phrase":"makanan kaleng","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106480","root_phrase":"makan","related_phrase":"makanan kecil","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106482","root_phrase":"makan","related_phrase":"makanan laut","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106483","root_phrase":"makan","related_phrase":"makanan mengapung","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106484","root_phrase":"makan","related_phrase":"makanan peluru","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106485","root_phrase":"makan","related_phrase":"makanan praktis","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106486","root_phrase":"makan","related_phrase":"makanan ringan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106488","root_phrase":"makan","related_phrase":"makanan serba guna","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106489","root_phrase":"makan","related_phrase":"makanan siap saji","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106490","root_phrase":"makan","related_phrase":"makanan tambahan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106491","root_phrase":"makan","related_phrase":"makanan tunagiri","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106443","root_phrase":"makan","related_phrase":"memakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106458","root_phrase":"makan","related_phrase":"memakani","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106459","root_phrase":"makan","related_phrase":"memakankan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"106493","root_phrase":"makan","related_phrase":"pemakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106494","root_phrase":"makan","related_phrase":"pemakan anak","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106495","root_phrase":"makan","related_phrase":"pemakan bawang","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106514","root_phrase":"makan","related_phrase":"pemakan daging","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"n"},{"rel_uid":"106519","root_phrase":"makan","related_phrase":"sepemakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"adv"},{"rel_uid":"106523","root_phrase":"makan","related_phrase":"sepemakan sirih","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"adv"},{"rel_uid":"106460","root_phrase":"makan","related_phrase":"termakan","rel_type":"d","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Turunan","lex_class":"v"},{"rel_uid":"257342","root_phrase":"makan","related_phrase":"bosor makan","rel_type":"c","updated":"2010-03-24 18:08:40","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"adj"},{"rel_uid":"254504","root_phrase":"makan","related_phrase":"kamar makan","rel_type":"c","updated":"2010-03-17 19:00:32","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"247582","root_phrase":"makan","related_phrase":"kereta makan","rel_type":"c","updated":"2010-03-12 04:08:41","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"257615","root_phrase":"makan","related_phrase":"kursi makan","rel_type":"c","updated":"2010-03-25 20:49:42","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"244450","root_phrase":"makan","related_phrase":"lemari makan","rel_type":"c","updated":"2010-03-10 18:15:43","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"106380","root_phrase":"makan","related_phrase":"makan ampun","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106381","root_phrase":"makan","related_phrase":"makan angin","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106382","root_phrase":"makan","related_phrase":"makan arwah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106383","root_phrase":"makan","related_phrase":"makan asam garam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106384","root_phrase":"makan","related_phrase":"makan ayapan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106387","root_phrase":"makan","related_phrase":"makan bawang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106392","root_phrase":"makan","related_phrase":"makan bebas","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106395","root_phrase":"makan","related_phrase":"makan benak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106397","root_phrase":"makan","related_phrase":"makan berpantang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106400","root_phrase":"makan","related_phrase":"makan berulam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106401","root_phrase":"makan","related_phrase":"makan besar","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106404","root_phrase":"makan","related_phrase":"makan biaya","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106406","root_phrase":"makan","related_phrase":"makan darah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106407","root_phrase":"makan","related_phrase":"makan dati","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106408","root_phrase":"makan","related_phrase":"makan dawai","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106409","root_phrase":"makan","related_phrase":"makan dedak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106410","root_phrase":"makan","related_phrase":"makan diri","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106411","root_phrase":"makan","related_phrase":"makan duit","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106412","root_phrase":"makan","related_phrase":"makan emas","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106413","root_phrase":"makan","related_phrase":"makan gaji","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106414","root_phrase":"makan","related_phrase":"makan hak","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106415","root_phrase":"makan","related_phrase":"makan jangat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106416","root_phrase":"makan","related_phrase":"makan kawan sendiri","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106417","root_phrase":"makan","related_phrase":"makan kawat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106418","root_phrase":"makan","related_phrase":"makan kerawat","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106419","root_phrase":"makan","related_phrase":"makan keringat orang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106420","root_phrase":"makan","related_phrase":"makan kuli","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106421","root_phrase":"makan","related_phrase":"makan malam","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106422","root_phrase":"makan","related_phrase":"makan ongkos","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106423","root_phrase":"makan","related_phrase":"makan pagi","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106425","root_phrase":"makan","related_phrase":"makan pena","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106426","root_phrase":"makan","related_phrase":"makan riba","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106427","root_phrase":"makan","related_phrase":"makan sekolah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106429","root_phrase":"makan","related_phrase":"makan sepinggan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106430","root_phrase":"makan","related_phrase":"makan siang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106431","root_phrase":"makan","related_phrase":"makan sogok","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106432","root_phrase":"makan","related_phrase":"makan suap","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106433","root_phrase":"makan","related_phrase":"makan sumpah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106434","root_phrase":"makan","related_phrase":"makan tali","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106435","root_phrase":"makan","related_phrase":"makan tanah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106436","root_phrase":"makan","related_phrase":"makan tangan","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106437","root_phrase":"makan","related_phrase":"makan tidur","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106438","root_phrase":"makan","related_phrase":"makan tulang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106439","root_phrase":"makan","related_phrase":"makan uang","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106440","root_phrase":"makan","related_phrase":"makan upah","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"106441","root_phrase":"makan","related_phrase":"makan waktu","rel_type":"c","updated":"2010-03-10 14:42:51","updater":"ivanlanin","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"261315","root_phrase":"makan","related_phrase":"mencari makan","rel_type":"c","updated":"2010-04-06 05:12:35","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"247240","root_phrase":"makan","related_phrase":"menyosoh makan","rel_type":"c","updated":"2010-03-11 22:27:34","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"260537","root_phrase":"makan","related_phrase":"mogok makan","rel_type":"c","updated":"2010-04-02 23:12:47","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"260648","root_phrase":"makan","related_phrase":"perkakas makan","rel_type":"c","updated":"2010-04-03 10:55:34","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"263356","root_phrase":"makan","related_phrase":"pisau makan","rel_type":"c","updated":"2010-04-18 02:32:27","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"252887","root_phrase":"makan","related_phrase":"rumah makan","rel_type":"c","updated":"2010-03-15 19:35:13","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"255342","root_phrase":"makan","related_phrase":"sendok makan","rel_type":"c","updated":"2010-03-19 09:48:32","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"249693","root_phrase":"makan","related_phrase":"servis makan","rel_type":"c","updated":"2010-03-13 17:09:01","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"},{"rel_uid":"258058","root_phrase":"makan","related_phrase":"turun makan","rel_type":"c","updated":"2010-03-27 11:42:50","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"v"},{"rel_uid":"261876","root_phrase":"makan","related_phrase":"uang makan","rel_type":"c","updated":"2010-04-09 04:56:18","updater":"rooter","rel_type_name":"Gabungan kata","lex_class":"n"}]}}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Bahtera::Kata do
|
4
|
+
describe '#initialize' do
|
5
|
+
it 'should initialize from valid json string' do
|
6
|
+
Bahtera::Kata.new(parsed_fixture_file('bahtera_kata_valid')).should be_a(Bahtera::Kata)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should raise MultiJson::LoadError when initializing from invalid json string' do
|
10
|
+
expect {
|
11
|
+
Bahtera::Kata.new(parsed_fixture_file('bahtera_kata_invalid'))
|
12
|
+
}.to raise_error(MultiJson::LoadError)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'assigning attribute with values' do
|
16
|
+
parsed_response = parsed_fixture_file('bahtera_kata_valid')
|
17
|
+
before do
|
18
|
+
@expected_attributes = parsed_response['kateglo']
|
19
|
+
@kata = Bahtera::Kata.new(parsed_response)
|
20
|
+
end
|
21
|
+
|
22
|
+
array_attributes = {}
|
23
|
+
parsed_response['kateglo'].keys.each do |attr_name|
|
24
|
+
if parsed_response['kateglo'][attr_name].is_a?(Array)
|
25
|
+
array_attributes[attr_name] = parsed_response['kateglo'][attr_name]
|
26
|
+
next
|
27
|
+
end
|
28
|
+
it "should assign ##{attr_name} correctly" do
|
29
|
+
@kata.send(attr_name).should == @expected_attributes[attr_name]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
array_attributes.each do |attr_name, array|
|
34
|
+
it "##{attr_name} should transform to the array of Bahtera::BaseKata" do
|
35
|
+
@kata.send(attr_name).all? do |entry|
|
36
|
+
entry.is_a?(Bahtera::BaseKata)
|
37
|
+
end.should be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should respond_to #has_#{attr_name}?" do
|
41
|
+
method_name = "has_#{attr_name}?"
|
42
|
+
@kata.should respond_to(method_name)
|
43
|
+
@kata.send(method_name).should == @expected_attributes[attr_name].any?
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe 'assigning relation methods' do
|
48
|
+
%w( sinonim antonim berkaitan turunan gabungan_kata peribahasa).each do |attr_name|
|
49
|
+
has_method_name = "has_#{attr_name}?"
|
50
|
+
|
51
|
+
it "should respond to ##{attr_name} & ##{has_method_name}" do
|
52
|
+
@kata.should respond_to(attr_name)
|
53
|
+
@kata.should respond_to(has_method_name)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'bahtera'
|
2
|
+
|
3
|
+
class SocketStub
|
4
|
+
def initialize(body)
|
5
|
+
@body = body
|
6
|
+
end
|
7
|
+
|
8
|
+
def closed?
|
9
|
+
false
|
10
|
+
end
|
11
|
+
|
12
|
+
def read_all(from)
|
13
|
+
@body
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def stub_net_http(filename = nil, code = nil)
|
18
|
+
response = if filename && code.nil?
|
19
|
+
stub_net_http_success(filename)
|
20
|
+
else
|
21
|
+
stub_net_http_error(code)
|
22
|
+
end
|
23
|
+
Net::HTTP.stub(:get_response).and_return(response)
|
24
|
+
end
|
25
|
+
|
26
|
+
def stub_net_http_success(filename)
|
27
|
+
body = fixture_file(filename)
|
28
|
+
response = Net::HTTPOK.new(Net::HTTP.version_1_2, '200', '')
|
29
|
+
attach_response_body(response, body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def stub_net_http_error(code)
|
33
|
+
body = fixture_file("bahtera_kata_error_#{code}")
|
34
|
+
response = Net::HTTPClientError.new(Net::HTTP.version_1_2, code, '')
|
35
|
+
attach_response_body(response, body)
|
36
|
+
end
|
37
|
+
|
38
|
+
def attach_response_body(response, body)
|
39
|
+
response.reading_body(SocketStub.new(body), true){}
|
40
|
+
response.body = body
|
41
|
+
response
|
42
|
+
end
|
43
|
+
|
44
|
+
def parsed_fixture_file(filename)
|
45
|
+
MultiJson.load fixture_file(filename)
|
46
|
+
end
|
47
|
+
|
48
|
+
def fixture_file(filename)
|
49
|
+
file_path = File.join(File.expand_path(File.dirname(__FILE__)),
|
50
|
+
'fixtures', "#{filename}.json" )
|
51
|
+
File.read file_path
|
52
|
+
end
|
metadata
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bahtera
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Adinda Praditya
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: addressable
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: multi_json
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
description: The unofficial Ruby library for accessing Kateglo Bahtera API, an online
|
79
|
+
dictionary, thesaurus and glossarium for bahasa Indonesia
|
80
|
+
email:
|
81
|
+
- apraditya@gmail.com
|
82
|
+
executables: []
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files: []
|
85
|
+
files:
|
86
|
+
- .gitignore
|
87
|
+
- .rvmrc
|
88
|
+
- Gemfile
|
89
|
+
- Guardfile
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- Rakefile
|
93
|
+
- bahtera.gemspec
|
94
|
+
- lib/bahtera.rb
|
95
|
+
- lib/bahtera/kata.rb
|
96
|
+
- lib/bahtera/version.rb
|
97
|
+
- spec/bahtera_spec.rb
|
98
|
+
- spec/fixtures/bahtera_kata_error_404.json
|
99
|
+
- spec/fixtures/bahtera_kata_invalid.json
|
100
|
+
- spec/fixtures/bahtera_kata_valid.json
|
101
|
+
- spec/lib/bahtera/kata_spec.rb
|
102
|
+
- spec/spec_helper.rb
|
103
|
+
homepage: https://github.com/apraditya/bahtera
|
104
|
+
licenses: []
|
105
|
+
post_install_message:
|
106
|
+
rdoc_options: []
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ! '>='
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
hash: -3553642502716914400
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
hash: -3553642502716914400
|
127
|
+
requirements: []
|
128
|
+
rubyforge_project:
|
129
|
+
rubygems_version: 1.8.25
|
130
|
+
signing_key:
|
131
|
+
specification_version: 3
|
132
|
+
summary: Kateglo Bahtera Ruby gem
|
133
|
+
test_files:
|
134
|
+
- spec/bahtera_spec.rb
|
135
|
+
- spec/fixtures/bahtera_kata_error_404.json
|
136
|
+
- spec/fixtures/bahtera_kata_invalid.json
|
137
|
+
- spec/fixtures/bahtera_kata_valid.json
|
138
|
+
- spec/lib/bahtera/kata_spec.rb
|
139
|
+
- spec/spec_helper.rb
|