piola 0.0.7

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,49 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::Numbers do
5
+
6
+ describe '#valid_number?' do
7
+
8
+ it "should return true for whole number" do
9
+ '15'.should be_valid_number
10
+ end
11
+
12
+ it "should return true for fractions" do
13
+ '7.50'.should be_valid_number
14
+ end
15
+
16
+ it "should return true for negative numbers" do
17
+ '-7.50'.should be_valid_number
18
+ end
19
+
20
+ it "should return true for big numbers" do
21
+ '15000000.55'.should be_valid_number
22
+ end
23
+
24
+ it "should return false for text" do
25
+ 'foo'.should_not be_valid_number
26
+ end
27
+
28
+ it "shoul return false for text with numbers" do
29
+ 'foo 15'.should_not be_valid_number
30
+ 'foo 15 bar'.should_not be_valid_number
31
+ end
32
+
33
+ end
34
+
35
+ describe '#remove_numbers' do
36
+
37
+ it "should correctly remove number parragraphs from a text" do
38
+ text = "15\nthis is a test line\n30\nanother test line"
39
+ text.remove_numbers.should eql("this is a test line\nanother test line")
40
+ end
41
+
42
+ it "should ignore numbers that are part of sentences" do
43
+ text = "15\nthis is a 30 test line\n30\nanother 40 test line"
44
+ text.remove_numbers.should eql("this is a 30 test line\nanother 40 test line")
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::Parsing do
5
+
6
+ describe '#remove_all_parenthesis' do
7
+
8
+ it "should remove all parenthesis" do
9
+ txt = '(foo) [bar] {baz} test'
10
+ txt.remove_all_parenthesis.should eql('test')
11
+ end
12
+
13
+ end
14
+
15
+ describe '#remove_enters' do
16
+
17
+ it "should remove all kinds of enters" do
18
+ txt = "foo\nbar\rbaz#{10.chr}test#{13.chr}another<br />line<br>yet<br/>not<BR />over<BR>never<BR/>ever"
19
+ txt.remove_enters.should eql('foo bar baz test another line yet not over never ever')
20
+ end
21
+
22
+ end
23
+
24
+ describe '#remove_extra_enters' do
25
+
26
+ it "should only leave one enter per parragraph" do
27
+ txt = "foo\n\nbar\n\n\nbaz test"
28
+ txt.remove_extra_enters.should eql("foo\nbar\nbaz test")
29
+ end
30
+
31
+ end
32
+
33
+ describe '#remove_quotes' do
34
+
35
+ it "should remove all kinds of quotes" do
36
+ txt = %Q{"foo" 'bar' baz}
37
+ txt.remove_quotes.should eql('foo bar baz')
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'piola'
4
+ require 'rspec'
@@ -0,0 +1,93 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::SpecialChars do
5
+
6
+ describe '#spanish_char?' do
7
+
8
+ %w(á é í ó ö ú ñ Á É Í Ö Ó Ú Ñ).each do |char|
9
+
10
+ it "identifies `#{char}` as spanish char" do
11
+ char.should be_spanish_char
12
+ end
13
+
14
+ end
15
+
16
+ end
17
+
18
+ describe '#only_letters' do
19
+
20
+ it "should remove all weird chars" do
21
+ txt = "foóo báar bañz ñoün FÓO BÁAR ÑOÜN 123test"
22
+ txt.only_letters.should eql('foóo báar bañz ñoün FÓO BÁAR ÑOÜN test')
23
+ end
24
+
25
+ end
26
+
27
+ describe '#clean_chars' do
28
+
29
+ it "returns a clean string with no weird chars" do
30
+ txt = "RT @ipbc79: Pasajes de avion ✔ hotel reservado ✔ boletos ✔ .... 🔜 Nos vemos el 31 de octubre @justinbieber #Ecuador"
31
+ txt.clean_chars.should eql "RT @ipbc79: Pasajes de avion hotel reservado boletos Nos vemos el 31 de octubre @justinbieber #Ecuador"
32
+ end
33
+
34
+ it "leaves periods when opted in" do
35
+ txt = "Debate del Código Penal inicia con ‘cabos sueltos’ http://t.co/5pDpYJoKZz"
36
+ txt.clean_chars.should eql "Debate del Código Penal inicia con cabos sueltos http://t co/5pDpYJoKZz"
37
+
38
+ txt = "Debate del Código Penal inicia con ‘cabos sueltos’ http://t.co/5pDpYJoKZz"
39
+ txt.clean_chars(keep_periods: true).should eql "Debate del Código Penal inicia con cabos sueltos http://t.co/5pDpYJoKZz"
40
+ end
41
+
42
+ it "leaves commas when opted in" do
43
+ txt = "Debate del Código Penal inicia, con ‘cabos sueltos’ http://t.co/5pDpYJoKZz"
44
+ txt.clean_chars.should eql "Debate del Código Penal inicia con cabos sueltos http://t co/5pDpYJoKZz"
45
+
46
+ txt = "Debate del Código Penal inicia, con ‘cabos sueltos’ http://t.co/5pDpYJoKZz"
47
+ txt.clean_chars(keep_commas: true).should eql "Debate del Código Penal inicia, con cabos sueltos http://t co/5pDpYJoKZz"
48
+ end
49
+
50
+ end
51
+
52
+ describe '#downcase_special_chars' do
53
+
54
+ it "downcases all special chars" do
55
+ txt = 'ÁÉÍÓÚÜÑ'
56
+ txt.downcase_special_chars.should eql('áéíóúüñ')
57
+ end
58
+
59
+ end
60
+
61
+ describe '#remove_special_chars' do
62
+
63
+ it "should replace spanish special chars" do
64
+ txt = 'áéíóúüñÁÉÍÓÚÜÑ'
65
+ txt.remove_special_chars.should eql('aeiouunAEIOUUN')
66
+ end
67
+
68
+ end
69
+
70
+ describe '#clean_text' do
71
+
72
+ let(:txt) { " foo bar baz &aacute;&ntilde; test (another test)\n\nsome enters " }
73
+
74
+ it "should return a clean string" do
75
+ txt.clean_text.should eql('foo bar baz áñ test some enters')
76
+ end
77
+
78
+ it "should leave parenthesis when specified" do
79
+ txt.clean_text(false).should eql('foo bar baz áñ test (another test) some enters')
80
+ end
81
+
82
+ end
83
+
84
+ describe '#remove_tabs' do
85
+
86
+ it "should correctly remove tabs" do
87
+ txt = "\t\t foo bar \t baz "
88
+ txt.remove_tabs.should eql('foo bar baz')
89
+ end
90
+
91
+ end
92
+
93
+ end
@@ -0,0 +1,94 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::Splitting do
5
+
6
+ describe '#to_arr' do
7
+
8
+ it "should convert a string to an array" do
9
+ txt = "foo bar baz\n\ntest\nwith enters"
10
+ txt.to_arr.should eql(%w(foo bar baz test with enters))
11
+ end
12
+
13
+ it "it converts to uniq" do
14
+ txt = "test1 test2 test3 test2"
15
+ txt.to_arr.should eql(%w(test1 test2 test3))
16
+ end
17
+
18
+ it "doesn't uniq when option" do
19
+ txt = "test1 test2 test3 test2"
20
+ txt.to_arr(non_unique: true).should eql(%w(test1 test2 test3 test2))
21
+ end
22
+
23
+ end
24
+
25
+ describe '#string_to_parragraph_arr' do
26
+
27
+ it "should convert a string into an array of parragraphs" do
28
+ txt = " Normal\r 0\r \r \r \r \r false\r false\r false\r \r EN-US\r X-NONE\r X-NONE\n\n, edición del domingo 28 de octubre de 2012\n\nUna espesa neblina inunda los campos. Llovizna. Los vidrios de un autoferro se empañan y el frío entumece las manos. El clima no resulta favorable ese miércoles 24 de octubre. Así sucede; es cuestión de suerte, dicen. Si todo estuviera despejado, un imponente Chimborazo deslumbraría a las personas.\n\nLos más de 35 pasajeros, en su mayoría niños, están emocionados. Es su primera vez en un tren. Y van bien abrigados con suéteres, gorros de lana, bufandas y guantes. Es que el frío es intenso. Hace honor a la denominación de la ruta que recorre el autoferro: Tren del Hielo.\n\n "
29
+ txt.string_to_parragraph_arr.should eql(["Normal", "0", "false", "false", "false", "EN-US", "X-NONE", "X-NONE", "edición del domingo 28 de octubre de 2012", "Una espesa neblina inunda los campos Llovizna Los vidrios de un autoferro se empañan y el frío entumece las manos El clima no resulta favorable ese miércoles 24 de octubre Así sucede; es cuestión de suerte dicen Si todo estuviera despejado un imponente Chimborazo deslumbraría a las personas", "Los más de 35 pasajeros en su mayoría niños están emocionados Es su primera vez en un tren Y van bien abrigados con suéteres gorros de lana bufandas y guantes Es que el frío es intenso Hace honor a la denominación de la ruta que recorre el autoferro: Tren del Hielo"])
30
+ end
31
+
32
+ end
33
+
34
+ describe '#string_to_important_parragraph_arr' do
35
+
36
+ it 'returns unique lines only' do
37
+ txt = "this is gonna be a repeated line\nthis is gonna be a repeated line\nanother line that should be unique"
38
+
39
+ txt.string_to_important_parragraph_arr.should eql(["this is gonna be a repeated line", "another line that should be unique"])
40
+ end
41
+
42
+ it "should convert a string into an array of important parragraphs" do
43
+ txt = " Normal\r 0\r \r \r \r \r false\r false\r false\r \r EN-US\r X-NONE\r X-NONE\n\n, edición del domingo 28 de octubre de 2012\n\nUna espesa neblina inunda los campos. Llovizna. Los vidrios de un autoferro se empañan y el frío entumece las manos. El clima no resulta favorable ese miércoles 24 de octubre. Así sucede; es cuestión de suerte, dicen. Si todo estuviera despejado, un imponente Chimborazo deslumbraría a las personas.\n\nLos más de 35 pasajeros, en su mayoría niños, están emocionados. Es su primera vez en un tren. Y van bien abrigados con suéteres, gorros de lana, bufandas y guantes. Es que el frío es intenso. Hace honor a la denominación de la ruta que recorre el autoferro: Tren del Hielo.\n\n "
44
+ txt.string_to_important_parragraph_arr.should eql(["edición del domingo 28 de octubre de 2012", "Una espesa neblina inunda los campos Llovizna Los vidrios de un autoferro se empañan y el frío entumece las manos El clima no resulta favorable ese miércoles 24 de octubre Así sucede; es cuestión de suerte dicen Si todo estuviera despejado un imponente Chimborazo deslumbraría a las personas", "Los más de 35 pasajeros en su mayoría niños están emocionados Es su primera vez en un tren Y van bien abrigados con suéteres gorros de lana bufandas y guantes Es que el frío es intenso Hace honor a la denominación de la ruta que recorre el autoferro: Tren del Hielo"])
45
+ end
46
+
47
+ it 'should not include parragraphs with html leftovers' do
48
+ txt = %Q{Presidente de la República estará en Azogues este viernes
49
+ Miércoles 31 de Octubre de 2012 00:00
50
+ El presidente de la República Rafael Correa llegará a la ciudad de Azogues este viernes en la tarde con el propósito de grabar el enlace ciudadano que se trasmitirá el sábado 3 de noviembre
51
+ La visita del mandatario estaba confirmada hasta la tarde de ayer según informó la gobernadora del Cañar Bertha Molina
52
+ La llegada del jefe de Estado a la capital provincial está prevista entre las 15:30 y 16:00 La grabación se llevará a cabo en el coliseo tipo mil ubicado en la Ciudadela del Chofer
53
+ Desde la mañana del viernes en los alrededores del nuevo coliseo se instalará una feria ciudadana en la que se colocarán los diferentes estantes del Ejecutivo descentralizado en la jurisdicción cañari
54
+ Según Molina la actividad que desarrollará el presidente figura como un acto de homenaje un saludo a San Francisco de Peleusí de Azogues y a sus habitantes
55
+ A decir de la primera autoridad de la provincia el alcalde Eugenio Morocho deberá estar presente y ser un miembro activo en este evento pues el día de ayer iban a dialogar con la autoridad cantonal para solicitarle su participación
56
+ Hasta ayer no se confirmó que el mandatario vaya a ofrecer alguna rueda de prensa o visite algún medio de comunicación tampoco se conoce sobre la agenda que vaya a tener luego de culminada la grabación del programa sabatino
57
+ Personal encargado de los enlaces ciudadanos están desde ayer en la ciudad Para hoy se prevé que llegue todo el equipo y la seguridad del presidente
58
+ Por su parte el Ministro del Interior José Serrano a
59
+ los patios de la Sub Zona 3 del Comando de Policía del Cañar
60
+ hará la entrega del uniformes (chaleco gorra y credencial) a cada uno 1 175
61
+ /* Style Definitions */ table MsoNormalTable mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5 4pt 0cm 5 4pt; mso-para-margin:0cm; mso-para-margin-bottom: 0001pt; mso-pagination:widow-orphan; font-size:10 0pt; font-family:"Calibri" "sans-serif"; mso-bidi-font-family:"Times New Roman";
62
+ /* Style Definitions */ table MsoNormalTable mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5 4pt 0cm 5 4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10 0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11 0pt; font-family:"Calibri" "sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;
63
+ /* Style Definitions */ table MsoNormalTable mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5 4pt 0cm 5 4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10 0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11 0pt; font-family:"Calibri" "sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;}
64
+
65
+ txt.string_to_important_parragraph_arr.should eql([
66
+ "Presidente de la República estará en Azogues este viernes",
67
+ "Miércoles 31 de Octubre de 2012 00:00",
68
+ "El presidente de la República Rafael Correa llegará a la ciudad de Azogues este viernes en la tarde con el propósito de grabar el enlace ciudadano que se trasmitirá el sábado 3 de noviembre",
69
+ "La visita del mandatario estaba confirmada hasta la tarde de ayer según informó la gobernadora del Cañar Bertha Molina",
70
+ "La llegada del jefe de Estado a la capital provincial está prevista entre las 15:30 y 16:00 La grabación se llevará a cabo en el coliseo tipo mil ubicado en la Ciudadela del Chofer",
71
+ "Desde la mañana del viernes en los alrededores del nuevo coliseo se instalará una feria ciudadana en la que se colocarán los diferentes estantes del Ejecutivo descentralizado en la jurisdicción cañari",
72
+ "Según Molina la actividad que desarrollará el presidente figura como un acto de homenaje un saludo a San Francisco de Peleusí de Azogues y a sus habitantes",
73
+ "A decir de la primera autoridad de la provincia el alcalde Eugenio Morocho deberá estar presente y ser un miembro activo en este evento pues el día de ayer iban a dialogar con la autoridad cantonal para solicitarle su participación",
74
+ "Hasta ayer no se confirmó que el mandatario vaya a ofrecer alguna rueda de prensa o visite algún medio de comunicación tampoco se conoce sobre la agenda que vaya a tener luego de culminada la grabación del programa sabatino",
75
+ "Personal encargado de los enlaces ciudadanos están desde ayer en la ciudad Para hoy se prevé que llegue todo el equipo y la seguridad del presidente",
76
+ "Por su parte el Ministro del Interior José Serrano a",
77
+ "los patios de la Sub Zona 3 del Comando de Policía del Cañar",
78
+ "hará la entrega del uniformes (chaleco gorra y credencial) a cada uno 1 175"
79
+ ])
80
+ end
81
+
82
+ it 'should not include parragraphs with mysql warnings' do
83
+ txt = %Q{Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /nfs/c03/h06/mnt/51770/domains/sonorama.com.ec/html/sistema/noticias/cuarto_hora.php on line 113. Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in /nfs/c03/h06/mnt/51770/domains/sonorama.com.ec/html/sistema/noticias/cuarto_hora.php on line 117.}
84
+ txt.string_to_important_parragraph_arr.should eql([])
85
+ end
86
+
87
+ it 'should not include parragraphs with mysql errors' do
88
+ txt = %Q{Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /nfs/c03/h06/mnt/51770/domains/sonorama.com.ec/html/sistema/noticias/cuarto_hora.php on line 113. Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in /nfs/c03/h06/mnt/51770/domains/sonorama.com.ec/html/sistema/noticias/cuarto_hora.php on line 117.}
89
+ txt.string_to_important_parragraph_arr.should eql([])
90
+ end
91
+
92
+ end
93
+
94
+ end
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::Sql do
5
+
6
+ describe '#sql_search' do
7
+
8
+ it "should convert the string to a sql search query" do
9
+ txt = "foo bar baz"
10
+ fields = %w(title description)
11
+ txt.sql_search(fields).should eql("((title LIKE \"%foo%\") AND (title LIKE \"%bar%\") AND (title LIKE \"%baz%\")) OR ((description LIKE \"%foo%\") AND (description LIKE \"%bar%\") AND (description LIKE \"%baz%\"))")
12
+ end
13
+
14
+ end
15
+
16
+ describe '#searchify' do
17
+
18
+ let(:fields) { %w(title description) }
19
+
20
+ it "should convert the string sql search query" do
21
+ txt = "foo bar baz"
22
+ txt.searchify(fields).should eql("(title LIKE \"%foo%\" AND title LIKE \"%bar%\" AND title LIKE \"%baz%\" OR description LIKE \"%foo%\" AND description LIKE \"%bar%\" AND description LIKE \"%baz%\")")
23
+ end
24
+
25
+ it "should permit exact matching" do
26
+ txt = 'foo bar "exact phrase"'
27
+ txt.searchify(fields).should eql("(title LIKE \"%exact phrase%\" AND title LIKE \"%foo%\" AND title LIKE \"%bar%\" OR description LIKE \"%exact phrase%\" AND description LIKE \"%foo%\" AND description LIKE \"%bar%\")")
28
+ end
29
+
30
+ it "should permit exact word matching" do
31
+ txt = 'foo bar "exact phrase" `football`'
32
+ txt.searchify(fields).should eql("((title LIKE \"% football %\" OR title LIKE \"% football.%\" OR title LIKE \"% football,%\") AND title LIKE \"%exact phrase%\" AND title LIKE \"%foo%\" AND title LIKE \"%bar%\" OR (description LIKE \"% football %\" OR description LIKE \"% football.%\" OR description LIKE \"% football,%\") AND description LIKE \"%exact phrase%\" AND description LIKE \"%foo%\" AND description LIKE \"%bar%\")")
33
+ end
34
+
35
+ it "should permit excluding words" do
36
+ txt = "foo bar -baz"
37
+ txt.searchify(fields).should eql("(title LIKE \"%foo%\" AND title LIKE \"%bar%\" OR description LIKE \"%foo%\" AND description LIKE \"%bar%\") AND (title NOT LIKE \"%baz%\" AND description NOT LIKE \"%baz%\")")
38
+ end
39
+
40
+ it "should permit exact excludes" do
41
+ txt = 'foo bar -"exact phrase"'
42
+ txt.searchify(fields).should eql("(title LIKE \"%foo%\" AND title LIKE \"%bar%\" OR description LIKE \"%foo%\" AND description LIKE \"%bar%\") AND (title NOT LIKE \"%exact phrase%\" AND description NOT LIKE \"%exact phrase%\")")
43
+ end
44
+
45
+ it "should permit exact word excludes" do
46
+ txt = 'foo bar -`exact phrase`'
47
+ txt.searchify(fields).should eql("(title LIKE \"%foo%\" AND title LIKE \"%bar%\" OR description LIKE \"%foo%\" AND description LIKE \"%bar%\") AND ((title NOT LIKE \"% exact phrase %\" OR title NOT LIKE \"% exact phrase.%\" OR title NOT LIKE \"% exact phrase,%\") AND (description NOT LIKE \"% exact phrase %\" OR description NOT LIKE \"% exact phrase.%\" OR description NOT LIKE \"% exact phrase,%\"))")
48
+ end
49
+
50
+ it "should permit mixing all the options" do
51
+ txt = 'foo -bar "exact phrase" -"exact exclude phrase"'
52
+ txt.searchify(fields).should eql("(title LIKE \"%exact phrase%\" AND title LIKE \"%foo%\" OR description LIKE \"%exact phrase%\" AND description LIKE \"%foo%\") AND (title NOT LIKE \"%exact exclude phrase%\" AND title NOT LIKE \"%bar%\" AND description NOT LIKE \"%exact exclude phrase%\" AND description NOT LIKE \"%bar%\")")
53
+ end
54
+
55
+ it "should allow setting the operator" do
56
+ txt = "foo bar baz"
57
+ txt.searchify(fields, operator: :or).should eql("(title LIKE \"%foo%\" OR title LIKE \"%bar%\" OR title LIKE \"%baz%\" OR description LIKE \"%foo%\" OR description LIKE \"%bar%\" OR description LIKE \"%baz%\")")
58
+ end
59
+
60
+ end
61
+
62
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Piola::Uri do
5
+
6
+ describe '#uri_escape' do
7
+
8
+ it "should correctly escape uris" do
9
+ url = 'http://andes.info.ec/economía/8150.html'
10
+ url.uri_escape.should eql('http://andes.info.ec/econom%C3%ADa/8150.html')
11
+ end
12
+
13
+ end
14
+
15
+ describe '#uri_unescape' do
16
+
17
+ it "should correctly unescape uris" do
18
+ url = 'http://andes.info.ec/econom%C3%ADa/8150.html'
19
+ url.uri_unescape.should eql('http://andes.info.ec/economía/8150.html')
20
+ end
21
+
22
+ end
23
+
24
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: piola
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - David Jairala
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: htmlentities
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 4.3.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 4.3.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 3.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.0
46
+ description: String extensions and quality of life methods
47
+ email:
48
+ - davidjairala@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - .rspec
55
+ - .rvmrc
56
+ - Gemfile
57
+ - LICENSE
58
+ - README.md
59
+ - Rakefile
60
+ - lib/piola.rb
61
+ - lib/piola/encoding.rb
62
+ - lib/piola/html.rb
63
+ - lib/piola/importance.rb
64
+ - lib/piola/numbers.rb
65
+ - lib/piola/parsing.rb
66
+ - lib/piola/special_chars.rb
67
+ - lib/piola/splitting.rb
68
+ - lib/piola/sql.rb
69
+ - lib/piola/uri.rb
70
+ - lib/piola/version.rb
71
+ - piola.gemspec
72
+ - spec/encoding_spec.rb
73
+ - spec/html_spec.rb
74
+ - spec/importance_spec.rb
75
+ - spec/numbers_spec.rb
76
+ - spec/parsing_spec.rb
77
+ - spec/spec_helper.rb
78
+ - spec/special_chars_spec.rb
79
+ - spec/splitting_spec.rb
80
+ - spec/sql_spec.rb
81
+ - spec/uri_spec.rb
82
+ homepage: ''
83
+ licenses: []
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 1.8.24
103
+ signing_key:
104
+ specification_version: 3
105
+ summary: Provides a bunch of extensions for Strings, HTML manipulation methods, splitting,
106
+ spanish language quality of life, etc.
107
+ test_files:
108
+ - spec/encoding_spec.rb
109
+ - spec/html_spec.rb
110
+ - spec/importance_spec.rb
111
+ - spec/numbers_spec.rb
112
+ - spec/parsing_spec.rb
113
+ - spec/spec_helper.rb
114
+ - spec/special_chars_spec.rb
115
+ - spec/splitting_spec.rb
116
+ - spec/sql_spec.rb
117
+ - spec/uri_spec.rb