logfiction 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -0
- data/lib/logfiction.rb +3 -1
- data/lib/logfiction/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a4637168a7070901cf63f691e956d0ac38b7dffe14895bad4b743f506a7ea3
|
4
|
+
data.tar.gz: 538cf9e43851bda623f49f937608338a8a899da1bfc4015180584201e2bd43d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24575d8d7c45a4484fe26e10642ce56dadaf6f50f537a6e9a5d9dcf1bc1aee294ba4a617c85561746942a1d99755bfc904311c323365666da587b9cefc5bfa55
|
7
|
+
data.tar.gz: 4ac128c5960fc2e0d4b1fe5dda45109e28fca3f173fce46ad5ee78f11e67134a689d22985eacc5da525565849098dd5fe460c5418f6dd899bc38b9f38f2e41e4
|
data/README.md
CHANGED
@@ -55,6 +55,58 @@ la.export_logfile(filetype='CSV',filepath='/path/to/file')
|
|
55
55
|
# 2018-06-29 11:19:12 +0900,12,0,"",top_page_view
|
56
56
|
```
|
57
57
|
|
58
|
+
## Advanced Usage
|
59
|
+
```ruby
|
60
|
+
require 'logfiction'
|
61
|
+
|
62
|
+
assumtions = {
|
63
|
+
# Set the log start time to January 01, 2018 AM 9:00 AM
|
64
|
+
time_access_from: Time.parse("2018-01-01 09:00:00"),
|
65
|
+
|
66
|
+
# Set session limit to 20
|
67
|
+
user_max_sessions: 20,
|
68
|
+
|
69
|
+
# Set action limit to 200
|
70
|
+
user_max_actions: 100,
|
71
|
+
|
72
|
+
# Set the number of generated users to 500
|
73
|
+
n_users: 500,
|
74
|
+
|
75
|
+
# Set the number of generated items to 200
|
76
|
+
n_items: 200
|
77
|
+
}
|
78
|
+
|
79
|
+
la = Logfiction::AccessLog.new(assumtions)
|
80
|
+
|
81
|
+
# State and transition settings
|
82
|
+
states = [
|
83
|
+
{state_id: 0, state_name: 'top_page_view', item_type: :no_item},
|
84
|
+
{state_id: 1, state_name: 'list_page_view', item_type: :many},
|
85
|
+
{state_id: 2, state_name: 'detail_page_view', item_type: :one},
|
86
|
+
{state_id: 3, state_name: 'item_purchase', item_type: :one}
|
87
|
+
]
|
88
|
+
|
89
|
+
transitions = [
|
90
|
+
{from: 0, to: 1, probability: 0.6, restriction: false},
|
91
|
+
{from: 1, to: 2, probability: 0.4, restriction: true},
|
92
|
+
{from: 2, to: 3, probability: 0.2, restriction: true, auto_transiton: 0}
|
93
|
+
]
|
94
|
+
|
95
|
+
states_transtions = {
|
96
|
+
start_state: [0],
|
97
|
+
states: states,
|
98
|
+
transitions: transitions
|
99
|
+
}
|
100
|
+
|
101
|
+
la.generate_state_transiton(states_transtions)
|
102
|
+
|
103
|
+
# get logs
|
104
|
+
logs = la.generate_accesslog(100)
|
105
|
+
|
106
|
+
# export logs
|
107
|
+
la.export_logfile(100, filetype='CSV',filepath="./fictionlog.csv")
|
108
|
+
```
|
109
|
+
|
58
110
|
## Development
|
59
111
|
|
60
112
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/logfiction.rb
CHANGED
@@ -113,7 +113,8 @@ module Logfiction
|
|
113
113
|
@start_state, @transitions = start_state, taranstion
|
114
114
|
else
|
115
115
|
@start_state = state_transtion[:start_state]
|
116
|
-
@transitions = state_transtion[:
|
116
|
+
@transitions = state_transtion[:transitions]
|
117
|
+
states = state_transtion[:states]
|
117
118
|
end
|
118
119
|
# convert states
|
119
120
|
states_hash = {}
|
@@ -346,6 +347,7 @@ module Logfiction
|
|
346
347
|
|
347
348
|
n_row = 1
|
348
349
|
while n_row < n_max
|
350
|
+
# only one time update each users in second loop
|
349
351
|
@users.each do |user|
|
350
352
|
user_id = user[:user_id]
|
351
353
|
n_actions = 0
|
data/lib/logfiction/version.rb
CHANGED