lint_search 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcbcdbde064e95acad037b44eaec0eef298d2be4
4
- data.tar.gz: 6461ff7b45244a76821bc2b12e7a2e11892b2d95
3
+ metadata.gz: 815da0f48c0d78ed44e6b0505ff0b7f346c43dd7
4
+ data.tar.gz: 378214bcbf70ffbef886ee7334dd1597c011199b
5
5
  SHA512:
6
- metadata.gz: c88fe9748c5b59a3d7c88d6d3407a7fbcd6ccd2641188f33c396dbed8900501817d25978ad46585059f92205dab495ae9ffd113002aa34395e0dd613fa581b7f
7
- data.tar.gz: e84030d65a984c9ca01e274664a9db08935706796e11330275e47ba53b7a6f11935d08b1d52f26a89c77ab324a439779dc5a6a94273142a658d0f824a294a8d9
6
+ metadata.gz: 031bcd2d7b955c01f9a973cf1c78b1d2c464f7b389bcbf615d460e2df40f7a1df5bf11c8b0917deaff3c9189c34034bf539caef69cbac0dbe01b2a17a2d17b39
7
+ data.tar.gz: b6d6bf56e2d4717ec06bd2f9b06372cc9a94e797345cd8b8535f5dd34b47dba8b3bbda8d7adef1772de9d9ee54169e2553abd7f088da3fa7fc178767cf90a633
data/exe/lint_search ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'thor'
5
+ require 'lint_search'
6
+
7
+ module LintSearch
8
+ class CLI < Thor
9
+ include Thor::Actions
10
+ default_task :help
11
+
12
+
13
+ desc "search", "Search for a keyword and lint the first result"
14
+ method_option :query_url, aliases: "-q", desc: "Search query url", default: "http://www.google.co.uk/"
15
+ method_option :query_css_selector, aliases: "-c", desc: "Search result CSS selector", default: "h3.r a"
16
+ method_option :linter_url, aliases: "-l", desc: "Linter url", default: "https://validator.w3.org"
17
+ method_option :linter_css_selector, aliases: "-r", desc: "Linter CSS Selector", default: "li.info"
18
+ def search(keyword)
19
+ puts "Searching for #{keyword}..."
20
+ search_result = LintSearch::Search.new({
21
+ keyword: keyword,
22
+ query_url: options[:query_url],
23
+ css_selector: options[:query_css_selector]
24
+ }).search
25
+
26
+ puts "Linting #{search_result.url}..."
27
+ lint_result = LintSearch::Lint.new({
28
+ search_result: search_result,
29
+ linter_url: options[:linter_url],
30
+ css_selector: options[:linter_css_selector]
31
+ }).lint
32
+
33
+ puts "Complete!"
34
+ puts "Lint results of #{search_result.url} via #{options[:linter_url]}"
35
+ lint_result.each_with_index do |result, index|
36
+ puts "(#{index})"
37
+ puts result
38
+ puts "---"
39
+ puts ""
40
+ end
41
+
42
+
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+
49
+
50
+ LintSearch::CLI.start
@@ -1,3 +1,3 @@
1
1
  module LintSearch
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/spec/lint_spec.rb ADDED
@@ -0,0 +1,54 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "LintSearch::Lint" do
4
+ let(:search_result) { { search_result: LintSearch::SearchResult.new(url: "http://www.bbc.co.uk/", title: "BBC") } }
5
+ let(:params_good) { { linter_url: "http://validator.w3.org", css_selector: "li.info" } }
6
+ let(:params_no_url) { { css_selector: "li.info" } }
7
+ let(:params_no_css_selector) { { linter_url: "http://validator.w3.org" } }
8
+
9
+ context ".new" do
10
+ context "with valid data" do
11
+ let(:lint) { LintSearch::Lint.new(search_result.merge(params_good)) }
12
+
13
+ it "creates a new Lint object" do
14
+ expect(lint).to be_a(LintSearch::Lint)
15
+ end
16
+
17
+ it "sets the search_result variable" do
18
+ expect(lint.search_result).to be_a(LintSearch::SearchResult)
19
+ expect(lint.search_result).to eq(search_result[:search_result])
20
+ end
21
+
22
+ it "sets the linter_url variable" do
23
+ expect(lint.linter_url).to eq(params_good[:linter_url])
24
+ end
25
+
26
+ it "sets the css_selector variable" do
27
+ expect(lint.css_selector).to eq(params_good[:css_selector])
28
+ end
29
+ end
30
+
31
+ context "with invalid data" do
32
+
33
+ it "raises an exception when no search result is passed" do
34
+ expect{LintSearch::Lint.new(params_good)}.to raise_exception(/search_result/i)
35
+ end
36
+
37
+ it "raises an exception when search result is not a SearchResult" do
38
+ expect{LintSearch::Lint.new(params_good.merge({search_result: 10}))}.to raise_exception(/LintSearch::SearchResult/i)
39
+ end
40
+
41
+ it "raises an exception when no linter url is passed" do
42
+ expect{LintSearch::Lint.new(params_no_url.merge(search_result))}.to raise_exception(/linter_url/i)
43
+ end
44
+
45
+ it "raises an exception when no css_selector is passed" do
46
+ expect{LintSearch::Lint.new(params_no_css_selector.merge(search_result))}.to raise_exception(/css_selector/i)
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+
54
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "LintSearch::SearchResult" do
4
+ let(:params_good) { {url: "http://www.bbc.co.uk/", title: "BBC"} }
5
+ let(:params_no_url) { {title: "BBC"} }
6
+ let(:params_no_title) { {url: "http://www.bbc.co.uk/"} }
7
+
8
+ context '.new' do
9
+
10
+ it "creates a SearchResult with valid paremeters " do
11
+ expect(LintSearch::SearchResult.new(params_good)).to be_a(LintSearch::SearchResult)
12
+ end
13
+
14
+ it "raises an exception when missing the url" do
15
+ expect{LintSearch::SearchResult.new(params_no_url)}.to raise_exception(/url/i)
16
+ end
17
+
18
+ it "raises an exception when missing the title" do
19
+ expect{LintSearch::SearchResult.new(params_no_title)}.to raise_exception(/title/i)
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,61 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "LintSearch::Search" do
4
+ let(:params_good) { {keyword: "test", query_url: "http://www.google.co.uk/?q=", css_selector: "h3.r a"} }
5
+ let(:params_no_keyword) { {query_url: "http://www.google.co.uk/?q=", css_selector: "h3.r a"} }
6
+ let(:params_no_query_url) { {keyword: "test",css_selector: "h3.r a"} }
7
+ let(:params_no_css_selector) { {keyword: "test", query_url: "http://www.google.co.uk/?q="} }
8
+
9
+ context ".new" do
10
+
11
+ context "with valid parameters" do
12
+ let(:ls) { LintSearch::Search.new(params_good) }
13
+
14
+ it "creates a new LintSearch with valid parameters" do
15
+ expect(ls).to be_a LintSearch::Search
16
+ end
17
+
18
+ it "sets the keyword" do
19
+ expect(ls.keyword).to eq("test")
20
+ end
21
+
22
+ it "sets the query_url" do
23
+ expect(ls.query_url).to eq("http://www.google.co.uk/?q=")
24
+ end
25
+
26
+ it "sets the css_selector" do
27
+ expect(ls.css_selector).to eq( "h3.r a")
28
+ end
29
+ end
30
+
31
+
32
+ context "with invalid parameters" do
33
+ it "raises an Exception when missing the keyword" do
34
+ expect{LintSearch::Search.new(params_no_keyword)}.to raise_exception(/keyword/i)
35
+ end
36
+
37
+ it "raises an Exception when missing the query_url" do
38
+ expect{LintSearch::Search.new(params_no_query_url)}.to raise_exception(/query/i)
39
+ end
40
+
41
+ it "raises an Exception when missing the css_selector" do
42
+ expect{LintSearch::Search.new(params_no_css_selector)}.to raise_exception(/css/i)
43
+ end
44
+
45
+
46
+ end
47
+
48
+ end
49
+
50
+ context ".search" do
51
+
52
+ end
53
+
54
+ context ".query" do
55
+ let(:search) { LintSearch::Search.new(params_good) }
56
+
57
+ it "returns concat of query_url and keyword" do
58
+ expect(search.query).to eq("http://www.google.co.uk/?q=test")
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'lint_search'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lint_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Russell
@@ -83,25 +83,26 @@ dependencies:
83
83
  description:
