wc 0.98.2 → 0.99.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.
@@ -0,0 +1,18 @@
1
+ require 'wc/reader'
2
+
3
+ module Wc
4
+ class Engine
5
+ def initialize(options={})
6
+
7
+ end
8
+
9
+ def self.read_from_file(filename)
10
+ Array(Wc::Reader.read(filename)).sort { |one, two| -(one[1] <=> two[1]) }
11
+ end
12
+
13
+ def self.read_inline(a_text)
14
+ Array(Wc::Reader.consume(a_text)).sort { |one, two| -(one[1] <=> two[1]) }
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,28 @@
1
+ module Wc
2
+ class Reader
3
+ HIDE_LIST = ['or', 'the', 'of', 'a', 'if', 'to', 'and', 'in', 'is', 'are']
4
+
5
+ def self.read(filename, hide_list=nil)
6
+ occurrences = Hash.new { |h, k| h[k] = 0 }
7
+
8
+ File.open(filename, "r") { |f|
9
+ f.each_line { |line|
10
+ Wc::Reader.consume(line)
11
+ }
12
+ }
13
+ occurrences
14
+ end
15
+
16
+ def self.consume(a_text)
17
+ occurrences = Hash.new { |h, k| h[k] = 0 }
18
+
19
+ words = a_text.split
20
+ words.each { |w|
21
+ if ! HIDE_LIST.include?(w.downcase)
22
+ occurrences[w.downcase] += 1
23
+ end
24
+ }
25
+ occurrences
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'wc'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Wc' do
4
+ it 'should parse a simple string' do
5
+ "This is a test".wc.should be_equal 2
6
+ end
7
+ it 'should tell aword is repeated 3 times' do
8
+ "aword aword aword".occurrences[0][1].should be_equal 3
9
+ end
10
+ end
data/wc.gemspec CHANGED
@@ -1,63 +1,98 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{wc}
8
- s.version = "0.98.2"
8
+ s.version = "0.99.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Paolo Perego"]
12
- s.date = %q{2010-09-20}
12
+ s.date = %q{2011-07-05}
13
13
  s.default_executable = %q{wc}
14
14
  s.description = %q{your ruby word counter experience}
15
15
  s.email = %q{thesp0nge@gmail.com}
16
16
  s.executables = ["wc"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.rdoc"
19
+ "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
- ".gitignore",
24
- "LICENSE",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/wc",
29
- "lib/wc.rb",
30
- "test/helper.rb",
31
- "test/test_wc.rb",
32
- "wc.gemspec"
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "bin/wc",
30
+ "doc/String.html",
31
+ "doc/Wc.html",
32
+ "doc/Wc/Engine.html",
33
+ "doc/Wc/Reader.html",
34
+ "doc/_index.html",
35
+ "doc/class_list.html",
36
+ "doc/classes/Wc.html",
37
+ "doc/classes/Wc.src/M000001.html",
38
+ "doc/classes/Wc.src/M000002.html",
39
+ "doc/classes/Wc.src/M000003.html",
40
+ "doc/classes/Wc.src/M000004.html",
41
+ "doc/classes/Wc.src/M000005.html",
42
+ "doc/classes/Wc.src/M000006.html",
43
+ "doc/created.rid",
44
+ "doc/css/common.css",
45
+ "doc/css/full_list.css",
46
+ "doc/css/style.css",
47
+ "doc/file.README.html",
48
+ "doc/file_list.html",
49
+ "doc/files/lib/wc_rb.html",
50
+ "doc/fr_class_index.html",
51
+ "doc/fr_file_index.html",
52
+ "doc/fr_method_index.html",
53
+ "doc/frames.html",
54
+ "doc/index.html",
55
+ "doc/js/app.js",
56
+ "doc/js/full_list.js",
57
+ "doc/js/jquery.js",
58
+ "doc/method_list.html",
59
+ "doc/rdoc-style.css",
60
+ "doc/top-level-namespace.html",
61
+ "lib/wc.rb",
62
+ "lib/wc/engine.rb",
63
+ "lib/wc/reader.rb",
64
+ "spec/spec_helper.rb",
65
+ "spec/wc_spec.rb",
66
+ "wc.gemspec"
33
67
  ]
34
68
  s.homepage = %q{http://github.com/thesp0nge/wc}
35
- s.rdoc_options = ["--charset=UTF-8"]
69
+ s.licenses = ["new BSD License"]
36
70
  s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.7}
71
+ s.rubygems_version = %q{1.6.2}
38
72
  s.summary = %q{your ruby word counter experience}
39
- s.test_files = [
40
- "test/helper.rb",
41
- "test/test_wc.rb"
42
- ]
43
73
 
44
74
  if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
75
  s.specification_version = 3
47
76
 
48
77
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
50
- s.add_development_dependency(%q<builder>, [">= 2.1.2"])
51
- s.add_development_dependency(%q<json_pure>, [">= 1.4.3"])
78
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
79
+ s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
80
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
81
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
82
+ s.add_development_dependency(%q<rcov>, [">= 0"])
52
83
  else
53
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
54
- s.add_dependency(%q<builder>, [">= 2.1.2"])
55
- s.add_dependency(%q<json_pure>, [">= 1.4.3"])
84
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
85
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
86
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
87
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
88
+ s.add_dependency(%q<rcov>, [">= 0"])
56
89
  end
57
90
  else
