blabla 0.0.1 → 0.0.2

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,177 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Top Level Namespace
8
+
9
+ &mdash; Documentação da Gem BlaBla
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index</a> &raquo;
35
+
36
+
37
+ <span class="title">Top Level Namespace</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Top Level Namespace
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ </dl>
82
+ <div class="clear"></div>
83
+
84
+ <h2>Defined Under Namespace</h2>
85
+ <p class="children">
86
+
87
+
88
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="BlaBla.html" title="BlaBla (module)">BlaBla</a></span>
89
+
90
+
91
+
92
+
93
+ </p>
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+ <h2>
103
+ Instance Method Summary
104
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
105
+ </h2>
106
+
107
+ <ul class="summary">
108
+
109
+ <li class="public ">
110
+ <span class="summary_signature">
111
+
112
+ <a href="#require_generator-instance_method" title="#require_generator (instance method)">- (Object) <strong>require_generator</strong>(name) </a>
113
+
114
+
115
+
116
+ </span>
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+ <span class="summary_desc"><div class='inline'></div></span>
127
+
128
+ </li>
129
+
130
+
131
+ </ul>
132
+
133
+
134
+
135
+
136
+ <div id="instance_method_details" class="method_details_list">
137
+ <h2>Instance Method Details</h2>
138
+
139
+
140
+ <div class="method_details first">
141
+ <h3 class="signature first" id="require_generator-instance_method">
142
+
143
+ - (<tt>Object</tt>) <strong>require_generator</strong>(name)
144
+
145
+
146
+
147
+
148
+
149
+ </h3><table class="source_code">
150
+ <tr>
151
+ <td>
152
+ <pre class="lines">
153
+
154
+
155
+ 39</pre>
156
+ </td>
157
+ <td>
158
+ <pre class="code"><span class="info file"># File 'lib/blabla.rb', line 39</span>
159
+
160
+ <span class='kw'>def</span> <span class='id identifier rubyid_require_generator'>require_generator</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='id identifier rubyid_require_relative'>require_relative</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>./generators/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
161
+ </td>
162
+ </tr>
163
+ </table>
164
+ </div>
165
+
166
+ </div>
167
+
168
+ </div>
169
+
170
+ <div id="footer">
171
+ Generated on Fri Apr 12 09:44:17 2013 by
172
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
173
+ 0.8.5.2 (ruby-1.9.3).
174
+ </div>
175
+
176
+ </body>
177
+ </html>
data/lib/blabla.rb CHANGED
@@ -40,6 +40,7 @@ def require_generator(name) require_relative "./generators/#{name}"; end
40
40
 
41
41
  require_generator 'cpf'
42
42
  require_generator 'cnpj'
43
+ require_generator 'isbn'
43
44
  require_generator 'pessoa'
44
45
  require_generator 'cartao_credito'
45
46
  require_generator 'texto/base'
@@ -1,3 +1,4 @@
1
+ #encoding: UTF-8
1
2
  module BlaBla
2
3
  class CartaoCredito
3
4
  #Apesar de que seria perfeitamente possível elaborar um algoritmo mais sofisticado,
@@ -12,6 +13,10 @@ module BlaBla
12
13
  CODIGO_VISA = 4
13
14
  CODIGO_MASTER = 5
14
15
 
16
+
17
+ # Gera um número válido de Cartão de Crédito
18
+ # @param params [Hash] Opções: ":bandeira" > :amex, :visa ou :master
19
+ # @return [String] o número de Cartão de Crédito
15
20
  def self.numero params={}
16
21
  numeros = []
17
22
  numeros_verificacao = []
@@ -71,6 +76,8 @@ module BlaBla
71
76
  numeros.join
72
77
  end
73
78
 
79
+ # Gera um número válido de Cartão de Crédito no formato #### #### #### ####
80
+ # @return [String] o número de Cartão de Crédito formatado
74
81
  def self.formatado params={}
75
82
  numeros = numero(params).split ''
76
83
  [numeros[0..3], " ", numeros[4..7], " ", numeros[8..11], " ", numeros[12..15]].join
@@ -1,5 +1,8 @@
1
+ #encoding: UTF-8
1
2
  module BlaBla
2
3
  class CNPJ
4
+ # Gera um número válido de CNPJ
5
+ # @return [String] o número de CNPJ
3
6
  def self.numero
4
7
  numeros = []
5
8
 
@@ -30,6 +33,8 @@ module BlaBla
30
33
  numeros.join + d1.to_s + d2.to_s
31
34
  end
32
35
 
36
+ # Gera um número válido de CNPJ no formato ##.###.###/####-##
37
+ # @return [String] o número de CNPJ formatado
33
38
  def self.formatado
34
39
  numeros = numero.split ''
35
40
  [numeros[0..1], ".", numeros[2..4], ".", numeros[5..7], "/", numeros[8..11], "-", numeros[12..13]].join
@@ -1,5 +1,8 @@
1
+ #encoding: UTF-8
1
2
  module BlaBla
2
3
  class CPF
4
+ # Gera um número válido de CPF
5
+ # @return [String] o número de CPF
3
6
  def self.numero
4
7
  numeros = []
5
8
 
@@ -27,6 +30,8 @@ module BlaBla
27
30
  numeros.join + d1.to_s + d2.to_s
28
31
  end
29
32
 
33
+ # Gera um número válido de CPF no formato ###.###.###-##
34
+ # @return [String] o número de CPF formatado
30
35
  def self.formatado
31
36
  numeros = numero.split ''
32
37
  [numeros[0..2], ".", numeros[3..5], ".", numeros[6..8], "-", numeros[9..10]].join
@@ -7,10 +7,16 @@ module BlaBla
7
7
  #ToDo
8
8
  end
9
9
 
10
+ # Gera um nome completo de pessoa
11
+ # @param params [Hash] Opções: ":sexo" > :masculino ou :feminino
12
+ # @return [String] um nome completo de pessoa
10
13
  def self.nome params={}
11
14
  primeiro_nome(params) + " " + sobrenome(params)
12
15
  end
13
16
 
17
+ # Gera um primeiro nome de pessoa
18
+ # @param params [Hash] Opções: ":sexo" > :masculino ou :feminino
19
+ # @return [String] primeiro nome de pessoa
14
20
  def self.primeiro_nome params={}
15
21
  sexo = params[:sexo]
16
22
  sexo = [:masculino, :feminino].sample if sexo.nil?
@@ -18,6 +24,9 @@ module BlaBla
18
24
  BlaBla.strings("pessoa>#{sexo == :masculino ? "homens" : "mulheres" }>nomes").sample.capitalize
19
25
  end
20
26
 
27
+ # Gera um sobrenome de pessoa
28
+ # @param params [Hash] Opções: ":sexo" > :masculino ou :feminino (caso seja masculino, o nome poderá possuir um agnome, como Neto, Filho, etc)
29
+ # @return [String] um sobrenome de pessoa
21
30
  def self.sobrenome params={}
22
31
  sexo = params[:sexo]
23
32
 
@@ -2,12 +2,18 @@
2
2
  module BlaBla
3
3
  module Texto
4
4
  class Base
5
+ # Retorna uma palavra aleatória, oriunda do vocabulário do gerador (por exemplo, o gerador de Lorem Ipsum)
6
+ #
7
+ # @return [String] uma palavra
5
8
  def self.palavra
6
9
  tamanho = BlaBla::Util.sortear_por_peso peso_por_tamanho_palavra
7
10
 
8
11
  palavras_gerador.reject{|p| p.size < tamanho.min || p.size > tamanho.max}.sample
9
12
  end
10
13
 
