text_search 0.1.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.
- checksums.yaml +7 -0
- data/lib/text_search.rb +6 -0
- data/lib/text_search/base.rb +19 -0
- data/lib/text_search/text.rb +18 -0
- data/lib/text_search/version.rb +3 -0
- data/lib/text_search/web.rb +35 -0
- metadata +121 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6853d6b8d0090202efa77b7985dd75746ea5b8d5
|
4
|
+
data.tar.gz: 366788794571bb4bf5370eab95d7d6fc05b75496
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cf7a150846e00cef9f264bd5aca5ab935583afd3bee4c4ed745c9504f570f96de51aa6f8e8dcb6fb8800fa65fbab1f871a9cab5d9c5c9cb62e1f6f7b67a7994b
|
7
|
+
data.tar.gz: 8d1a2d19c9fedd164e7b176386b4e037f94e15d6374b1c6d52491cf06ab3903892d62ef64afc35b1e06d54aea99d334bb9feaeb3e18fad577ac3a329e03be21e
|
data/lib/text_search.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module TextSearch
|
2
|
+
class Base
|
3
|
+
def self.counter(text, words)
|
4
|
+
results = []
|
5
|
+
hash = Hash.new
|
6
|
+
|
7
|
+
words.each do |word|
|
8
|
+
hash[word] = text.scan(/#{word}/).size
|
9
|
+
results.push(hash)
|
10
|
+
hash = Hash.new
|
11
|
+
end
|
12
|
+
return results
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.words(text)
|
16
|
+
text.split(/\W+/)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "text_search/base"
|
2
|
+
|
3
|
+
module TextSearch
|
4
|
+
class Text
|
5
|
+
def initialize(text, words=[])
|
6
|
+
@text = text
|
7
|
+
@words = words
|
8
|
+
end
|
9
|
+
|
10
|
+
def search
|
11
|
+
TextSearch::Base.counter(@text.downcase, @words)
|
12
|
+
end
|
13
|
+
|
14
|
+
def words
|
15
|
+
TextSearch::Base.words(@text.downcase)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'open_uri_redirections'
|
4
|
+
require "text_search/base"
|
5
|
+
|
6
|
+
module TextSearch
|
7
|
+
class Web
|
8
|
+
def initialize(url, words=[])
|
9
|
+
@url = url
|
10
|
+
@words = words
|
11
|
+
fetchtext
|
12
|
+
end
|
13
|
+
|
14
|
+
def search
|
15
|
+
TextSearch::Base.counter(@text.downcase, @words)
|
16
|
+
end
|
17
|
+
|
18
|
+
def words
|
19
|
+
TextSearch::Base.words(@text.downcase)
|
20
|
+
end
|
21
|
+
private
|
22
|
+
def fetchtext
|
23
|
+
@url = "http://#{@url}" if (!URI.parse(@url).scheme)
|
24
|
+
@text = ""
|
25
|
+
begin
|
26
|
+
html = Nokogiri::HTML(open( @url, :allow_redirections => :safe))
|
27
|
+
html.css('script').remove
|
28
|
+
@text = html.at('html').inner_text
|
29
|
+
rescue Exception => e
|
30
|
+
return @text
|
31
|
+
end
|
32
|
+
return @text
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: text_search
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Davide Santangelo
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-04-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: open_uri_redirections
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: TextSearch allows to count the number of occurrences of a word in a text.
|
84
|
+
You can use this gem to search word inside text.
|
85
|
+
email:
|
86
|
+
- davide.santangelo@gmail.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- lib/text_search.rb
|
92
|
+
- lib/text_search/base.rb
|
93
|
+
- lib/text_search/text.rb
|
94
|
+
- lib/text_search/version.rb
|
95
|
+
- lib/text_search/web.rb
|
96
|
+
homepage: ''
|
97
|
+
licenses:
|
98
|
+
- MIT
|
99
|
+
metadata:
|
100
|
+
allowed_push_host: https://rubygems.org
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.9.3
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.4.6
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: TextSearch allows to count the number of occurrences of a word in a text.
|
121
|
+
test_files: []
|