rslog 0.0.12 → 0.0.14
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 +4 -4
- data/lib/rslog.rb +3 -2
- data/lib/rslog/decorators.rb +24 -0
- data/lib/rslog/opts.rb +13 -5
- data/lib/rslog/presenter.rb +5 -25
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a458692b87d66b9b3b9159e9263172dc27b8d07a9df51a9fc336da6ff36c9388
|
|
4
|
+
data.tar.gz: d5ecb7b45c9534739a6e7c42c03cde7a468bd634b13659a837c9750647763120
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e92c43c6e11b59e096a78e750007bd3a607c6742e1332231fb92e4ba6a7156836300f91cef763637e95ecadca52df671e76ad6963b45ec3bf744ef64a55d4f0
|
|
7
|
+
data.tar.gz: f77065e38bb39f59fdd2b82e4ada8dc25313891075e4927fa0176ab931b846d036a56507edb94cdbf90c9958ed7e05282c63f9a933906a1bd617438c91d40384
|
data/lib/rslog.rb
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
|
|
4
4
|
require_relative 'rslog/container'
|
|
5
5
|
require_relative 'rslog/worker'
|
|
6
|
+
require_relative 'rslog/opts'
|
|
6
7
|
require_relative 'rslog/input_parser'
|
|
7
8
|
require_relative 'rslog/extractor'
|
|
8
9
|
require_relative 'rslog/validator'
|
|
9
10
|
require_relative 'rslog/data_parser'
|
|
11
|
+
require_relative 'rslog/decorators'
|
|
10
12
|
require_relative 'rslog/presenter'
|
|
11
|
-
require_relative 'rslog/opts'
|
|
12
13
|
|
|
13
14
|
# For development
|
|
14
15
|
# require 'pry'
|
|
15
16
|
|
|
16
17
|
class RSlog
|
|
17
|
-
VERSION = '0.0.
|
|
18
|
+
VERSION = '0.0.14'
|
|
18
19
|
|
|
19
20
|
def self.run
|
|
20
21
|
Container.new.process_all
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Class to present result in needed format
|
|
4
|
+
#
|
|
5
|
+
module Decorators
|
|
6
|
+
def self.all_title
|
|
7
|
+
'List of webpages with most page views ordered from most views to less'
|
|
8
|
+
end
|
|
9
|
+
def self.all_suffix
|
|
10
|
+
'visits'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.uniq_title
|
|
14
|
+
'List list of webpages with most unique page views also ordered'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.uniq_suffix
|
|
18
|
+
'unique views'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.separator
|
|
22
|
+
'-----------------------------'
|
|
23
|
+
end
|
|
24
|
+
end
|
data/lib/rslog/opts.rb
CHANGED
|
@@ -19,19 +19,27 @@ module Opts
|
|
|
19
19
|
|
|
20
20
|
def self.create_opts
|
|
21
21
|
OptionParser.new do |opts|
|
|
22
|
-
|
|
22
|
+
banner(opts)
|
|
23
23
|
help(opts)
|
|
24
|
-
opts
|
|
25
|
-
Opts::HELP[:action].call(opts)
|
|
26
|
-
exit
|
|
27
|
-
end
|
|
24
|
+
version(opts)
|
|
28
25
|
end
|
|
29
26
|
end
|
|
30
27
|
|
|
28
|
+
def self.banner(opts)
|
|
29
|
+
opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} FILENAME"
|
|
30
|
+
end
|
|
31
|
+
|
|
31
32
|
def self.help(opts)
|
|
32
33
|
opts.on(*Opts::VERSION[:descr]) do
|
|
33
34
|
Opts::VERSION[:action].call
|
|
34
35
|
exit
|
|
35
36
|
end
|
|
36
37
|
end
|
|
38
|
+
|
|
39
|
+
def self.version(opts)
|
|
40
|
+
opts.on(*Opts::HELP[:descr]) do
|
|
41
|
+
Opts::HELP[:action].call(opts)
|
|
42
|
+
exit
|
|
43
|
+
end
|
|
44
|
+
end
|
|
37
45
|
end
|
data/lib/rslog/presenter.rb
CHANGED
|
@@ -6,17 +6,9 @@ require_relative 'tools/array'
|
|
|
6
6
|
# Class to present result in needed format
|
|
7
7
|
#
|
|
8
8
|
class Presenter < Worker
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'List of webpages with most page views ordered from most views to less',
|
|
13
|
-
suffix: 'visits'
|
|
14
|
-
},
|
|
15
|
-
uniq: {
|
|
16
|
-
title: 'List list of webpages with most unique page views also ordered',
|
|
17
|
-
suffix: 'unique views'
|
|
18
|
-
}
|
|
19
|
-
}.freeze
|
|
9
|
+
include Decorators
|
|
10
|
+
|
|
11
|
+
attr_accessor :type
|
|
20
12
|
|
|
21
13
|
def execute(type, formatter)
|
|
22
14
|
@type = type
|
|
@@ -26,22 +18,10 @@ class Presenter < Worker
|
|
|
26
18
|
|
|
27
19
|
private
|
|
28
20
|
|
|
29
|
-
def title
|
|
30
|
-
decorator[:title]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def suffix
|
|
34
|
-
decorator[:suffix]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def decorator
|
|
38
|
-
DECORATORS[@type]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
21
|
def format_as_text
|
|
42
22
|
[
|
|
43
|
-
|
|
44
|
-
container.result.to_multiline_string(
|
|
23
|
+
Decorators.send("#{type}_title"),
|
|
24
|
+
container.result.to_multiline_string(Decorators.send("#{type}_suffix")),
|
|
45
25
|
separator
|
|
46
26
|
].join("\n")
|
|
47
27
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rslog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrey Eremeev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-03-
|
|
11
|
+
date: 2021-03-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Ruby script to get overall Statistic for weblog logs!
|
|
14
14
|
email: a.eremeev@outlook.com
|
|
@@ -21,6 +21,7 @@ files:
|
|
|
21
21
|
- lib/rslog.rb
|
|
22
22
|
- lib/rslog/container.rb
|
|
23
23
|
- lib/rslog/data_parser.rb
|
|
24
|
+
- lib/rslog/decorators.rb
|
|
24
25
|
- lib/rslog/extractor.rb
|
|
25
26
|
- lib/rslog/input_parser.rb
|
|
26
27
|
- lib/rslog/opts.rb
|