statlysis 0.1.0 → 0.1.1
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/.travis.yml +2 -3
- data/README.markdown +12 -6
- data/statlysis.gemspec +4 -5
- data/test/config/mongoid.yml +2 -1
- data/test/helper.rb +2 -3
- data/test/test_timeseries.rb +4 -3
- metadata +8 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d43c8b4e55129c89854b66cff790e4955e02cc9b
|
4
|
+
data.tar.gz: c61efc81641c6467c5647eb036409bd764833c2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f53ba5b604fdd7f0f3fe8a3faac574ead569ce4ac7b8e4b13139cd099e46cc5a1c8eda4dc01653a7ce1afa31ddb400f017267da8ba36155559d948bf2bec962b
|
7
|
+
data.tar.gz: 26f9340d5cdf772ba2e13dec42bc604bab91730daedc80c6c22de68313c19655c9260b5b3b5ccfbe5e0982825a836fb5839e801560feb50f541717cbd278e298
|
data/.travis.yml
CHANGED
data/README.markdown
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Statlysis [](https://travis-ci.org/mvj3/statlysis)
|
1
|
+
Statlysis [](https://travis-ci.org/mvj3/statlysis) [](https://inch-ci.org/github/mvj3/statlysis)
|
2
2
|
===============================================
|
3
|
-
|
3
|
+
Statistic and analysis in Ruby DSL, just as simple as SQL operations in ActiveRecord.
|
4
4
|
|
5
5
|
Usage
|
6
6
|
-----------------------------------------------
|
@@ -31,7 +31,7 @@ statlysis认为数据源一定要被ETL为简单几个维度的单层数据集
|
|
31
31
|
#### 尽量采用MongoDB来作为统计数据源
|
32
32
|
MongoDB作为NoSQL数据库,它是为 **单collection** 里读写 **单个记录的整体** 而优化设计的,并支持MapReduce并发来加快统计过程。
|
33
33
|
|
34
|
-
|
34
|
+
Success cases
|
35
35
|
-----------------------------------------------
|
36
36
|
* eoe.cn各子网站的页面访问统计,和包含多个条件的数据库表每日数据统计,详情见 [示例配置文件](https://github.com/mvj3/statlysis/blob/master/examples/eoecn.rb) ,按日期维度分。
|
37
37
|
* 阳光书屋的学习提高班的关于做题情况的统计分析,详情见 [示例配置文件](https://github.com/mvj3/statlysis/blob/master/examples/sunshinelibrary.rb) ,按班级维度分。
|
@@ -48,9 +48,9 @@ Features
|
|
48
48
|
8. 支持最近统计的时间。
|
49
49
|
9. 支持以整数类型存储的时间字段,以兼容PHP社区的特别约定。
|
50
50
|
|
51
|
-
|
51
|
+
Statistic Process
|
52
52
|
-----------------------------------------------
|
53
|
-
1. Delete invalid
|
53
|
+
1. Delete invalid statistic data, e.g. data in tomorrow
|
54
54
|
2. Count data within the specified time by the dimensions
|
55
55
|
3. Delete overlapping data, and insert new data
|
56
56
|
|
@@ -75,9 +75,15 @@ A: The result of aggregation pipeline is a document and is subject to the BSON D
|
|
75
75
|
TODO
|
76
76
|
-----------------------------------------------
|
77
77
|
* Admin interface
|
78
|
-
*
|
78
|
+
* statistic query api in Ruby and HTTP
|
79
79
|
* Interacting with Javascript charting library, e.g. Highcharts, D3.
|
80
80
|
|
81
|
+
Test
|
82
|
+
-----------------------------------------------
|
83
|
+
```bash
|
84
|
+
bundle install
|
85
|
+
bundle exec rake
|
86
|
+
```
|
81
87
|
|
82
88
|
Copyright
|
83
89
|
-----------------------------------------------
|
data/statlysis.gemspec
CHANGED
@@ -4,8 +4,8 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'statlysis'
|
7
|
-
s.version = '0.1.
|
8
|
-
s.date = '2015-
|
7
|
+
s.version = '0.1.1'
|
8
|
+
s.date = '2015-11-02'
|
9
9
|
s.summary = File.read("README.markdown").split(/===+/)[1].strip.split("\n")[0]
|
10
10
|
s.description = s.summary
|
11
11
|
s.authors = ["David Chen"]
|
@@ -22,20 +22,19 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_dependency "rails"
|
23
23
|
s.add_dependency "mysql2"
|
24
24
|
if not ENV['RAILS4'] # current mongoid depend on activemodel (~> 3.1) 20130726
|
25
|
-
s.add_dependency "mongoid"
|
25
|
+
s.add_dependency "mongoid", ">= 5.0.0"
|
26
26
|
end
|
27
27
|
s.add_dependency "activerecord"
|
28
28
|
s.add_dependency "activerecord_idnamecache"
|
29
29
|
s.add_dependency "activesupport"
|
30
30
|
s.add_dependency "sequel"
|
31
31
|
s.add_dependency 'only_one_rake'
|
32
|
-
s.add_dependency 'json', '1.8.0'
|
33
32
|
s.add_dependency 'bson_ext'
|
34
33
|
s.add_dependency 'origin'
|
35
34
|
s.add_dependency 'short_inspect'
|
36
35
|
|
37
36
|
s.add_development_dependency 'sqlite3'
|
38
|
-
s.add_development_dependency 'pry-
|
37
|
+
s.add_development_dependency 'pry-byebug'
|
39
38
|
s.add_development_dependency 'guard-test'
|
40
39
|
|
41
40
|
end
|
data/test/config/mongoid.yml
CHANGED
@@ -3,7 +3,8 @@ production:
|
|
3
3
|
# This starts the session configuration settings. You may have as
|
4
4
|
# many sessions as you like, but you must have at least 1 named
|
5
5
|
# 'default'.
|
6
|
-
sessions:
|
6
|
+
# sessions: # old API 20151102
|
7
|
+
clients:
|
7
8
|
# Define the default session.
|
8
9
|
default:
|
9
10
|
# A session can have any number of hosts. Usually 1 for a single
|
data/test/helper.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require File.join(ENV['HOME'], 'github/mvj3/utils/ruby/irb') rescue nil
|
2
1
|
require 'rubygems'
|
3
2
|
require 'bundler'
|
4
3
|
begin
|
@@ -12,7 +11,7 @@ require 'test/unit'
|
|
12
11
|
|
13
12
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
14
13
|
$LOAD_PATH.unshift File.dirname(__FILE__) # test dirs
|
15
|
-
require 'pry-
|
14
|
+
require 'pry-byebug'
|
16
15
|
|
17
16
|
# load mongoid setup
|
18
17
|
require 'mongoid'
|
@@ -48,7 +47,7 @@ def DateTime.now
|
|
48
47
|
return DateTime.parse("20130901")
|
49
48
|
end
|
50
49
|
|
51
|
-
(require 'pry-
|
50
|
+
(require 'pry-byebug';binding.pry) if ENV['DEBUG']
|
52
51
|
|
53
52
|
|
54
53
|
Statlysis.setup do
|
data/test/test_timeseries.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
+
# TODO 改进时间,在 travis 上时区不同导致。
|
3
4
|
require 'helper'
|
4
5
|
|
5
6
|
class TestTimeSeries < Test::Unit::TestCase
|
@@ -14,7 +15,7 @@ class TestTimeSeries < Test::Unit::TestCase
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_parse_datetime
|
17
|
-
assert_equal [@dt], TimeSeries.parse(@dt), "抽取单个时间没通过"
|
18
|
+
assert_equal [@dt.day], TimeSeries.parse(@dt).map(&:day), "抽取单个时间没通过"
|
18
19
|
end
|
19
20
|
|
20
21
|
def test_parse_special_datetime
|
@@ -28,7 +29,7 @@ class TestTimeSeries < Test::Unit::TestCase
|
|
28
29
|
|
29
30
|
def test_parse_range_in_day
|
30
31
|
# (@dt2 - @dt1).to_i == 366
|
31
|
-
|
32
|
+
assert TimeSeries.parse(@dt1..(@dt2-1.second)).length >= 365, "抽取天的时间范围没通过"
|
32
33
|
end
|
33
34
|
|
34
35
|
def test_parse_range_in_week
|
@@ -39,7 +40,7 @@ class TestTimeSeries < Test::Unit::TestCase
|
|
39
40
|
def test_parse_range_in_201212_week
|
40
41
|
w1 = Time.zone.parse "20121201 +0800"
|
41
42
|
w2 = Time.zone.parse "20121231 +0800"
|
42
|
-
|
43
|
+
assert TimeSeries.parse(w1..w2, :unit => :week).length >= 5, "2012十二月应该有六周"
|
43
44
|
end
|
44
45
|
|
45
46
|
def test_clock_set_time
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statlysis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 5.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 5.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activerecord
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: json
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - '='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 1.8.0
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - '='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 1.8.0
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: bson_ext
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,7 +193,7 @@ dependencies:
|
|
207
193
|
- !ruby/object:Gem::Version
|
208
194
|
version: '0'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
|
-
name: pry-
|
196
|
+
name: pry-byebug
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
212
198
|
requirements:
|
213
199
|
- - ">="
|
@@ -234,7 +220,7 @@ dependencies:
|
|
234
220
|
- - ">="
|
235
221
|
- !ruby/object:Gem::Version
|
236
222
|
version: '0'
|
237
|
-
description:
|
223
|
+
description: Statistic and analysis in Ruby DSL, just as simple as SQL operations
|
238
224
|
in ActiveRecord.
|
239
225
|
email: mvjome@gmail.com
|
240
226
|
executables: []
|
@@ -311,9 +297,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
311
297
|
version: '0'
|
312
298
|
requirements: []
|
313
299
|
rubyforge_project:
|
314
|
-
rubygems_version: 2.4.
|
300
|
+
rubygems_version: 2.4.8
|
315
301
|
signing_key:
|
316
302
|
specification_version: 4
|
317
|
-
summary:
|
318
|
-
ActiveRecord.
|
303
|
+
summary: Statistic and analysis in Ruby DSL, just as simple as SQL operations in ActiveRecord.
|
319
304
|
test_files: []
|