@@ -7,7 +7,7 @@ yang bisa kita pakai sesuai kebutuhan kita.
7
7
Standar distribusi library di ruby adalah dengan menggunakan format yang
8
8
bernama * gem* .
9
9
10
- ### Leveraging Libraries
10
+ ### Instalasi & menggunakan gems
11
11
12
12
Sebuah gem adalah suatu kumpulan file library beserta metadatanya yang
13
13
dikompresi dengan gzip, biasanya dengan ekstensi ` .gem ` .
@@ -18,14 +18,116 @@ perintah
18
18
$ gem install <nama gem>
19
19
```
20
20
21
+ contoh, kita akan menginstall builder, library untuk membuat dokumen xml:
22
+
23
+ ```
24
+ $ gem install builder
25
+ ```
26
+
21
27
Untuk menggunakan library, baik yang bawaan ruby maupun yang diinstall
22
28
menggunakan gem, kita menggunakan method ` require "<nama file>" ` .
23
29
24
- ### RubyGems & Bundler
30
+ ``` ruby
31
+ require " rubygems" # tidak dibutuhkan untuk ruby 1.9 ke atas
32
+ require " builder"
33
+
34
+ xml = Builder ::XmlMarkup .new
35
+ xml.person do
36
+ xml.name " Slamet Riyadi"
37
+ xml.location " Indonesia"
38
+ end
39
+ ```
40
+
41
+ ### Bundler
42
+
43
+ Untuk memanage library-library yang digunakan pada suatu project, kita dapat
44
+ menggunakan bundler.
45
+
46
+ Pada root directory suatu project, kita mencatat semua library yang kita gunakan
47
+ beserta versi masing-masing pada file dengan nama * Gemfile* .
25
48
49
+ ```
50
+ mkdir my_project
51
+ cd my_project
52
+ touch Gemfile
53
+ ```
54
+
55
+ ``` ruby
56
+ # Gemfile
57
+ source ' http://rubygems.org'
58
+
59
+ gem ' rails' , ' 3.2.3'
60
+ gem " authlogic"
61
+ gem ' will_paginate' , :git => " git://github.com/bukalapak/will_paginate.git"
62
+ gem " simple_form" , " ~> 2.0"
63
+ gem " whenever" , :require => false
64
+ ```
26
65
27
- ## Packaging Programs and Libraries for Distribution
66
+ Untuk menginstall library yang dibutuhkan, kita menggunakan perintah ` bundle install ` .
67
+ Bundler kemudian akan membuat file dengan nama * Gemfile.lock* yang mencatat versi
68
+ library yang digunakan saat ini, sehingga ketika kita menjalankan ` bundle install `
69
+ pada lain waktu, kita akan mendapatkan library dengan versi yang sama.
28
70
71
+ Kemudian pada project kita, kita me-load library menggunakan bundler sebagai berikut:
72
+
73
+ ``` ruby
74
+ require " rubygems"
75
+ require " bundler/setup"
76
+
77
+ require " authlogic"
78
+ ```
79
+
80
+ ### Packaging Programs and Libraries for Distribution
81
+
82
+ Untuk membuat kode kita menjadi gem, kita akan menggunakan bundler untuk menyiapkan
83
+ package dan strukturnya, sebagai berikut:
84
+
85
+ ```
86
+ bundle gem namagem
87
+ ```
88
+
89
+ yang akan menghasilkan struktur direktori di mana kita bisa meletakkan file-file library kita.
90
+ Kemudian kita edit file namagem.gemspec dengan data yang sesuai:
91
+
92
+ ``` ruby
93
+ # -*- encoding: utf-8 -*-
94
+ $: .push File .expand_path(" ../lib" , __FILE__ )
95
+ require " namagem/version"
96
+
97
+ Gem ::Specification .new do |s |
98
+ s.name = " namagem"
99
+ s.version = Namagem ::VERSION
100
+ s.platform = Gem ::Platform ::RUBY
101
+ s.authors = [" Nugroho Herucahyono" ]
102
+
103
+ s.homepage = " "
104
+ s.summary = %q{ Gem tanpa fitur}
105
+ s.description = %q{ Gem tanpa fitur.}
106
+
107
+ s.add_development_dependency " rspec"
108
+
109
+ s.rubyforge_project = " namagem"
110
+
111
+ s.files = ` git ls-files` .split(" \n " )
112
+ s.test_files = ` git ls-files -- {test,spec,features}/*` .split(" \n " )
113
+ s.executables = ` git ls-files -- bin/*` .split(" \n " ).map{ |f | File .basename(f) }
114
+ s.require_paths = [" lib" ]
115
+ end
116
+ ```
117
+
118
+ Selanjutnya kita dapat melakukan build gem tersebut.
119
+
120
+ ```
121
+ gem build namagem.gemspec
122
+ ```
123
+
124
+ Pada umumnya, library ruby opensource dipublish oleh penulisnya ke rubygems.org,
125
+ sehingga siapapun dapat menginstall dan menggunakannya dengan mudah.
126
+ Kita dapat mempublish gem kita dengan perintah sebagai berikut:
127
+
128
+ ```
129
+ gem push namagem-0.0.1.gem
130
+ ```
29
131
30
132
## Testing
31
133
0 commit comments