contador 0.2.0 → 1.0.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/README.md +13 -2
- data/VERSION +1 -1
- data/contador.gemspec +2 -2
- data/lib/contador.rb +19 -7
- data/spec/contador_spec.rb +18 -5
- metadata +22 -22
data/README.md
CHANGED
@@ -6,11 +6,22 @@ It a way to count the amount of times each word appears on a string.
|
|
6
6
|
USAGE
|
7
7
|
-----
|
8
8
|
|
9
|
-
`@sentence =
|
9
|
+
`@sentence = Contador.new("Tally is cool.")`
|
10
10
|
|
11
|
-
`=> #<
|
11
|
+
`=> #<Contador:0x10103f488 @final={:is=>1, :cool=>1, :tally=>1}, @string="Tally is cool.">`
|
12
12
|
|
13
13
|
`@sentence.multiplicity`
|
14
14
|
|
15
15
|
`=> {:is=>1, :cool=>1, :tally=>1}`
|
16
16
|
|
17
|
+
OMITING REQUENT WORDS
|
18
|
+
----------------------
|
19
|
+
|
20
|
+
We use a global for omiting frequent words. For example:
|
21
|
+
|
22
|
+
`$omit = "yo no"`
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/contador.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{contador}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "1.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ivan Acosta-Rubio"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-31}
|
13
13
|
s.description = %q{This gem counts the numbers of words in a string. It returns each word and the multiplicity}
|
14
14
|
s.email = %q{ivan@bakedweb.net}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/contador.rb
CHANGED
@@ -1,32 +1,44 @@
|
|
1
|
-
class Contador
|
1
|
+
class Contador
|
2
2
|
|
3
3
|
attr_accessor :string
|
4
4
|
|
5
|
-
def initialize(string)
|
5
|
+
def initialize(string)
|
6
|
+
@omit = []
|
6
7
|
@string = string
|
7
8
|
@final = Hash.new
|
8
9
|
split_string_into_hash
|
10
|
+
delete_omits if $omits
|
9
11
|
end
|
10
12
|
|
11
|
-
def
|
13
|
+
def delete_omits
|
14
|
+
$omits.split(' ').each do |word|
|
15
|
+
@final.delete(word.to_sym)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def multiplicity
|
12
20
|
@final
|
13
21
|
end
|
14
22
|
|
23
|
+
def omit(word)
|
24
|
+
@final.delete(word.to_sym)
|
25
|
+
end
|
26
|
+
|
15
27
|
private
|
16
28
|
|
17
|
-
def split_string_into_hash
|
29
|
+
def split_string_into_hash
|
18
30
|
string.split(' ').each do |word|
|
19
31
|
begin
|
20
|
-
word.gsub!(/\W+/, '')
|
32
|
+
word.gsub!(/\W+/, '')
|
21
33
|
key = word.downcase.to_sym
|
22
34
|
if @final.has_key?(key)
|
23
|
-
@final[key] += 1
|
35
|
+
@final[key] += 1
|
24
36
|
else
|
25
37
|
@final[key] = 1
|
26
38
|
end
|
27
39
|
rescue
|
28
40
|
puts "Upsss.. #{word}"
|
29
41
|
end
|
30
|
-
|
42
|
+
end
|
31
43
|
end
|
32
44
|
end
|
data/spec/contador_spec.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'spec'
|
2
|
-
require 'contador'
|
3
|
+
require 'lib/contador'
|
3
4
|
|
4
5
|
describe Contador do
|
5
6
|
it "returns an empty string for nothing " do
|
@@ -37,12 +38,24 @@ describe Contador do
|
|
37
38
|
contador.multiplicity.should == {:esto => 2, :esta => 2, :depinga => 2}
|
38
39
|
end
|
39
40
|
|
40
|
-
|
41
|
-
string = "estan muyyy lindos cual es el precio por bolsito, estan cool Cuanto s su precio cual es su precio quisiera saber los precios ESTAN MUY LINDOS me encantan Donde estàn ubicados? hermosos por donde el envio y costo? - Quisiera saber el precio antes de comprar Quisiera saber el precio antes de comprar NO NINGUNO son bellos pero cuanto cuestan stan dmasiado beios me encantan estos bolso. en cuanto tiempo mas o menos tengo q hacerles el deposito? soy de maracaibo gracias cuanto es? umm okzz me gustaria saber si no hay otra rebaja por la cantidad?? y con posibilidades de comprar mas, gracias xD hola como estas quisiera que por fa me enciaras fotos de los bolsos y me dieras el precio especifica de c/u... y como hacemos con el envio?? :D - nop me gustan los bolsitos - nop noo q staan muuy lindos como es el envio"
|
41
|
+
end
|
42
42
|
|
43
|
-
|
44
|
-
|
43
|
+
describe Contador, "No sally words" do
|
44
|
+
it "omits some basic words" do
|
45
|
+
contador = Contador.new("y y y precio")
|
46
|
+
contador.omit("y")
|
47
|
+
contador.multiplicity.should == {:precio => 1}
|
48
|
+
end
|
45
49
|
|
50
|
+
it "knows about a constant and omits those words" do
|
51
|
+
$omits = "y"
|
52
|
+
contador = Contador.new("y y y wasa")
|
53
|
+
contador.multiplicity.should == {:wasa => 1}
|
46
54
|
end
|
47
55
|
|
56
|
+
it "knows about a contant with multiple words" do
|
57
|
+
$omits = "y que yo"
|
58
|
+
contador = Contador.new("y que yo precio")
|
59
|
+
contador.multiplicity.should == {:precio => 1}
|
60
|
+
end
|
48
61
|
end
|
metadata
CHANGED
@@ -4,10 +4,10 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 1.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ivan Acosta-Rubio
|
@@ -15,14 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-03-31 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
type: :development
|
24
|
-
name: bundler
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
23
|
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
@@ -33,12 +30,12 @@ dependencies:
|
|
33
30
|
- 0
|
34
31
|
- 0
|
35
32
|
version: 1.0.0
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
prerelease: false
|
39
33
|
type: :development
|
40
|
-
name:
|
41
|
-
|
34
|
+
name: bundler
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
40
|
requirements:
|
44
41
|
- - ~>
|
@@ -49,12 +46,12 @@ dependencies:
|
|
49
46
|
- 5
|
50
47
|
- 1
|
51
48
|
version: 1.5.1
|
52
|
-
requirement: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
prerelease: false
|
55
49
|
type: :development
|
56
|
-
name:
|
57
|
-
|
50
|
+
name: jeweler
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
55
|
none: false
|
59
56
|
requirements:
|
60
57
|
- - ">="
|
@@ -63,12 +60,12 @@ dependencies:
|
|
63
60
|
segments:
|
64
61
|
- 0
|
65
62
|
version: "0"
|
66
|
-
requirement: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
prerelease: false
|
69
63
|
type: :development
|
70
64
|
name: rspec
|
71
|
-
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
69
|
none: false
|
73
70
|
requirements:
|
74
71
|
- - ">"
|
@@ -79,7 +76,10 @@ dependencies:
|
|
79
76
|
- 2
|
80
77
|
- 3
|
81
78
|
version: 1.2.3
|
82
|
-
|
79
|
+
type: :development
|
80
|
+
name: rspec
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: *id004
|
83
83
|
description: This gem counts the numbers of words in a string. It returns each word and the multiplicity
|
84
84
|
email: ivan@bakedweb.net
|
85
85
|
executables: []
|