Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
* develop:
  added simplecov
  refactoring
  • Loading branch information
mrsutter committed Apr 25, 2016
2 parents 0c8557a + 6fc680f commit 517bad4
Show file tree
Hide file tree
Showing 32 changed files with 398 additions and 343 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ gem 'concurrent-ruby', require: 'concurrent'
gem 'rspec', '~> 3.4.0'
gem 'webmock', require: false
gem 'timecop'
gem 'simplecov', require: false
gem 'coveralls', require: false
1 change: 1 addition & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,6 @@ DEPENDENCIES
coveralls
faraday (~> 0.9.2)
rspec (~> 3.4.0)
simplecov
timecop
webmock
9 changes: 1 addition & 8 deletions boot.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,4 @@
require 'logger'
require 'yaml'

Dir[File.dirname(__FILE__) + '/lib/utils/*.rb'].each { |file| require file }
Dir[File.dirname(__FILE__) + '/lib/utils/http_client/*.rb'].each { |file| require file }

require_relative 'lib/strategy'
require_relative 'lib/thread_strategy'
Dir[File.dirname(__FILE__) + '/lib/thread_strategy/*.rb'].each { |file| require file }
require_relative 'lib/thread_pool_strategy'
Dir[File.dirname(__FILE__) + '/lib/thread_pool_strategy/*.rb'].each { |file| require file }
require_relative 'lib/url_inspector'
3 changes: 1 addition & 2 deletions config/initializers/logger_initializer.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
FileUtils.mkdir_p('log') unless Dir.exist?('log')

logger = UrlInspectorLogger.new('log/main.log')
logger.formatter = UrlInspectorLogger::CustomFormatter.new
UrlInspector::Log.logger = Logger.new('log/main.log')
15 changes: 0 additions & 15 deletions lib/strategy.rb

This file was deleted.

44 changes: 0 additions & 44 deletions lib/thread_pool_strategy.rb

This file was deleted.

44 changes: 0 additions & 44 deletions lib/thread_pool_strategy/inspect_task.rb

This file was deleted.

32 changes: 0 additions & 32 deletions lib/thread_pool_strategy/task_runner.rb

This file was deleted.

19 changes: 0 additions & 19 deletions lib/thread_strategy.rb

This file was deleted.

47 changes: 0 additions & 47 deletions lib/thread_strategy/inspector.rb

This file was deleted.

18 changes: 18 additions & 0 deletions lib/url_inspector.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require_relative 'url_inspector/file_parser'

require_relative 'url_inspector/http_client'
require_relative 'url_inspector/http_client/response'

require_relative 'url_inspector/log'

require_relative 'url_inspector/strategy'

require_relative 'url_inspector/thread_strategy'
require_relative 'url_inspector/thread_strategy/inspector'

require_relative 'url_inspector/thread_pool_strategy'
require_relative 'url_inspector/thread_pool_strategy/task_runner'
require_relative 'url_inspector/thread_pool_strategy/inspect_task'

module UrlInspector
end
33 changes: 33 additions & 0 deletions lib/url_inspector/file_parser.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
module UrlInspector
class FileParser
attr_reader :file_name

def initialize(file_name)
@file_name = file_name
end

def parse
urls = []

File.readlines(file_name).each_with_index do |raw_line, index|
url = raw_line.delete("\n")

if valid_url?(url)
urls << url
else
raise ArgumentError, "Please, check line##{index + 1} in your file"
end
end

raise ArgumentError, "File doesn't have urls" if urls.empty?
urls.uniq
end

private

def valid_url?(url)
uri = URI.parse(url)
uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS)
end
end
end
23 changes: 23 additions & 0 deletions lib/url_inspector/http_client.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module UrlInspector
class HttpClient
class << self
def get(url)
connection = connection(url)
response = connection.get
HttpClient::Response.new(response.status)
rescue Faraday::Error
HttpClient::Response.new
end

private

def connection(url)
params = {
open_timeout: 10,
timeout: 10
}
Faraday.new(url, request: params)
end
end
end
end
16 changes: 16 additions & 0 deletions lib/url_inspector/http_client/response.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module UrlInspector
class HttpClient
class Response
attr_reader :status

def initialize(status = nil)
@status = status
end

def success?
return false if status.nil?
status.between?(200, 209) || status.between?(300, 309)
end
end
end
end
40 changes: 40 additions & 0 deletions lib/url_inspector/log.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module UrlInspector
module Log
class CustomFormatter < Logger::Formatter
def call(severity, datetime, _progname, msg)
formatted_datetime = datetime.strftime('%d.%m.%Y %H:%M:%S')
thread_id = Thread.current.object_id
"[#{formatted_datetime}] [#{thread_id}] [#{severity}] #{msg}\n"
end
end

def log_success(url, interval)
msg = log_msg(url, interval)
logger.info(msg)
end

def log_error(url, interval)
msg = log_msg(url, interval)
logger.error(msg)
end

private

def log_msg(url, interval)
"url=#{url} next_interval=#{interval}"
end

def logger
@logger ||= Log.logger
end

class << self
attr_reader :logger

def logger=(logger)
@logger = logger
@logger.formatter = CustomFormatter.new
end
end
end
end
17 changes: 17 additions & 0 deletions lib/url_inspector/strategy.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module UrlInspector
class Strategy
attr_reader :urls, :normal_interval, :emergency_interval

def initialize(options = {})
@urls = options[:urls]
@normal_interval = options[:normal_interval]
@emergency_interval = options[:emergency_interval]
end

def perform
end

def shutdown
end
end
end
Loading

0 comments on commit 517bad4

Please sign in to comment.