14
+ # Retorna um vetor de palavras aleatórias (geradas usando o método palavra), com a quantidade especificada
15
+ # @param quantidade [Integer] a quantidade de palavras desejada
16
+ # @return [Array] um vetor de palavras
11
17
  def self.palavras quantidade
12
18
  sorteadas = []
13
19
 
@@ -18,6 +24,10 @@ module BlaBla
18
24
  sorteadas
19
25
  end
20
26
 
27
+ # Retorna uma frase com palavras aleatórias, que podem ou não
28
+ # iniciar com o começo padrão do gerador (por ex: Lorem ipsum dolor sit amet...)
29
+ # @param params [Hash] Opções: ":comeco_padrao" > define se a frase deve iniciar com começo padrão do gerador
30
+ # @return [String] uma frase com palavras aleatórias
21
31
  def self.frase params={}
22
32
  raise "Parâmetros inválidos" if params.class != Hash
23
33
 
@@ -50,12 +60,19 @@ module BlaBla
50
60
  (palavras_frase.join(" ") + ".").gsub(" ,", ",").capitalize
51
61
  end
52
62
 
63
+ # Retorna um vetor de frases com palavras aleatórias, com a quantidade especificada
64
+ # @param quantidade [Integer] a quantidade de frases desejada
65
+ # @return [Array] um vetor de frases
53
66
  def self.frases quantidade
54
67
  sorteadas = []
55
68
  1.upto(quantidade) { sorteadas << frase }
56
69
  sorteadas
57
70
  end
58
71
 
72
+ # Retorna um parágrafo com palavras aleatórias, que podem ou não
73
+ # iniciar com o começo padrão do gerador (por ex: Lorem ipsum dolor sit amet...)
74
+ # @param params [Hash] Opções: ":comeco_padrao" > define se o parágrafo deve iniciar com começo padrão do gerador
75
+ # @return [String] um parágrafo com palavras aleatórias
59
76
  def self.paragrafo params={}
60
77
  raise "Parâmetros inválidos" if params.class != Hash
61
78
  tamanho = rand(4..10)
@@ -69,6 +86,9 @@ module BlaBla
69
86
  frases_paragrafo.join " "
70
87
  end
71
88
 
89
+ # Retorna um vetor de parágrafos com palavras aleatórias, com a quantidade especificada
90
+ # @param quantidade [Integer] a quantidade de parágrafos desejada
91
+ # @return [Array] um vetor de parágrafos
72
92
  def self.paragrafos quantidade
73
93
  sorteados = []
74
94
  1.upto(quantidade) { sorteados << paragrafo }
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BlaBla
2
- VERSION = "0.0.1".freeze
2
+ VERSION = "0.0.2".freeze
3
3
  end
data/spec/blabla_spec.rb CHANGED
@@ -40,6 +40,25 @@ describe BlaBla do
40
40
  end
41
41
  end
42
42
 
43
+ describe "Gerador de ISBN" do
44
+ describe ".numero" do
45
+ it "deveria gerar um número de 13 dígitos" do
46
+ BlaBla::ISBN.numero.size.should == 13
47
+ end
48
+
49
+ it "deveria gerar um ISBN válido" do
50
+ 10.times { validar_isbn(BlaBla::ISBN.numero).should be_true }
51
+ end
52
+ end
53
+
54
+ describe ".formatado" do
55
+ it "deveria gerar um ISBN no formato xxx-xxx-xx-xxxx-x" do
56
+ numero = BlaBla::ISBN.formatado
57
+ validar_formatacao_isbn(numero).should be_true
58
+ end
59
+ end
60
+ end
61
+
43
62
  describe "Gerador de Cartão de Crédito" do
44
63
  describe ".numero" do
45
64
  it "deveria gerar um número de 16 dígitos" do
@@ -66,6 +66,24 @@ module BlaBlaHelpers
66
66
  end
67
67
  end
68
68
 
