rubypython 0.6.3 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 42d72dc2fa321652bfceb9f9a4a7ed347830f00e
4
+ data.tar.gz: 70796c8c7a7718a55abd18666f6f83b04f70ab87
5
+ SHA512:
6
+ metadata.gz: 8ebf055f2b1866c0de0730af78157cfc4b09e0dfbb0ce0fbeb10ddaaf3514ad088de257b39fbc15e7b833a713b731801176859f4adf2be09293744b54cba22fd
7
+ data.tar.gz: 9d62cf120a315234ab7e2196599eb3011e8541e2d02298c41faebf740db44aeaaab640b299294a9c053f74a77e7018c94a0b825c4424601e689c75d26d9276e9
@@ -0,0 +1,18 @@
1
+ *.bundle
2
+ *.log
3
+ *.o
4
+ *.pyc
5
+ *.so
6
+ *.swp
7
+ *~
8
+ .DS_Store
9
+ .rake_tasks~
10
+ .rvmrc
11
+ .yardoc/
12
+ coverage.info
13
+ coverage/
14
+ doc/
15
+ html/
16
+ pkg/
17
+ publish/
18
+ website/index.html
@@ -0,0 +1,20 @@
1
+ syntax:glob
2
+ *.bundle
3
+ *.log
4
+ *.o
5
+ *.pyc
6
+ *.so
7
+ *.swp
8
+ *~
9
+ .DS_Store
10
+ .rake_tasks~
11
+ .rvmrc
12
+ .yardoc/*
13
+ coverage.info
14
+ coverage/*
15
+ doc/*
16
+ ext/*/Makefile
17
+ html/*
18
+ pkg/*
19
+ publish/*
20
+ website/index.html
data/.hgtags ADDED
@@ -0,0 +1,12 @@
1
+ 910a6e5ac94959fd6d9b04caea995afd354531f6 v0.2.3
2
+ 7361975ce7bbbdd284e1d9f84344d4f8df6e9eab v0.2.8
3
+ 09e65f05148ae3e1ba5f54156cd7bcf159cfe14f v0.2.9
4
+ 7ebd15a009f37aefab52e8e669080eed165320a0 v0.2.10
5
+ fe1fe7136461a92e4012cd7c8f23c8c446d4fbc1 v0.2.11
6
+ 746fffb7ee3db61278d592c303939daeb6a17a03 v0.3.1
7
+ e61cfeb18e14c8d0d86e68459bf7957535c4452b v0.3.2
8
+ 0e18cecdd4b7d6261a708a9b60b80a4794efac89 r0.5.0
9
+ cd45222e2319bf006798c50f5c18669ae6160246 r0.5.2
10
+ b82963530f976af0cc0f4e62488b5112028fdfc9 r0.5.3
11
+ 4e39510b4683d1394361106ddb387e5b85f18789 r0.6.0
12
+ 898514bedf99296b48fdb95945745ff523ad3b11 r0.6.1
@@ -1,4 +1,8 @@
1
- === 0.6.3 / 2012-09-25
1
+ === 0.6.4 / 2017-06-20
2
+ * Fix long conversion issue
3
+ * Fix lib path for Debian/Ubuntu
4
+
5
+ === 0.6.4 / 2012-09-25
2
6
  * Major Enhancements
3
7
  * Legacy Mode removed
4
8
  * Minor Enhancements
@@ -1,4 +1,7 @@
1
1
  .autotest
2
+ .gitignore
3
+ .hgignore
4
+ .hgtags
2
5
  .rspec
3
6
  Contributors.rdoc
4
7
  History.rdoc
@@ -36,3 +39,8 @@ spec/rubypyclass_spec.rb
36
39
  spec/rubypyproxy_spec.rb
37
40
  spec/rubypython_spec.rb
38
41
  spec/spec_helper.rb
42
+ website/index.rhtml
43
+ website/robots.txt
44
+ website/stylesheets/960.css
45
+ website/stylesheets/border-radius.htc
46
+ website/stylesheets/screen.css
data/Rakefile CHANGED
@@ -4,10 +4,11 @@ require 'rubygems'
4
4
  require 'hoe'
5
5
 
6
6
  Hoe.plugin :doofus
7
- Hoe.plugin :gemspec
8
- Hoe.plugin :rubyforge
7
+ Hoe.plugin :gemspec2
8
+ Hoe.plugin :rubyforge unless ENV['CI'] or ENV['TRAVIS']
9
9
  Hoe.plugin :git
10
10
  Hoe.plugin :hg
11
+ Hoe.plugin :travis
11
12
 
12
13
  Hoe.spec 'rubypython' do
13
14
  self.rubyforge_name = self.name
@@ -16,6 +17,8 @@ Hoe.spec 'rubypython' do
16
17
  developer('Austin Ziegler', 'austin@rubyforge.org')
17
18
  developer('Zach Raines', 'raineszm+rubypython@gmail.com')
18
19
 
20
+ license 'MIT'
21
+
19
22
  self.remote_rdoc_dir = 'rdoc'
20
23
  self.rsync_args << ' --exclude=statsvn/'
21
24
 
@@ -23,9 +26,16 @@ Hoe.spec 'rubypython' do
23
26
  self.readme_file = 'README.rdoc'
24
27
  self.extra_rdoc_files = FileList["*.rdoc"].to_a
25
28
 
26
- self.extra_deps << ['ffi', '>= 1.0.7']
29
+ self.extra_deps << ['ffi', '~> 1.0.7']
27
30
  self.extra_deps << ['blankslate', '>= 2.1.2.3']
28
31
 
32
+ self.extra_dev_deps << ['hoe-doofus', '~> 1.0']
33
+ self.extra_dev_deps << ['hoe-gemspec2', '~> 1.1']
34
+ self.extra_dev_deps << ['hoe-git', '~> 1.5']
35
+ self.extra_dev_deps << ['hoe-hg', '~> 1.0']
36
+ self.extra_dev_deps << ['hoe-rubygems', '~> 1.0']
37
+ self.extra_dev_deps << ['hoe-travis', '~> 1.2']
38
+
29
39
  self.extra_dev_deps << ['rspec', '~> 2.0']
30
40
  self.extra_dev_deps << ['tilt', '~> 1.0']
31
41
 
@@ -15,7 +15,7 @@
15
15
  # puts cPickle.dumps("RubyPython is awesome!").rubify
16
16
  # RubyPython.stop
17
17
  module RubyPython
18
- VERSION = '0.6.3'
18
+ VERSION = '0.6.4'
19
19
  end
20
20
 
21
21
  require 'rubypython/blankobject'
@@ -91,7 +91,7 @@ module RubyPython::Conversion
91
91
  # Convert a Ruby Bignum to a \Python Long. Returns an FFI::Pointer to a
92
92
  # PyLongObject.
93
93
  def self.rtopBigNum(rNum)
94
- num = RubyPython::Python.PyLong_FromLong(rNum)
94
+ num = RubyPython::Python.PyLong_FromLongLong(rNum)
95
95
  raise ConversionError.new "Failed to convert #{rNum}" if num.null?
96
96
  num
97
97
  end
@@ -111,6 +111,7 @@ class RubyPython::Interpreter
111
111
  @locations << File.join("/opt/lib64", name)
112
112
  @locations << File.join("/usr/local/lib64", name)
113
113
  @locations << File.join("/usr/lib64", name)
114
+ @locations << File.join("/usr/lib/x86_64-linux-gnu", name)
114
115
  end
115
116
  @locations << File.join("/opt/local/lib", name)
116
117
  @locations << File.join("/opt/lib", name)
@@ -6,6 +6,7 @@ module RubyPython
6
6
  # This module will hold the loaded RubyPython interpreter.
7
7
  module Python #:nodoc: all
8
8
  @lock = Mutex.new
9
+
9
10
  def self.synchronize(&block)
10
11
  @lock.synchronize(&block)
11
12
  end
@@ -84,7 +85,7 @@ class RubyPython::Interpreter
84
85
  attach_function :PyInt_FromLong, [:long], :pointer
85
86
 
86
87
  attach_function :PyLong_AsLong, [:pointer], :long
87
- attach_function :PyLong_FromLong, [:pointer], :long
88
+ attach_function :PyLong_FromLongLong, [:long_long], :pointer
88
89
 
89
90
  # Float Methods
90
91
  attach_function :PyFloat_AsDouble, [:pointer], :double
@@ -182,16 +183,17 @@ class RubyPython::Interpreter
182
183
  # pointers there is no need to mess around with the rest of the object.
183
184
  self.const_set :PyObjectStruct, Class.new(::FFI::Struct)
184
185
  self::PyObjectStruct.layout :ob_refcnt, :ssize_t,
185
- :ob_type, :pointer
186
+ :ob_type, :pointer
186
187
 
187
188
  # This struct is used when defining Python methods.
188
189
  self.const_set :PyMethodDef, Class.new(::FFI::Struct)
189
190
  self::PyMethodDef.layout :ml_name, :pointer,
190
- :ml_meth, :PyCFunction,
191
- :ml_flags, :int,
192
- :ml_doc, :pointer
191
+ :ml_meth, :PyCFunction,
192
+ :ml_flags, :int,
193
+ :ml_doc, :pointer
193
194
  end
194
195
 
195
196
  end
197
+
196
198
  private :infect!
197
199
  end
@@ -0,0 +1,36 @@
1
+ <html>
2
+ <head>
3
+ <link rel="stylesheet" href="stylesheets/960.css" type="text/css" media="screen">
4
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen">
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6
+ <link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
7
+ <link href='http://fonts.googleapis.com/css?family=Cabin' rel='stylesheet' type='text/css'>
8
+ <title><%= title %></title>
9
+ </head>
10
+ <body>
11
+ <div id="header" class="container_24">
12
+ <h1 id="title" class="grid_16"><%= title %></h1>
13
+ <div id="version" class="grid_4 push_3 clickable teardrop-corners" onclick='document.location="<%= download %>"; return false'>
14
+ <p>Get Version</p>
15
+ <a href="<%= download %>" class="numbers"><%= version %></a>
16
+ </div>
17
+ </div>
18
+ <div id="content" class="container_24">
19
+ <div id="toc" class="grid_7 push_16">
20
+ <h1>contents</h1>
21
+ <%= toc %>
22
+ </div>
23
+ <div id="body" class="grid_16 pull_7">
24
+ <%= body %>
25
+ </div>
26
+ </div>
27
+ <div id="footer" class="container_24">
28
+ <p class="coda push_18 grid_8">
29
+ <a href="mailto:achatesavc+rubypython@gmail.com">Zach Raines</a>,
30
+ <%= modified %><br>
31
+ Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
32
+ </p>
33
+ </div>
34
+ <!-- insert site tracking codes here, like Google Urchin -->
35
+ </body>
36
+ </html>
@@ -0,0 +1,5 @@
1
+ User-agent: *
2
+ Disallow: /softwaremap/ # This is an infinite virtual URL space
3
+ Disallow: /statcvs/ # This is an infinite virtual URL space
4
+ Disallow: /usage/ # This is an infinite virtual URL space
5
+ Disallow: /wiki/ # This is an infinite virtual URL space
@@ -0,0 +1,549 @@
1
+ /* Containers */
2
+ .container_24 {
3
+ margin-left: auto;
4
+ margin-right: auto;
5
+ width: 960px;
6
+ }
7
+
8
+ /* Grid >> Children (Alpha ~ First, Omega ~ Last) */
9
+ .alpha {
10
+ margin-left: 0 !important;
11
+ }
12
+
13
+ .omega {
14
+ margin-right: 0 !important;
15
+ }
16
+
17
+ /* Grid >> Global */
18
+ .grid_1,
19
+ .grid_2,
20
+ .grid_3,
21
+ .grid_4,
22
+ .grid_5,
23
+ .grid_6,
24
+ .grid_7,
25
+ .grid_8,
26
+ .grid_9,
27
+ .grid_10,
28
+ .grid_11,
29
+ .grid_12,
30
+ .grid_13,
31
+ .grid_14,
32
+ .grid_15,
33
+ .grid_16,
34
+ .grid_17,
35
+ .grid_18,
36
+ .grid_19,
37
+ .grid_20,
38
+ .grid_21,
39
+ .grid_22,
40
+ .grid_23,
41
+ .grid_24 {
42
+ display: inline;
43
+ float: left;
44
+ position: relative;
45
+ margin-left: 10.0px;
46
+ margin-right: 10.0px;
47
+ }
48
+
49
+ /* Grid >> 2 Columns */
50
+ .container_24 .grid_1 {
51
+ width: 20px;
52
+ }
53
+
54
+ .container_24 .grid_2 {
55
+ width: 60px;
56
+ }
57
+
58
+ .container_24 .grid_3 {
59
+ width: 100px;
60
+ }
61
+
62
+ .container_24 .grid_4 {
63
+ width: 140px;
64
+ }
65
+
66
+ .container_24 .grid_5 {
67
+ width: 180px;
68
+ }
69
+
70
+ .container_24 .grid_6 {
71
+ width: 220px;
72
+ }
73
+
74
+ .container_24 .grid_7 {
75
+ width: 260px;
76
+ }
77
+
78
+ .container_24 .grid_8 {
79
+ width: 300px;
80
+ }
81
+
82
+ .container_24 .grid_9 {
83
+ width: 340px;
84
+ }
85
+
86
+ .container_24 .grid_10 {
87
+ width: 380px;
88
+ }
89
+
90
+ .container_24 .grid_11 {
91
+ width: 420px;
92
+ }
93
+
94
+ .container_24 .grid_12 {
95
+ width: 460px;
96
+ }
97
+
98
+ .container_24 .grid_13 {
99
+ width: 500px;
100
+ }
101
+
102
+ .container_24 .grid_14 {
103
+ width: 540px;
104
+ }
105
+
106
+ .container_24 .grid_15 {
107
+ width: 580px;
108
+ }
109
+
110
+ .container_24 .grid_16 {
111
+ width: 620px;
112
+ }
113
+
114
+ .container_24 .grid_17 {
115
+ width: 660px;
116
+ }
117
+
118
+ .container_24 .grid_18 {
119
+ width: 700px;
120
+ }
121
+
122
+ .container_24 .grid_19 {
123
+ width: 740px;
124
+ }
125
+
126
+ .container_24 .grid_20 {
127
+ width: 780px;
128
+ }
129
+
130
+ .container_24 .grid_21 {
131
+ width: 820px;
132
+ }
133
+
134
+ .container_24 .grid_22 {
135
+ width: 860px;
136
+ }
137
+
138
+ .container_24 .grid_23 {
139
+ width: 900px;
140
+ }
141
+
142
+ .container_24 .grid_24 {
143
+ width: 940px;
144
+ }
145
+
146
+ /* Prefix Extra Space >> 2 Columns */
147
+ .container_24 .prefix_1 {
148
+ padding-left: 40px;
149
+ }
150
+
151
+ .container_24 .prefix_2 {
152
+ padding-left: 80px;
153
+ }
154
+
155
+ .container_24 .prefix_3 {
156
+ padding-left: 120px;
157
+ }
158
+
159
+ .container_24 .prefix_4 {
160
+ padding-left: 160px;
161
+ }
162
+
163
+ .container_24 .prefix_5 {
164
+ padding-left: 200px;
165
+ }
166
+
167
+ .container_24 .prefix_6 {
168
+ padding-left: 240px;
169
+ }
170
+
171
+ .container_24 .prefix_7 {
172
+ padding-left: 280px;
173
+ }
174
+
175
+ .container_24 .prefix_8 {
176
+ padding-left: 320px;
177
+ }
178
+
179
+ .container_24 .prefix_9 {
180
+ padding-left: 360px;
181
+ }
182
+
183
+ .container_24 .prefix_10 {
184
+ padding-left: 400px;
185
+ }
186
+
187
+ .container_24 .prefix_11 {
188
+ padding-left: 440px;
189
+ }
190
+
191
+ .container_24 .prefix_12 {
192
+ padding-left: 480px;
193
+ }
194
+
195
+ .container_24 .prefix_13 {
196
+ padding-left: 520px;
197
+ }
198
+
199
+ .container_24 .prefix_14 {
200
+ padding-left: 560px;
201
+ }
202
+
203
+ .container_24 .prefix_15 {
204
+ padding-left: 600px;
205
+ }
206
+
207
+ .container_24 .prefix_16 {
208
+ padding-left: 640px;
209
+ }
210
+
211
+ .container_24 .prefix_17 {
212
+ padding-left: 680px;
213
+ }
214
+
215
+ .container_24 .prefix_18 {
216
+ padding-left: 720px;
217
+ }
218
+
219
+ .container_24 .prefix_19 {
220
+ padding-left: 760px;
221
+ }
222
+
223
+ .container_24 .prefix_20 {
224
+ padding-left: 800px;
225
+ }
226
+
227
+ .container_24 .prefix_21 {
228
+ padding-left: 840px;
229
+ }
230
+
231
+ .container_24 .prefix_22 {
232
+ padding-left: 880px;
233
+ }
234
+
235
+ .container_24 .prefix_23 {
236
+ padding-left: 920px;
237
+ }
238
+
239
+ /* Suffix Extra Space >> 2 Columns */
240
+ .container_24 .suffix_1 {
241
+ padding-right: 40px;
242
+ }
243
+
244
+ .container_24 .suffix_2 {
245
+ padding-right: 80px;
246
+ }
247
+
248
+ .container_24 .suffix_3 {
249
+ padding-right: 120px;
250
+ }
251
+
252
+ .container_24 .suffix_4 {
253
+ padding-right: 160px;
254
+ }
255
+
256
+ .container_24 .suffix_5 {
257
+ padding-right: 200px;
258
+ }
259
+
260
+ .container_24 .suffix_6 {
261
+ padding-right: 240px;
262
+ }
263
+
264
+ .container_24 .suffix_7 {
265
+ padding-right: 280px;
266
+ }
267
+
268
+ .container_24 .suffix_8 {
269
+ padding-right: 320px;
270
+ }
271
+
272
+ .container_24 .suffix_9 {
273
+ padding-right: 360px;
274
+ }
275
+
276
+ .container_24 .suffix_10 {
277
+ padding-right: 400px;
278
+ }
279
+
280
+ .container_24 .suffix_11 {
281
+ padding-right: 440px;
282
+ }
283
+
284
+ .container_24 .suffix_12 {
285
+ padding-right: 480px;
286
+ }
287
+
288
+ .container_24 .suffix_13 {
289
+ padding-right: 520px;
290
+ }
291
+
292
+ .container_24 .suffix_14 {
293
+ padding-right: 560px;
294
+ }
295
+
296
+ .container_24 .suffix_15 {
297
+ padding-right: 600px;
298
+ }
299
+
300
+ .container_24 .suffix_16 {
301
+ padding-right: 640px;
302
+ }
303
+
304
+ .container_24 .suffix_17 {
305
+ padding-right: 680px;
306
+ }
307
+
308
+ .container_24 .suffix_18 {
309
+ padding-right: 720px;
310
+ }
311
+
312
+ .container_24 .suffix_19 {
313
+ padding-right: 760px;
314
+ }
315
+
316
+ .container_24 .suffix_20 {
317
+ padding-right: 800px;
318
+ }
319
+
320
+ .container_24 .suffix_21 {
321
+ padding-right: 840px;
322
+ }
323
+
324
+ .container_24 .suffix_22 {
325
+ padding-right: 880px;
326
+ }
327
+
328
+ .container_24 .suffix_23 {
329
+ padding-right: 920px;
330
+ }
331
+
332
+ /* Push Space >> 2 Columns */
333
+ .container_24 .push_1 {
334
+ left: 40px;
335
+ }
336
+
337
+ .container_24 .push_2 {
338
+ left: 80px;
339
+ }
340
+
341
+ .container_24 .push_3 {
342
+ left: 120px;
343
+ }
344
+
345
+ .container_24 .push_4 {
346
+ left: 160px;
347
+ }
348
+
349
+ .container_24 .push_5 {
350
+ left: 200px;
351
+ }
352
+
353
+ .container_24 .push_6 {
354
+ left: 240px;
355
+ }
356
+
357
+ .container_24 .push_7 {
358
+ left: 280px;
359
+ }
360
+
361
+ .container_24 .push_8 {
362
+ left: 320px;
363
+ }
364
+
365
+ .container_24 .push_9 {
366
+ left: 360px;
367
+ }
368
+
369
+ .container_24 .push_10 {
370
+ left: 400px;
371
+ }
372
+
373
+ .container_24 .push_11 {
374
+ left: 440px;
375
+ }
376
+
377
+ .container_24 .push_12 {
378
+ left: 480px;
379
+ }
380
+
381
+ .container_24 .push_13 {
382
+ left: 520px;
383
+ }
384
+
385
+ .container_24 .push_14 {
386
+ left: 560px;
387
+ }
388
+
389
+ .container_24 .push_15 {
390
+ left: 600px;
391
+ }
392
+
393
+ .container_24 .push_16 {
394
+ left: 640px;
395
+ }
396
+
397
+ .container_24 .push_17 {
398
+ left: 680px;
399
+ }
400
+
401
+ .container_24 .push_18 {
402
+ left: 720px;
403
+ }
404
+
405
+ .container_24 .push_19 {
406
+ left: 760px;
407
+ }
408
+
409
+ .container_24 .push_20 {
410
+ left: 800px;
411
+ }
412
+
413
+ .container_24 .push_21 {
414
+ left: 840px;
415
+ }
416
+
417
+ .container_24 .push_22 {
418
+ left: 880px;
419
+ }
420
+
421
+ .container_24 .push_23 {
422
+ left: 920px;
423
+ }
424
+
425
+ /* Pull Space >> 2 Columns */
426
+ .container_24 .pull_1 {
427
+ right: 40px;
428
+ }
429
+
430
+ .container_24 .pull_2 {
431
+ right: 80px;
432
+ }
433
+
434
+ .container_24 .pull_3 {
435
+ right: 120px;
436
+ }
437
+
438
+ .container_24 .pull_4 {
439
+ right: 160px;
440
+ }
441
+
442
+ .container_24 .pull_5 {
443
+ right: 200px;
444
+ }
445
+
446
+ .container_24 .pull_6 {
447
+ right: 240px;
448
+ }
449
+
450
+ .container_24 .pull_7 {
451
+ right: 280px;
452
+ }
453
+
454
+ .container_24 .pull_8 {
455
+ right: 320px;
456
+ }
457
+
458
+ .container_24 .pull_9 {
459
+ right: 360px;
460
+ }
461
+
462
+ .container_24 .pull_10 {
463
+ right: 400px;
464
+ }
465
+
466
+ .container_24 .pull_11 {
467
+ right: 440px;
468
+ }
469
+
470
+ .container_24 .pull_12 {
471
+ right: 480px;
472
+ }
473
+
474
+ .container_24 .pull_13 {
475
+ right: 520px;
476
+ }
477
+
478
+ .container_24 .pull_14 {
479
+ right: 560px;
480
+ }
481
+
482
+ .container_24 .pull_15 {
483
+ right: 600px;
484
+ }
485
+
486
+ .container_24 .pull_16 {
487
+ right: 640px;
488
+ }
489
+
490
+ .container_24 .pull_17 {
491
+ right: 680px;
492
+ }
493
+
494
+ .container_24 .pull_18 {
495
+ right: 720px;
496
+ }
497
+
498
+ .container_24 .pull_19 {
499
+ right: 760px;
500
+ }
501
+
502
+ .container_24 .pull_20 {
503
+ right: 800px;
504
+ }
505
+
506
+ .container_24 .pull_21 {
507
+ right: 840px;
508
+ }
509
+
510
+ .container_24 .pull_22 {
511
+ right: 880px;
512
+ }
513
+
514
+ .container_24 .pull_23 {
515
+ right: 920px;
516
+ }
517
+
518
+ /* Clear Floated Elements */
519
+ .clear {
520
+ clear: both;
521
+ display: block;
522
+ overflow: hidden;
523
+ visibility: hidden;
524
+ width: 0;
525
+ height: 0;
526
+ }
527
+
528
+ .clearfix:after {
529
+ clear: both;
530
+ content: ' ';
531
+ display: block;
532
+ font-size: 0;
533
+ line-height: 0;
534
+ visibility: hidden;
535
+ width: 0;
536
+ height: 0;
537
+ }
538
+
539
+ .clearfix {
540
+ display: inline-block;
541
+ }
542
+
543
+ * html .clearfix {
544
+ height: 1%;
545
+ }
546
+
547
+ .clearfix {
548
+ display: block;
549
+ }