84
84
  email:
85
85
  - dave.kerr@gmail.com
86
- executables: []
86
+ executables:
87
+ - lint_search
87
88
  extensions: []
88
89
  extra_rdoc_files: []
89
90
  files:
90
- - ".gitignore"
91
- - ".rspec"
92
- - ".travis.yml"
93
- - Gemfile
94
91
  - README.md
95
92
  - Rakefile
96
93
  - bin/console
97
94
  - bin/lint_search
98
95
  - bin/setup
96
+ - exe/lint_search
99
97
  - lib/lint_search.rb
100
98
  - lib/lint_search/lint.rb
101
99
  - lib/lint_search/search.rb
102
100
  - lib/lint_search/search_result.rb
103
101
  - lib/lint_search/version.rb
104
- - lint_search.gemspec
102
+ - spec/lint_spec.rb
103
+ - spec/search_result_spec.rb
104
+ - spec/search_spec.rb
105
+ - spec/spec_helper.rb
105
106
  homepage: http://github.com/OkayDave/lint_search
106
107
  licenses: []
107
108
  metadata: {}
@@ -124,7 +125,7 @@ rubyforge_project:
124
125
  rubygems_version: 2.2.2
125
126
  signing_key:
126
127
  specification_version: 4
127
- summary: LintSearch is a an application which searchs for a keyword and then liunts
128
+ summary: LintSearch is a an application which searchs for a keyword and then lints
128
129
  the first results
129
130
  test_files: []
130
131
  has_rdoc:
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.2
4
- before_install: gem install bundler -v 1.10.6
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in lint_search.gemspec
4
- gemspec
data/lint_search.gemspec DELETED
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'lint_search/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "lint_search"
8
- spec.version = LintSearch::VERSION
9
- spec.authors = ["Dave Russell"]
10
- spec.email = ["dave.kerr@gmail.com"]
11
-
12
- spec.summary = %q{LintSearch is a an application which searchs for a keyword and then liunts the first results}
13
- spec.homepage = "http://github.com/OkayDave/lint_search"
14
-
15
-
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.bindir = "exe"
18
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.10"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec"
24
-
25
-
26
- spec.add_runtime_dependency "thor", "~> 0.19"
27
- spec.add_runtime_dependency "mechanize", "~> 2.7"
28
- end