58
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
59
- s.add_dependency(%q<builder>, [">= 2.1.2"])
60
- s.add_dependency(%q<json_pure>, [">= 1.4.3"])
91
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
92
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
93
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
94
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
95
+ s.add_dependency(%q<rcov>, [">= 0"])
61
96
  end
62
97
  end
63
98
 
metadata CHANGED
@@ -1,124 +1,153 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: wc
3
- version: !ruby/object:Gem::Version
4
- hash: 403
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 98
9
- - 2
10
- version: 0.98.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.99.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Paolo Perego
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-09-20 00:00:00 +02:00
12
+ date: 2011-07-05 00:00:00.000000000 +02:00
19
13
  default_executable: wc
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: thoughtbot-shoulda
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: &2156768960 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *2156768960
26
+ - !ruby/object:Gem::Dependency
27
+ name: yard
28
+ requirement: &2156768200 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.6.0
34
+ type: :development
23
35
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
36
+ version_requirements: *2156768200
37
+ - !ruby/object:Gem::Dependency
38
+ name: bundler
39
+ requirement: &2156766620 !ruby/object:Gem::Requirement
25
40
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 1.0.0
33
45
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: builder
37
46
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
47
+ version_requirements: *2156766620
48
+ - !ruby/object:Gem::Dependency
49
+ name: jeweler
50
+ requirement: &2156764820 !ruby/object:Gem::Requirement
39
51
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 15
44
- segments:
45
- - 2
46
- - 1
47
- - 2
48
- version: 2.1.2
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 1.6.2
49
56
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: json_pure
53
57
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
58
+ version_requirements: *2156764820
59
+ - !ruby/object:Gem::Dependency
60
+ name: rcov
61
+ requirement: &2156763080 !ruby/object:Gem::Requirement
55
62
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 1
60
- segments:
61
- - 1
62
- - 4
63
- - 3
64
- version: 1.4.3
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
65
67
  type: :development
66
- version_requirements: *id003
68
+ prerelease: false
69
+ version_requirements: *2156763080
67
70
  description: your ruby word counter experience
68
71
  email: thesp0nge@gmail.com
69
- executables:
72
+ executables:
70
73
  - wc
71
74
  extensions: []
72
-
73
- extra_rdoc_files:
75
+ extra_rdoc_files:
74
76
  - LICENSE
75
77
  - README.rdoc
76
- files:
78
+ files:
77
79
  - .document
78
- - .gitignore
80
+ - Gemfile
81
+ - Gemfile.lock
79
82
  - LICENSE
80
83
  - README.rdoc
81
84
  - Rakefile
82
85
  - VERSION
83
86
  - bin/wc
87
+ - doc/String.html
88
+ - doc/Wc.html
89
+ - doc/Wc/Engine.html
90
+ - doc/Wc/Reader.html
91
+ - doc/_index.html
92
+ - doc/class_list.html
93
+ - doc/classes/Wc.html
94
+ - doc/classes/Wc.src/M000001.html
95
+ - doc/classes/Wc.src/M000002.html
96
+ - doc/classes/Wc.src/M000003.html
97
+ - doc/classes/Wc.src/M000004.html
98
+ - doc/classes/Wc.src/M000005.html
99
+ - doc/classes/Wc.src/M000006.html
100
+ - doc/created.rid
101
+ - doc/css/common.css
102
+ - doc/css/full_list.css
103
+ - doc/css/style.css
104
+ - doc/file.README.html
105
+ - doc/file_list.html
106
+ - doc/files/lib/wc_rb.html
107
+ - doc/fr_class_index.html
108
+ - doc/fr_file_index.html
109
+ - doc/fr_method_index.html
110
+ - doc/frames.html
111
+ - doc/index.html
112
+ - doc/js/app.js
113
+ - doc/js/full_list.js
114
+ - doc/js/jquery.js
115
+ - doc/method_list.html
116
+ - doc/rdoc-style.css
117
+ - doc/top-level-namespace.html
84
118
  - lib/wc.rb
85
- - test/helper.rb
86
- - test/test_wc.rb
119
+ - lib/wc/engine.rb
120
+ - lib/wc/reader.rb
121
+ - spec/spec_helper.rb
122
+ - spec/wc_spec.rb
87
123
  - wc.gemspec
88
124
  has_rdoc: true
89
125
  homepage: http://github.com/thesp0nge/wc
90
- licenses: []
91
-
126
+ licenses:
127
+ - new BSD License
92
128
  post_install_message:
93
- rdoc_options:
94
- - --charset=UTF-8
95
- require_paths:
129
+ rdoc_options: []
130
+ require_paths:
96
131
  - lib
97
- required_ruby_version: !ruby/object:Gem::Requirement
132
+ required_ruby_version: !ruby/object:Gem::Requirement
98
133
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ segments:
104
139
  - 0
105
- version: "0"
106
- required_rubygems_version: !ruby/object:Gem::Requirement
140
+ hash: 4009966106642377193
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
142
  none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- hash: 3
112
- segments:
113
- - 0
114
- version: "0"
143
+ requirements:
144
+ - - ! '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
115
147
  requirements: []
116
-
117
148
  rubyforge_project:
118
- rubygems_version: 1.3.7
149
+ rubygems_version: 1.6.2
119
150
  signing_key:
120
151
  specification_version: 3
121
152
  summary: your ruby word counter experience
122
- test_files:
123
- - test/helper.rb
124
- - test/test_wc.rb
153
+ test_files: []
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC