log-analyser 0.1.2.pre.v012.20201107185736 → 0.1.3.pre.documentation.20201108193310

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f575e04d18c0f0bd6c75bca63285bbb36a10546ec7f98c0f414d8e83dad8118
4
- data.tar.gz: 37d9d840cfb76adf9d1358a6de92a9d73492b6b1e1feceb886c299028462ea24
3
+ metadata.gz: 0a645c762e28326585af1cbe7f3d96e4bb46d6a72996d775692ba74c555ba6fc
4
+ data.tar.gz: f98bbcd840b509840304dd1f7176e484938e29e9200326b2561f9c6dcea79962
5
5
  SHA512:
6
- metadata.gz: bf7f85546abe7c641d1e0c4f4428c5b57e9104db6092c3f6f44295bdd87229893cba1835013e614b15b18a6518465f468fc4b7f4c56ad1235c4f3f1327b058cf
7
- data.tar.gz: bc8d9d48702c1002fbeaa45f544711f291c65ee3976f998a39ebb21bdcc5dad4fc04d1b0c0bc0777f1526d9494e9538f37af830e85c4525efc64b944db46ed15
6
+ metadata.gz: 21314628d221eefc3a808c71847137a8c7ef06b2910085060c58c5f771012bb8950f00c677deaecf2c47e1b775ecfd395b0a57310dfe9e321c2cc73b2be72296
7
+ data.tar.gz: 6c0243885a4c600c13b6b58145a64102c47d9e8f661e45c477f64d5b1f535a89245bba8e8e459a62ee40380c36b6870df7db1cd6c945759aa04c14a20e0685f4
data/CHANGELOG CHANGED
@@ -1 +1,7 @@
1
- v0.1.1. adding gemspec/echoe/
1
+ v0.1.3. completing documentation
2
+
3
+ v0.1.2b.
4
+
5
+ v0.1.2.
6
+
7
+ v0.1.1. adding gemspec/echoe/
data/README.md CHANGED
@@ -26,6 +26,8 @@ After instantiating *log-analyser's* `PageviewsLogAggregator` class with the pat
26
26
  <summary>click to expand the index</summary>
27
27
 