69
+ def validar_isbn numero
70
+ return false if numero.nil?
71
+
72
+ numeros = numero.split('').map &:to_i
73
+
74
+ soma = numeros[0]
75
+ 1.upto(11) do |n|
76
+ soma += numeros[n] * (n % 2 == 0 ? 1 : 3)
77
+ end
78
+
79
+ modulo = soma % 10
80
+
81
+ dv = 0
82
+ dv = 10 - modulo if(modulo != 0)
83
+
84
+ numeros[12] == dv
85
+ end
86
+
69
87
  def validar_cartao_credito numero
70
88
  numero = numero.to_s unless numero.class == String
71
89
 
@@ -93,6 +111,10 @@ module BlaBlaHelpers
93
111
  cnpj =~ /^\d{2}(\.\d{3}){2}\/\d{4}\-\d{2}$/
94
112
  end
95
113
 
114
+ def validar_formatacao_isbn isbn
115
+ isbn =~ /^(\d{3}\-){2}\d{2}\-\d{4}\-\d$/
116
+ end
117
+
96
118
  def validar_formatacao_cartao_credito numero
97
119
  numero =~ /^(\d{4} ){3}\d{4}$/
98
120
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blabla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Alcides Queiroz Aguiar
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-03-31 00:00:00.000000000 Z
12
+ date: 2013-04-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rake
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -33,13 +36,39 @@ extensions: []
33
36
  extra_rdoc_files:
34
37
  - README.md
35
38
  files:
39
+ - .gitignore
36
40
  - .rspec
41
+ - .yardopts
37
42
  - Gemfile
38
43
  - Gemfile.lock
39
44
  - LICENSE
40
45
  - README.md
41
46
  - Rakefile
42
47
  - blabla.gemspec
48
+ - doc/BlaBla.html
49
+ - doc/BlaBla/Bacon.html
50
+ - doc/BlaBla/CNPJ.html
51
+ - doc/BlaBla/CPF.html
52
+ - doc/BlaBla/CartaoCredito.html
53
+ - doc/BlaBla/Lorem.html
54
+ - doc/BlaBla/Pessoa.html
55
+ - doc/BlaBla/Texto.html
56
+ - doc/BlaBla/Texto/Base.html
57
+ - doc/BlaBla/Util.html
58
+ - doc/_index.html
59
+ - doc/class_list.html
60
+ - doc/css/common.css
61
+ - doc/css/full_list.css
62
+ - doc/css/style.css
63
+ - doc/file.README.html
64
+ - doc/file_list.html
65
+ - doc/frames.html
66
+ - doc/index.html
67
+ - doc/js/app.js
68
+ - doc/js/full_list.js
69
+ - doc/js/jquery.js
70
+ - doc/method_list.html
71
+ - doc/top-level-namespace.html
43
72
  - lib/blabla.rb
44
73
  - lib/generators/cartao_credito.rb
45
74
  - lib/generators/cnpj.rb
@@ -56,25 +85,27 @@ files:
56
85
  - spec/support/blabla_helpers.rb
57
86
  homepage: http://rubygems.org/gems/blabla
58
87
  licenses: []
59
- metadata: {}
60
88
  post_install_message:
61
89
  rdoc_options: []
62
90
  require_paths:
63
91
  - lib
64
92
  required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
65
94
  requirements:
66
95
  - - ! '>='
67
96
  - !ruby/object:Gem::Version
68
97
  version: '0'
69
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
70
100
  requirements:
71
101
  - - ! '>='
72
102
  - !ruby/object:Gem::Version
73
103
  version: '0'
74
104
  requirements: []
75
105
  rubyforge_project:
76
- rubygems_version: 2.0.3
106
+ rubygems_version: 1.8.24
77
107
  signing_key:
78
- specification_version: 4
108
+ specification_version: 3
79
109
  summary: Um gerador de dados fictícios, porém realísticos, para desenvolvedores brasileiros.
80
110
  test_files: []
111
+ has_rdoc: