awesome_print 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/CHANGELOG +8 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/LICENSE +1 -1
- data/README.md +253 -219
- data/lib/ap.rb +1 -1
- data/lib/awesome_print.rb +4 -1
- data/lib/awesome_print/core_ext/array.rb +1 -1
- data/lib/awesome_print/core_ext/class.rb +1 -1
- data/lib/awesome_print/core_ext/kernel.rb +7 -2
- data/lib/awesome_print/core_ext/logger.rb +1 -1
- data/lib/awesome_print/core_ext/method.rb +1 -1
- data/lib/awesome_print/core_ext/object.rb +1 -1
- data/lib/awesome_print/core_ext/string.rb +1 -1
- data/lib/awesome_print/ext/action_view.rb +1 -1
- data/lib/awesome_print/ext/active_record.rb +5 -2
- data/lib/awesome_print/ext/active_support.rb +1 -1
- data/lib/awesome_print/ext/mongo_mapper.rb +1 -1
- data/lib/awesome_print/ext/mongoid.rb +2 -2
- data/lib/awesome_print/ext/no_brainer.rb +58 -0
- data/lib/awesome_print/ext/nokogiri.rb +1 -1
- data/lib/awesome_print/ext/ripple.rb +72 -0
- data/lib/awesome_print/ext/sequel.rb +57 -0
- data/lib/awesome_print/formatter.rb +15 -7
- data/lib/awesome_print/inspector.rb +1 -1
- data/lib/awesome_print/version.rb +2 -2
- data/spec/formats_spec.rb +47 -0
- data/spec/misc_spec.rb +19 -3
- data/spec/spec_helper.rb +1 -1
- metadata +48 -62
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
1.2.0 <-- NOTE: This is the *last* release supporting Ruby < v1.9.3 and Rails < v3.
|
2
|
+
- Added Sequel ORM plugin (Jonathan Davies)
|
3
|
+
- Added Ripple plugin (Ruby modeling layer for Riak, Scott Hyndman)
|
4
|
+
- Added NoBrainer plugin (Ruby ORM for RethinkDB, Nicolas Viennot)
|
5
|
+
- Added formatting for Ruby set objects (Richard Hall)
|
6
|
+
- Fixed HTML formatting (Mike McQuaid)
|
7
|
+
- Other minor bugs and enhancements
|
8
|
+
|
1
9
|
1.1.0
|
2
10
|
- Objects are no longer recursively formatted by default. Reenable by using :raw => true option.
|
3
11
|
- ap(object) now returns nil when running under IRB or Pry
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
awesome_print (1.0
|
4
|
+
awesome_print (1.1.0)
|
5
5
|
|
6
6
|
GEM
|
7
|
-
remote:
|
7
|
+
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
diff-lcs (1.1.
|
9
|
+
diff-lcs (1.1.3)
|
10
10
|
fakefs (0.3.2)
|
11
|
-
rspec (2.
|
12
|
-
rspec-core (~> 2.
|
13
|
-
rspec-expectations (~> 2.
|
14
|
-
rspec-mocks (~> 2.
|
15
|
-
rspec-core (2.
|
16
|
-
rspec-expectations (2.
|
17
|
-
diff-lcs (~> 1.1.
|
18
|
-
rspec-mocks (2.
|
11
|
+
rspec (2.11.0)
|
12
|
+
rspec-core (~> 2.11.0)
|
13
|
+
rspec-expectations (~> 2.11.0)
|
14
|
+
rspec-mocks (~> 2.11.0)
|
15
|
+
rspec-core (2.11.1)
|
16
|
+
rspec-expectations (2.11.2)
|
17
|
+
diff-lcs (~> 1.1.3)
|
18
|
+
rspec-mocks (2.11.2)
|
19
19
|
|
20
20
|
PLATFORMS
|
21
21
|
ruby
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -3,6 +3,10 @@ Awesome Print is a Ruby library that pretty prints Ruby objects in full color
|
|
3
3
|
exposing their internal structure with proper indentation. Rails ActiveRecord
|
4
4
|
objects and usage within Rails templates are supported via included mixins.
|
5
5
|
|
6
|
+
__NOTE__: awesome_print v1.2.0 is the last release supporting Ruby versions
|
7
|
+
prior to v1.9.3 and Rails versions prior to v3.0. The upcoming awesome_print
|
8
|
+
v2.0 will *require* Ruby v1.9.3 or later and Rails v3.0 or later.
|
9
|
+
|
6
10
|
### Installation ###
|
7
11
|
# Installing as Ruby gem
|
8
12
|
$ gem install awesome_print
|
@@ -12,236 +16,251 @@ objects and usage within Rails templates are supported via included mixins.
|
|
12
16
|
|
13
17
|
### Usage ###
|
14
18
|
|
15
|
-
|
16
|
-
|
19
|
+
```ruby
|
20
|
+
require "awesome_print"
|
21
|
+
ap object, options = {}
|
22
|
+
```
|
17
23
|
|
18
24
|
Default options:
|
19
25
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
26
|
+
```ruby
|
27
|
+
:indent => 4, # Indent using 4 spaces.
|
28
|
+
:index => true, # Display array indices.
|
29
|
+
:html => false, # Use ANSI color codes rather than HTML.
|
30
|
+
:multiline => true, # Display in multiple lines.
|
31
|
+
:plain => false, # Use colors.
|
32
|
+
:raw => false, # Do not recursively format object instance variables.
|
33
|
+
:sort_keys => false, # Do not sort hash keys.
|
34
|
+
:limit => false, # Limit large output for arrays and hashes. Set to a boolean or integer.
|
35
|
+
:color => {
|
36
|
+
:args => :pale,
|
37
|
+
:array => :white,
|
38
|
+
:bigdecimal => :blue,
|
39
|
+
:class => :yellow,
|
40
|
+
:date => :greenish,
|
41
|
+
:falseclass => :red,
|
42
|
+
:fixnum => :blue,
|
43
|
+
:float => :blue,
|
44
|
+
:hash => :pale,
|
45
|
+
:keyword => :cyan,
|
46
|
+
:method => :purpleish,
|
47
|
+
:nilclass => :red,
|
48
|
+
:rational => :blue,
|
49
|
+
:string => :yellowish,
|
50
|
+
:struct => :pale,
|
51
|
+
:symbol => :cyanish,
|
52
|
+
:time => :greenish,
|
53
|
+
:trueclass => :green,
|
54
|
+
:variable => :cyanish
|
55
|
+
}
|
56
|
+
```
|
49
57
|
|
50
58
|
Supported color names:
|
51
59
|
|
52
|
-
|
53
|
-
|
60
|
+
```ruby
|
61
|
+
:gray, :red, :green, :yellow, :blue, :purple, :cyan, :white
|
62
|
+
:black, :redish, :greenish, :yellowish, :blueish, :purpleish, :cyanish, :pale
|
63
|
+
```
|
54
64
|
|
55
65
|
### Examples ###
|
56
|
-
$ cat > 1.rb
|
57
|
-
require "awesome_print"
|
58
|
-
data = [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ]
|
59
|
-
ap data
|
60
|
-
^D
|
61
|
-
$ ruby 1.rb
|
62
|
-
[
|
63
|
-
[0] false,
|
64
|
-
[1] 42,
|
65
|
-
[2] [
|
66
|
-
[0] "forty",
|
67
|
-
[1] "two"
|
68
|
-
],
|
69
|
-
[3] {
|
70
|
-
:class => Time < Object,
|
71
|
-
:now => Fri Apr 02 19:55:53 -0700 2010,
|
72
|
-
:distance => 4.2e+43
|
73
|
-
}
|
74
|
-
]
|
75
|
-
|
76
|
-
$ cat > 2.rb
|
77
|
-
require "awesome_print"
|
78
|
-
data = { :now => Time.now, :class => Time.now.class, :distance => 42e42 }
|
79
|
-
ap data, :indent => -2 # <-- Left align hash keys.
|
80
|
-
^D
|
81
|
-
$ ruby 2.rb
|
82
|
-
{
|
83
|
-
:class => Time < Object,
|
84
|
-
:now => Fri Apr 02 19:55:53 -0700 2010,
|
85
|
-
:distance => 4.2e+43
|
86
|
-
}
|
87
66
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
[
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
]
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
[
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
67
|
+
```ruby
|
68
|
+
$ cat > 1.rb
|
69
|
+
require "awesome_print"
|
70
|
+
data = [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ]
|
71
|
+
ap data
|
72
|
+
^D
|
73
|
+
$ ruby 1.rb
|
74
|
+
[
|
75
|
+
[0] false,
|
76
|
+
[1] 42,
|
77
|
+
[2] [
|
78
|
+
[0] "forty",
|
79
|
+
[1] "two"
|
80
|
+
],
|
81
|
+
[3] {
|
82
|
+
:class => Time < Object,
|
83
|
+
:now => Fri Apr 02 19:55:53 -0700 2010,
|
84
|
+
:distance => 4.2e+43
|
85
|
+
}
|
86
|
+
]
|
87
|
+
|
88
|
+
$ cat > 2.rb
|
89
|
+
require "awesome_print"
|
90
|
+
data = { :now => Time.now, :class => Time.now.class, :distance => 42e42 }
|
91
|
+
ap data, :indent => -2 # <-- Left align hash keys.
|
92
|
+
^D
|
93
|
+
$ ruby 2.rb
|
94
|
+
{
|
95
|
+
:class => Time < Object,
|
96
|
+
:now => Fri Apr 02 19:55:53 -0700 2010,
|
97
|
+
:distance => 4.2e+43
|
98
|
+
}
|
99
|
+
|
100
|
+
$ cat > 3.rb
|
101
|
+
require "awesome_print"
|
102
|
+
data = [ false, 42, %w(forty two) ]
|
103
|
+
data << data # <-- Nested array.
|
104
|
+
ap data, :multiline => false
|
105
|
+
^D
|
106
|
+
$ ruby 3.rb
|
107
|
+
[ false, 42, [ "forty", "two" ], [...] ]
|
108
|
+
|
109
|
+
$ cat > 4.rb
|
110
|
+
require "awesome_print"
|
111
|
+
class Hello
|
112
|
+
def self.world(x, y, z = nil, &blk)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
ap Hello.methods - Class.methods
|
116
|
+
^D
|
117
|
+
$ ruby 4.rb
|
118
|
+
[
|
119
|
+
[0] world(x, y, *z, &blk) Hello
|
120
|
+
]
|
121
|
+
|
122
|
+
$ cat > 5.rb
|
123
|
+
require "awesome_print"
|
124
|
+
ap (''.methods - Object.methods).grep(/!/)
|
125
|
+
^D
|
126
|
+
$ ruby 5.rb
|
127
|
+
[
|
128
|
+
[ 0] capitalize!() String
|
129
|
+
[ 1] chomp!(*arg1) String
|
130
|
+
[ 2] chop!() String
|
131
|
+
[ 3] delete!(*arg1) String
|
132
|
+
[ 4] downcase!() String
|
133
|
+
[ 5] encode!(*arg1) String
|
134
|
+
[ 6] gsub!(*arg1) String
|
135
|
+
[ 7] lstrip!() String
|
136
|
+
[ 8] next!() String
|
137
|
+
[ 9] reverse!() String
|
138
|
+
[10] rstrip!() String
|
139
|
+
[11] slice!(*arg1) String
|
140
|
+
[12] squeeze!(*arg1) String
|
141
|
+
[13] strip!() String
|
142
|
+
[14] sub!(*arg1) String
|
143
|
+
[15] succ!() String
|
144
|
+
[16] swapcase!() String
|
145
|
+
[17] tr!(arg1, arg2) String
|
146
|
+
[18] tr_s!(arg1, arg2) String
|
147
|
+
[19] upcase!() String
|
148
|
+
]
|
149
|
+
|
150
|
+
$ cat > 6.rb
|
151
|
+
require "awesome_print"
|
152
|
+
ap 42 == ap(42)
|
153
|
+
^D
|
154
|
+
$ ruby 6.rb
|
155
|
+
42
|
156
|
+
true
|
157
|
+
$ cat 7.rb
|
158
|
+
require "awesome_print"
|
159
|
+
some_array = (1..1000).to_a
|
160
|
+
ap some_array, :limit => true
|
161
|
+
^D
|
162
|
+
$ ruby 7.rb
|
163
|
+
[
|
164
|
+
[ 0] 1,
|
165
|
+
[ 1] 2,
|
166
|
+
[ 2] 3,
|
167
|
+
[ 3] .. [996],
|
168
|
+
[997] 998,
|
169
|
+
[998] 999,
|
170
|
+
[999] 1000
|
171
|
+
]
|
172
|
+
|
173
|
+
$ cat 8.rb
|
174
|
+
require "awesome_print"
|
175
|
+
some_array = (1..1000).to_a
|
176
|
+
ap some_array, :limit => 5
|
177
|
+
^D
|
178
|
+
$ ruby 8.rb
|
179
|
+
[
|
180
|
+
[ 0] 1,
|
181
|
+
[ 1] 2,
|
182
|
+
[ 2] .. [997],
|
183
|
+
[998] 999,
|
184
|
+
[999] 1000
|
185
|
+
]
|
186
|
+
```
|
174
187
|
|
175
188
|
### Example (Rails console) ###
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
:
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
:
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
]
|
213
|
-
rails> ap Account
|
214
|
-
class Account < ActiveRecord::Base {
|
215
|
-
:id => :integer,
|
216
|
-
:user_id => :integer,
|
217
|
-
:assigned_to => :integer,
|
218
|
-
:name => :string,
|
219
|
-
:access => :string,
|
220
|
-
:website => :string,
|
221
|
-
:toll_free_phone => :string,
|
222
|
-
:phone => :string,
|
223
|
-
:fax => :string,
|
224
|
-
:deleted_at => :datetime,
|
225
|
-
:created_at => :datetime,
|
226
|
-
:updated_at => :datetime,
|
227
|
-
:email => :string,
|
228
|
-
:background_info => :string
|
189
|
+
```ruby
|
190
|
+
$ rails console
|
191
|
+
rails> require "awesome_print"
|
192
|
+
rails> ap Account.limit(2).all
|
193
|
+
[
|
194
|
+
[0] #<Account:0x1033220b8> {
|
195
|
+
:id => 1,
|
196
|
+
:user_id => 5,
|
197
|
+
:assigned_to => 7,
|
198
|
+
:name => "Hayes-DuBuque",
|
199
|
+
:access => "Public",
|
200
|
+
:website => "http://www.hayesdubuque.com",
|
201
|
+
:toll_free_phone => "1-800-932-6571",
|
202
|
+
:phone => "(111)549-5002",
|
203
|
+
:fax => "(349)415-2266",
|
204
|
+
:deleted_at => nil,
|
205
|
+
:created_at => Sat, 06 Mar 2010 09:46:10 UTC +00:00,
|
206
|
+
:updated_at => Sat, 06 Mar 2010 16:33:10 UTC +00:00,
|
207
|
+
:email => "info@hayesdubuque.com",
|
208
|
+
:background_info => nil
|
209
|
+
},
|
210
|
+
[1] #<Account:0x103321ff0> {
|
211
|
+
:id => 2,
|
212
|
+
:user_id => 4,
|
213
|
+
:assigned_to => 4,
|
214
|
+
:name => "Ziemann-Streich",
|
215
|
+
:access => "Public",
|
216
|
+
:website => "http://www.ziemannstreich.com",
|
217
|
+
:toll_free_phone => "1-800-871-0619",
|
218
|
+
:phone => "(042)056-1534",
|
219
|
+
:fax => "(106)017-8792",
|
220
|
+
:deleted_at => nil,
|
221
|
+
:created_at => Tue, 09 Feb 2010 13:32:10 UTC +00:00,
|
222
|
+
:updated_at => Tue, 09 Feb 2010 20:05:01 UTC +00:00,
|
223
|
+
:email => "info@ziemannstreich.com",
|
224
|
+
:background_info => nil
|
229
225
|
}
|
230
|
-
|
226
|
+
]
|
227
|
+
rails> ap Account
|
228
|
+
class Account < ActiveRecord::Base {
|
229
|
+
:id => :integer,
|
230
|
+
:user_id => :integer,
|
231
|
+
:assigned_to => :integer,
|
232
|
+
:name => :string,
|
233
|
+
:access => :string,
|
234
|
+
:website => :string,
|
235
|
+
:toll_free_phone => :string,
|
236
|
+
:phone => :string,
|
237
|
+
:fax => :string,
|
238
|
+
:deleted_at => :datetime,
|
239
|
+
:created_at => :datetime,
|
240
|
+
:updated_at => :datetime,
|
241
|
+
:email => :string,
|
242
|
+
:background_info => :string
|
243
|
+
}
|
244
|
+
rails>
|
245
|
+
```
|
231
246
|
|
232
247
|
### IRB integration ###
|
233
248
|
To use awesome_print as default formatter in irb and Rails console add the following
|
234
249
|
code to your ~/.irbrc file:
|
235
250
|
|
236
|
-
|
237
|
-
|
251
|
+
```ruby
|
252
|
+
require "awesome_print"
|
253
|
+
AwesomePrint.irb!
|
254
|
+
```
|
238
255
|
|
239
256
|
### PRY integration ###
|
240
257
|
If you miss awesome_print's way of formatting output, here's how you can use it in place
|
241
258
|
of the formatting which comes with pry. Add the following code to your ~/.pryrc:
|
242
259
|
|
243
|
-
|
244
|
-
|
260
|
+
```ruby
|
261
|
+
require "awesome_print"
|
262
|
+
AwesomePrint.pry!
|
263
|
+
```
|
245
264
|
|
246
265
|
### Logger Convenience Method ###
|
247
266
|
awesome_print adds the 'ap' method to the Logger and ActiveSupport::BufferedLogger classes
|
@@ -274,14 +293,16 @@ You can set your own default options by creating ``.aprc`` file in your home
|
|
274
293
|
directory. Within that file assign your defaults to ``AwesomePrint.defaults``.
|
275
294
|
For example:
|
276
295
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
296
|
+
```ruby
|
297
|
+
# ~/.aprc file.
|
298
|
+
AwesomePrint.defaults = {
|
299
|
+
:indent => -2,
|
300
|
+
:color => {
|
301
|
+
:hash => :pale,
|
302
|
+
:class => :white
|
303
|
+
}
|
304
|
+
}
|
305
|
+
```
|
285
306
|
|
286
307
|
### Running Specs ###
|
287
308
|
|
@@ -294,10 +315,12 @@ For example:
|
|
294
315
|
* Make your feature addition or bug fix.
|
295
316
|
* Add specs for it, making sure $ rake spec is all green.
|
296
317
|
* Commit, do not mess with rakefile, version, or history.
|
297
|
-
* Send
|
318
|
+
* Send commit URL (*do not* send pull requests).
|
298
319
|
|
299
320
|
### Contributors ###
|
321
|
+
Special thanks goes to awesome team of contributors, namely:
|
300
322
|
|
323
|
+
* 6fusion.com -- https://github.com/6fusion
|
301
324
|
* Adam Doppelt -- https://github.com/gurgeous
|
302
325
|
* Andrew O'Brien -- https://github.com/AndrewO
|
303
326
|
* Andrew Horsman -- https://github.com/basicxman
|
@@ -312,21 +335,32 @@ For example:
|
|
312
335
|
* Evan Senter -- https://github.com/evansenter
|
313
336
|
* George . -- https://github.com/gardelea
|
314
337
|
* Greg Weber -- https://github.com/gregwebs
|
338
|
+
* Jan Vansteenkiste -- https://github.com/vStone
|
315
339
|
* Jeff Felchner -- https://github.com/jfelchner
|
340
|
+
* Jonathan Davies -- send your Github URL ;-)
|
341
|
+
* Kevin Olbrich -- https://github.com/olbrich
|
342
|
+
* Matthew Schulkind -- https://github.com/mschulkind
|
343
|
+
* Mike McQuaid -- https://github.com/mikemcquaid
|
344
|
+
* Nami-Doc -- https://github.com/Nami-Doc
|
345
|
+
* Nicolas Viennot -- https://github.com/nviennot
|
316
346
|
* Nikolaj Nikolajsen -- https://github.com/nikolajsen
|
347
|
+
* Richard Hall -- https://github.com/richardardrichard
|
317
348
|
* Ryan Schlesinger -- https://github.com/ryansch
|
349
|
+
* Scott Hyndman -- https://github.com/shyndman
|
318
350
|
* Sean Gallagher -- http://github.com/torandu
|
319
351
|
* Stephan Hagemann -- https://github.com/shageman
|
320
352
|
* Tim Harper -- http://github.com/timcharper
|
321
353
|
* Tobias Crawley -- http://github.com/tobias
|
322
354
|
* Thibaut Barrère -- https://github.com/thbar
|
355
|
+
* Trevor Wennblom -- https://github.com/trevor
|
356
|
+
* vfrride -- https://github.com/vfrride
|
323
357
|
* Viktar Basharymau -- https://github.com/DNNX
|
324
358
|
|
325
359
|
### License ###
|
326
|
-
Copyright (c) 2010-
|
360
|
+
Copyright (c) 2010-2013 Michael Dvorkin
|
327
361
|
|
328
362
|
http://www.dvorkin.net
|
329
363
|
|
330
|
-
%w(mike dvorkin.net) * "@" ||
|
364
|
+
%w(mike dvorkin.net) * "@" || "twitter.com/mid"
|
331
365
|
|
332
366
|
Released under the MIT license. See LICENSE file for details.
|