28
28
  - [Installation](#installation)
29
+ * [Gem](#gem)
30
+ * [Project](#project)
29
31
  - [Usage](#usage)
30
32
  - [Logs and Pageviews](#logs-and-pageviews)
31
33
  * [Definitions](#definitions)
@@ -40,6 +42,8 @@ After instantiating *log-analyser's* `PageviewsLogAggregator` class with the pat
40
42
 
41
43
  ## Installation
42
44
 
45
+ ### Gem
46
+
43
47
  To use *log-analyser* in your application, add this line to your Gemfile:
44
48
 
45
49
  ```ruby
@@ -50,44 +54,30 @@ Or install it yourself as:
50
54
 
51
55
  $ gem install log-analyser
52
56
 
53
- ## Usage
54
-
55
- ```
56
- ...
57
- ...
58
- ...
59
- ...
60
- ...
61
- ```
62
-
63
- ## Logs and Pageviews
57
+ #### Gem Usage
64
58
 
65
- ### Definitions
66
- ```
67
- A pageview is defined as a view of a page on your site that is being tracked by the Analytics tracking code.
68
- If a user clicks reload after reaching the page, this is counted as an additional pageview.
69
- If a user navigates to a different page and then returns to the original page, a second pageview is recorded as well.
59
+ ```ruby
60
+ #!/usr/bin/env ruby
70
61
 
71
- A unique pageview, as seen in the Content Overview report, aggregates pageviews that are generated by the same
72
- user during the same session. A unique pageview represents the number of sessions during which that page was
73
- viewed one or more times.
74
- ```
62
+ require 'pageviews_log_aggregator'
75
63
 
76
- ### Log Formatting
64
+ file_path = '/Users/dmazzei/projects/personal/ruby/sp_test/log-analyser/resources/webserver.log'
65
+ log_aggregator = LogAnalyser::PageviewsLogAggregator.new(file_path)
77
66
 
78
- The library is prepared to parser text files, containing one entry per line, in the format: `\page_name identifier`.
67
+ puts "\nAll pageviews"
68
+ log_aggregator.all.each do |key, value|
69
+ puts "#{key&.to_s&.ljust(28, '.')} | #{value}"
70
+ end
79
71
 
80
- A space must separate the page name (first column) from the user identifier (e.g. IP address):
81
-
82
- ```
83
- /help_page/1 126.318.035.038
84
- /contact 184.123.665.067
85
- /home 184.123.665.067
72
+ puts "\nUnique pageviews"
73
+ log_aggregator.unique.each do |key, value|
74
+ puts "#{key&.to_s&.ljust(28, '.')} | #{value}"
75
+ end
86
76
  ```
87
77
 
88
- ## Development
78
+ ![image](https://user-images.githubusercontent.com/3502642/98482375-dbe8b880-21f8-11eb-853a-ea67acf643ae.png)
89
79
 
90
- #### Start with the project:
80
+ ### Project
91
81
 
92
82
  Install the Ruby version specified in `.ruby-version` </br>
93
83
  Clone the project and install Bundler
@@ -109,6 +99,75 @@ Run the initial setup
109
99
  > $ bundle install
110
100
  > ```
111
101
 
102
+ #### Usage
103
+
104
+ Call `./bin/parse_pageview_file.rb` passing a logfile path as argument, will return the pageview count ordered from most to less viewed.</br>
105
+ Check the script with `--help` argument for more options
106
+
107
+ ![image](https://user-images.githubusercontent.com/3502642/98471556-0c265c00-21e5-11eb-8fc3-c029e09e41fa.png)
108
+
109
+ An example log can be found in `resources` folder:
110
+
111
+ $ ./bin/parse_pageview_file.rb --file 'resources/webserver.log'
112
+ |--------------------------------------------------|
113
+ | All pageviews |
114
+ |--------------------------------------------------|
115
+ | /about/2.................... | 90 |
116
+ | /contact.................... | 89 |
117
+ | /index...................... | 82 |
118
+ | /about...................... | 81 |
119
+ | /help_page/1................ | 80 |
120
+ | /home....................... | 78 |
121
+ |--------------------------------------------------|
122
+
123
+ The `-u` or `--unique` option will also display the unique pageview count:
124
+
125
+ $ ./bin/parse_pageview_file.rb --file 'resources/webserver.log' -u
126
+
127
+ And any specific page can be filtered with `-p` or `--page`:
128
+
129
+ $ ./bin/parse_pageview_file.rb --file 'resources/webserver.log' -p '/index'
130
+ |--------------------------------------------------|
131
+ | View count for page: /index |
132
+ |--------------------------------------------------|
133
+ | All pageviews |
134
+ |--------------------------------------------------|
135
+ | /index...................... | 82 |
136
+ |--------------------------------------------------|
137
+
138
+ ## Logs and Pageviews
139
+
140
+ ### Definitions
141
+
142
+ > :page_facing_up: A pageview is defined as a view of a page on your site that is being tracked by the Analytics tracking code. If a user clicks reload after reaching the page, this is counted as an additional pageview. If a user navigates to a different page and then returns to the original page, a second pageview is recorded as well.
143
+
144
+ > :page_with_curl: A unique pageview, as seen in the Content Overview report, aggregates pageviews that are generated by the same user during the same session. A unique pageview represents the number of sessions during which that page was viewed one or more times.
145
+
146
+
147
+ ### Log Formatting
148
+
149
+ The library is prepared to parser text files, containing one entry per line, in the format: `\page_name identifier`.
150
+
151
+ A space must separate the page name (first column) from the user identifier (e.g. IP address):
152
+
153
+ ```
154
+ /help_page/1 126.318.035.038
155
+ /contact 184.123.665.067
156
+ /home 184.123.665.067
157
+ ```
158
+
159
+ ## Development
160
+
161
+ #### Start with the project:
162
+
163
+ ```
164
+ $ git clone git@github.com:DMazzei/log-analyser.git
165
+ $ cd log-analyser
166
+ $ gem install bundler
167
+ $ bundle install
168
+ ```
169
+
170
+ And the world is your oyster...
112
171
 
113
172
  You can also run `Bundle exec console` for an interactive prompt that will allow you to experiment.
114
173
 
@@ -128,9 +187,22 @@ Use `Bundle exec rake rspec` to run the tests.
128
187
  The test coverage is handled by `rspec`, `simplecov` and `coveralls`.
129
188
  Status and coverage history can be checked [here](https://coveralls.io/github/DMazzei/log-analyser).
130
189
 
190
+ #### Deployment
191
+
192
+ Following the creation of a _*Pull Request*_ a CI workflow is triggered in CircleCI, that can be checked [here](https://app.circleci.com/pipelines/github/DMazzei/log-analyser).</br>
193
+ This workflow consist in _building_ the library; Running _rubocop_ and _rspec_ to validate integrity and code quality; And lastly generating and pushing a _feature-gem_ that can be used for development and tests.
194
+
195
+ After passing all checks and requirements on github, a *PR* can be merged as soon as it is reviewed and approved.
196
+ The _*master branch*_ merge process will trigger the deployment process on CircleCI, and this workflow ends with the generation of a _*tagged-gem*_.
197
+
198
+ The whole deployment process will finish by building and tagging a new gem version and pushing it to [rubygems.org](https://rubygems.org/gems/log-analyser).
199
+
200
+ > :warning: In order to merge changes into _*master branch*_, the version must be bumped up, otherwise the deployment will fail.</br>
201
+ > The version must be updated in `version.rb`.
202
+
131
203
  ## Contributing
132
204
 
133
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/log-analyser.
205
+ Bug reports and pull requests are welcome on GitHub at https://github.com/DMazzeig/log-analyser.
134
206
 
135
207
  ## Next Steps
136
208
 
@@ -1,19 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Pageviews
4
- InvalidLogEntriesError = Class.new(StandardError)
3
+ module LogAnalyser
4
+ class Pageviews
5
+ InvalidLogEntriesError = Class.new(StandardError)
5
6
 
6
- def self.for(entries = {})
7
- new.generate_view_count(entries)
8
- rescue StandardError
9
- raise InvalidLogEntriesError
10
- end
7
+ def self.for(entries = {})
8
+ new.generate_view_count(entries)
9
+ rescue StandardError
10
+ raise InvalidLogEntriesError
11
+ end
11
12
 
12
- def generate_view_count(entries)
13
- entries
14
- .transform_values(&:size)
15
- .sort_by(&:last)
16
- .reverse
17
- .to_h
13
+ def generate_view_count(entries)
14
+ entries
15
+ .transform_values(&:size)
16
+ .sort_by(&:last)
17
+ .reverse
18
+ .to_h
19
+ end
18
20
  end
19
21
  end
@@ -4,24 +4,26 @@ require_relative 'parser'
4
4
  require_relative 'pageviews'
5
5
  require_relative 'unique_pageviews'
6
6
 
7
- class PageviewsLogAggregator
8
- def initialize(file_path)
9
- @file_path = file_path
10
- end
7
+ module LogAnalyser
8
+ class PageviewsLogAggregator
9
+ def initialize(file_path)
10
+ @file_path = file_path
11
+ end
11
12
 
12
- def all
13
- Pageviews.for(entries)
14
- end
13
+ def all
14
+ Pageviews.for(entries)
15
+ end
15
16
 
16
- def unique
17
- UniquePageviews.for(entries)
18
- end
17
+ def unique
18
+ UniquePageviews.for(entries)
19
+ end
19
20
 
20
- private
21
+ private
21
22
 
22
- attr_accessor :file_path
23
+ attr_accessor :file_path
23
24
 
24
- def entries
25
- @entries ||= Parser.call(file_path)
25
+ def entries
26
+ @entries ||= Parser.call(file_path)
27
+ end
26
28
  end
27
29
  end
@@ -1,33 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Parser
4
- class FileNotFoundError < StandardError
5
- def initialize(path)
6
- super("File not found for path: [#{path}]")
3
+ module LogAnalyser
4
+ class Parser
5
+ class FileNotFoundError < StandardError
6
+ def initialize(path)
7
+ super("File not found for path: [#{path}]")
8
+ end
7
9
  end
8
- end
9
10
 
10
- def self.call(file_path)
11
- new.call(file_path)
12
- end
11
+ def self.call(file_path)
12
+ new.call(file_path)
13
+ end
13
14
 
14
- def call(file_path)
15
- raise FileNotFoundError, file_path unless File.exist?(file_path)
15
+ def call(file_path)
16
+ raise FileNotFoundError, file_path unless File.exist?(file_path)
16
17
 
17
- data = File.open(file_path).map(&:strip)
18
- data.reject!(&:empty?)
19
- parse(data)
20
- end
18
+ data = File.open(file_path).map(&:strip)
19
+ data.reject!(&:empty?)
20
+ parse(data)
21
+ end
21
22
 
22
- private
23
+ private
23
24
 
24
- def parse(data)
25
- entries = Hash.new { |h, k| h[k] = [] }
26
- data.each do |entry|
27
- key, value = *entry.split(/\s+/)
28
- entries[key] << value
29
- end
25
+ def parse(data)
26
+ entries = Hash.new { |h, k| h[k] = [] }
27
+ data.each do |entry|
28
+ key, value = *entry.split(/\s+/)
29
+ entries[key] << value
30
+ end
30
31
 
31
- entries
32
+ entries
33
+ end
32
34
  end
33
35
  end
@@ -1,10 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class UniquePageviews < Pageviews
4
- def generate_view_count(entries)
5
- entries.transform_values { |value| value.uniq.size }
6
- .sort_by(&:last)
7
- .reverse
8
- .to_h
3
+ module LogAnalyser
4
+ class UniquePageviews < Pageviews
5
+ def generate_view_count(entries)
6
+ entries.transform_values { |value| value.uniq.size }
7
+ .sort_by(&:last)
8
+ .reverse
9
+ .to_h
10
+ end
9
11
  end
10
12
  end
metadata CHANGED
@@ -1,45 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: log-analyser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.v012.20201107185736
4
+ version: 0.1.3.pre.documentation.20201108193310
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mazzei
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-07 00:00:00.000000000 Z
11
+ date: 2020-11-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Log reader and data aggregator for pageviews information.
14
14
  email:
15
15
  - danielmazzei@gmail.com
16
16
  executables: []
17
17
  extensions: []
18
- extra_rdoc_files: []
18
+ extra_rdoc_files:
19
+ - CHANGELOG
20
+ - LICENSE.txt
21
+ - README.md
19
22
  files:
20
- - ".ruby-version"
21
23
  - CHANGELOG
22
- - Gemfile
23
- - Gemfile.lock
24
- - Guardfile
25
24
  - LICENSE.txt
26
25
  - README.md
27
- - Rakefile
28
- - bin/setup
29
- - config/environment.rb
30
26
  - lib/pageviews.rb
31
27
  - lib/pageviews_log_aggregator.rb
32
28
  - lib/parser.rb
33
29
  - lib/unique_pageviews.rb
34
- - log-analyser.gemspec
35
- - version.rb
36
30
  homepage: https://github.com/DMazzei/log-analyser
37
31
  licenses:
38
32
  - MIT
39
33
  metadata:
40
34
  homepage_uri: https://github.com/DMazzei/log-analyser
35
+ source_code_uri: https://github.com/DMazzei/log-analyser
36
+ changelog_uri: https://github.com/DMazzei/log-analyser/blob/master/CHANGELOG
37
+ bug_tracker_uri: https://github.com/DMazzei/log-analyser/issues
38
+ documentation_uri: https://www.rubydoc.info/gems/log-analyser
41
39
  post_install_message:
42
- rdoc_options: []
40
+ rdoc_options:
41
+ - "--title"
42
+ - Emoticon - emotions in terminal
43
+ - "--main"
44
+ - README.md
45
+ - "--line-numbers"
46
+ - "--inline-source"
47
+ - "--quiet"
43
48
  require_paths:
44
49
  - lib
45
50
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -1 +0,0 @@
1
- 2.7.1
data/Gemfile DELETED
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'bundler'
6
- gem 'rake', '~> 12.0'
7
- gem 'require_all'
8
-
9
- group :development, :test do
10
- gem 'coveralls_reborn', '~> 0.18.0', require: false
11
- gem 'rspec', '~> 3.8'
12
- gem 'rspec_junit_formatter'
13
- gem 'rubocop', require: false
14
- gem 'simplecov', require: false
15
- gem 'simplecov-lcov'
16
- end
17
-
18
- group :development do
19
- gem 'guard'
20
- gem 'guard-rspec'
21
- gem 'pry'
22
- end
23
-
24
- gemspec name: 'log-analyser'
@@ -1,117 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- log-analyser (0.1.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ast (2.4.1)
10
- coderay (1.1.3)
11
- coveralls_reborn (0.18.0)
12
- simplecov (>= 0.18.1, < 0.20.0)
13
- term-ansicolor (~> 1.6)
14
- thor (>= 0.20.3, < 2.0)
15
- tins (~> 1.16)
16
- diff-lcs (1.4.4)
17
- docile (1.3.2)
18
- ffi (1.13.1)
19
- formatador (0.2.5)
20
- guard (2.16.2)
21
- formatador (>= 0.2.4)
22
- listen (>= 2.7, < 4.0)
23
- lumberjack (>= 1.0.12, < 2.0)
24
- nenv (~> 0.1)
25
- notiffany (~> 0.0)
26
- pry (>= 0.9.12)
27
- shellany (~> 0.0)
28
- thor (>= 0.18.1)
29
- guard-compat (1.2.1)
30
- guard-rspec (4.7.3)
31
- guard (~> 2.1)
32
- guard-compat (~> 1.1)
33
- rspec (>= 2.99.0, < 4.0)
34
- listen (3.2.1)
35
- rb-fsevent (~> 0.10, >= 0.10.3)
36
- rb-inotify (~> 0.9, >= 0.9.10)
37
- lumberjack (1.2.8)
38
- method_source (1.0.0)
39
- nenv (0.3.0)
40
- notiffany (0.1.3)
41
- nenv (~> 0.1)
42
- shellany (~> 0.0)
43
- parallel (1.19.2)
44
- parser (2.7.2.0)
45
- ast (~> 2.4.1)
46
- pry (0.13.1)
47
- coderay (~> 1.1)
48
- method_source (~> 1.0)
49
- rainbow (3.0.0)
50
- rake (12.3.3)
51
- rb-fsevent (0.10.4)
52
- rb-inotify (0.10.1)
53
- ffi (~> 1.0)
54
- regexp_parser (1.8.2)
55
- require_all (3.0.0)
56
- rexml (3.2.4)
57
- rspec (3.10.0)
58
- rspec-core (~> 3.10.0)
59
- rspec-expectations (~> 3.10.0)
60
- rspec-mocks (~> 3.10.0)
61
- rspec-core (3.10.0)
62
- rspec-support (~> 3.10.0)
63
- rspec-expectations (3.10.0)
64
- diff-lcs (>= 1.2.0, < 2.0)
65
- rspec-support (~> 3.10.0)
66
- rspec-mocks (3.10.0)
67
- diff-lcs (>= 1.2.0, < 2.0)
68
- rspec-support (~> 3.10.0)
69
- rspec-support (3.10.0)
70
- rspec_junit_formatter (0.4.1)
71
- rspec-core (>= 2, < 4, != 2.12.0)
72
- rubocop (1.2.0)
73
- parallel (~> 1.10)
74
- parser (>= 2.7.1.5)
75
- rainbow (>= 2.2.2, < 4.0)
76
- regexp_parser (>= 1.8)
77
- rexml
78
- rubocop-ast (>= 1.0.1)
79
- ruby-progressbar (~> 1.7)
80
- unicode-display_width (>= 1.4.0, < 2.0)
81
- rubocop-ast (1.1.1)
82
- parser (>= 2.7.1.5)
83
- ruby-progressbar (1.10.1)
84
- shellany (0.0.1)
85
- simplecov (0.19.1)
86
- docile (~> 1.1)
87
- simplecov-html (~> 0.11)
88
- simplecov-html (0.12.3)
89
- simplecov-lcov (0.8.0)
90
- sync (0.5.0)
91
- term-ansicolor (1.7.1)
92
- tins (~> 1.0)
93
- thor (1.0.1)
94
- tins (1.26.0)
95
- sync
96
- unicode-display_width (1.7.0)
97
-
98
- PLATFORMS
99
- ruby
100
-
101
- DEPENDENCIES
102
- bundler
103
- coveralls_reborn (~> 0.18.0)
104
- guard
105
- guard-rspec
106
- log-analyser!
107
- pry
108
- rake (~> 12.0)
109
- require_all
110
- rspec (~> 3.8)
111
- rspec_junit_formatter
112
- rubocop
113
- simplecov
114
- simplecov-lcov
115
-
116
- BUNDLED WITH
117
- 2.1.4
data/Guardfile DELETED
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # A sample Guardfile
4
- # More info at https://github.com/guard/guard#readme
5
-
6
- ## Uncomment and set this to only include directories you want to watch
7
- # directories %w(app lib config test spec features) \
8
- # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
9
-
10
- ## Note: if you are using the `directories` clause above and you are not
11
- ## watching the project directory ('.'), then you will want to move
12
- ## the Guardfile to a watched dir and symlink it back, e.g.
13
- #
14
- # $ mkdir config
15
- # $ mv Guardfile config/
16
- # $ ln -s config/Guardfile .
17
- #
18
- # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
19
-
20
- # Note: The cmd option is now required due to the increasing number of ways
21
- # rspec may be run, below are examples of the most common uses.
22
- # * bundler: 'bundle exec rspec'
23
- # * bundler binstubs: 'bin/rspec'
24
- # * spring: 'bin/rspec' (This will use spring if running and you have
25
- # installed the spring binstubs per the docs)
26
- # * zeus: 'zeus rspec' (requires the server to be started separately)
27
- # * 'just' rspec: 'rspec'
28
-
29
- guard :rspec, cmd: 'bundle exec rspec' do
30
- require 'guard/rspec/dsl'
31
- dsl = Guard::RSpec::Dsl.new(self)
32
-
33
- # Feel free to open issues for suggestions and improvements
34
-
35
- # RSpec files
36
- rspec = dsl.rspec
37
- watch(rspec.spec_helper) { rspec.spec_dir }
38
- watch(rspec.spec_support) { rspec.spec_dir }
39
- watch(rspec.spec_files)
40
- watch(/^lib\/documents_analyser\/(.+)\.rb$/) { |m| "spec/#{m[1]}_spec.rb" }
41
-
42
- # Ruby files
43
- ruby = dsl.ruby
44
- dsl.watch_spec_files_for(ruby.lib_files)
45
- end
data/Rakefile DELETED
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- begin
4
- require 'bundler/setup'
5
- rescue LoadError
6
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
- end
8
-
9
- Bundler::GemHelper.install_tasks
10
-
11
- require 'rubygems'
12
- require 'rspec/core/rake_task'
13
-
14
- RSpec::Core::RakeTask.new(:spec)
15
-
16
- task default: :spec
data/bin/setup DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'fileutils'
3
-
4
- # path to your application root.
5
- APP_ROOT = File.expand_path('..', __dir__)
6
-
7
- def system!(*args)
8
- system(*args) || abort("\n== Command #{args} failed ==")
9
- end
10
-
11
- FileUtils.chdir APP_ROOT do
12
- # This script is a way to setup or update your development environment automatically.
13
- # This script is idempotent, so that you can run it at anytime and get an expectable outcome.
14
- # Add necessary setup steps to this file.
15
-
16
- puts '== Installing dependencies =='
17
- system! 'gem install bundler --conservative'
18
- system('bundle check') || system!('bundle install')
19
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/setup'
4
- require 'pathname'
5
- require 'require_all'
6
-
7
- APP_ROOT = Pathname.new(__dir__).parent
8
- $LOAD_PATH.unshift(File.join(APP_ROOT, '/lib')) unless $LOAD_PATH.include?(File.join(APP_ROOT, '/lib'))
9
-
10
- require './version'
11
- require_all './lib'
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'log-analyser'
7
- spec.version = VERSION
8
- spec.authors = ['Dan Mazzei']
9
- spec.email = ['danielmazzei@gmail.com']
10
-
11
- spec.summary = 'Log reader and data aggregator for pageviews information.'
12
- spec.description = 'Log reader and data aggregator for pageviews information.'
13
- spec.homepage = 'https://github.com/DMazzei/log-analyser'
14
- spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.7')
16
-
17
- # spec.metadata['allowed_push_host'] = "'TODO: Set to 'http://mygemserver.com''"
18
-
19
- spec.metadata['homepage_uri'] = spec.homepage
20
- # spec.metadata['source_code_uri'] = "'TODO: Put your gem's public repo URL here.'"
21
- # spec.metadata['changelog_uri'] = "'TODO: Put your gem's CHANGELOG.md URL here.'"
22
-
23
- # Specify which files should be added to the gem when it is released.
24
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
- spec.files = %w(.ruby-version CHANGELOG Gemfile Gemfile.lock Guardfile LICENSE.txt README.md Rakefile bin/setup config/environment.rb lib/pageviews.rb lib/pageviews_log_aggregator.rb lib/parser.rb lib/unique_pageviews.rb log-analyser.gemspec version.rb)
26
- spec.bindir = 'exe'
27
- spec.executables = spec.files.grep(/^exe\//) { |f| File.basename(f) }
28
- spec.require_paths = ['lib']
29
- end
data/version.rb DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- VERSION = '0.1.2'