statlysis 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +7 -0
- data/README.markdown +14 -8
- data/lib/statlysis/multiple_dataset/mongoid.rb +1 -1
- data/statlysis.gemspec +4 -3
- data/test/config/mongoid.yml +0 -14
- data/test/helper.rb +4 -16
- data/test/migrate/1_active_record.rb +1 -1
- data/test/models/eoe_log.rb +2 -2
- data/test/test_generally_count.rb +2 -6
- data/test/test_mapreduce.rb +1 -1
- metadata +57 -73
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 09b1a9957e7a2b7e144bf0a63f88a6cac2f6aa7c
|
4
|
+
data.tar.gz: 987032aa739109073dca9d0ff45e593eb4703ef0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ff32e0d21b51a3d0896ddfa95998a5215dc122ea44e70ecbf9b8582dd1b13c571eac553657da42ef88527e5fa9496c87e9fc10f7adfaa314c96999c9c0943b91
|
7
|
+
data.tar.gz: 03f3d2d734dea769a53ac40686cb7e6907e3852a1643e9dbfee8bb046805d85bb31bbf3052db60c72a61e8027b10ee3c0a4e7b72bde458da33a866c4af8e3199
|
data/.travis.yml
ADDED
data/README.markdown
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
-
Statlysis
|
1
|
+
Statlysis [![Build Status](https://travis-ci.org/mvj3/statlysis.png)](https://travis-ci.org/mvj3/statlysis)
|
2
2
|
===============================================
|
3
3
|
Statistical and analysis in Ruby DSL, just as simple as SQL operations in ActiveRecord.
|
4
4
|
|
5
|
+
Usage
|
6
|
+
-----------------------------------------------
|
7
|
+
见下面的 [成功案例](#成功案例) 的配置文件 和 [手把手操作示例](http://mvj3.github.io/statlysis/showterm.html) 。
|
8
|
+
|
5
9
|
项目来由,理念,和使用说明
|
6
10
|
-----------------------------------------------
|
7
11
|
该项目起因是为eoe.cn做一套统计后台,而其构思来自于2012上半年做 [Android优亿市场数据采集分析系统](http://mvj3.github.io/2012/11/01/android_eoemarket_data_collect_and_analysis_system_summary/) 时的一些经验和心得,在2013年上半年完成了架构和大部分代码,支持ActiveRecord和Mongoid两个ORM。下半年在阳光书屋加上了对Mongoid的MapReduce支持。
|
@@ -32,15 +36,17 @@ MongoDB作为NoSQL数据库,它是为 **单collection** 里读写 **单个记
|
|
32
36
|
* eoe.cn各子网站的页面访问统计,和包含多个条件的数据库表每日数据统计,详情见 [示例配置文件](https://github.com/mvj3/statlysis/blob/master/examples/eoecn.rb) ,按日期维度分。
|
33
37
|
* 阳光书屋的学习提高班的关于做题情况的统计分析,详情见 [示例配置文件](https://github.com/mvj3/statlysis/blob/master/examples/sunshinelibrary.rb) ,按班级维度分。
|
34
38
|
|
35
|
-
Usage
|
36
|
-
-----------------------------------------------
|
37
|
-
见上面的 [成功案例](#成功案例) 的配置文件 和 [手把手操作示例](http://mvj3.github.io/statlysis/showterm.html) 。
|
38
|
-
|
39
39
|
Features
|
40
40
|
-----------------------------------------------
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
1. 支持Mongoid和ActiveRecord两种ORM,其中Mongoid以MapReduce方式统计,ActiveRecord基于纯SQL操作。
|
42
|
+
2. 对统计结果进行SQL索引,以支持高效访问。
|
43
|
+
3. 支持单行DSL配置,链式风格。
|
44
|
+
4. 支持跨表统计,需结构相同,表名按日期分割。
|
45
|
+
5. 依据统计需求自动配置统计结果的存储表,并支持条件查询,返回ORM统计表。
|
46
|
+
6. 支持任意维度统计,其中时间维度可选。
|
47
|
+
7. 单次统计里支持多个GroupConcat字段。
|
48
|
+
8. 支持最近统计的时间。
|
49
|
+
9. 支持以整数类型存储的时间字段,以兼容PHP社区的特别约定。
|
44
50
|
|
45
51
|
Statistical Process
|
46
52
|
-----------------------------------------------
|
@@ -32,7 +32,7 @@ module Statlysis
|
|
32
32
|
mongoid_models = _select_orm(Mongoid::Document)
|
33
33
|
|
34
34
|
_collections.select do |_collection|
|
35
|
-
_mongoid_model = mongoid_models.detect {|m| m.collection_name === _collection.name }
|
35
|
+
_mongoid_model = mongoid_models.detect {|m| "#{m.collection_name}" === _collection.name }
|
36
36
|
raise "Please define Mongoid model for #{_collection}.collection under ::Object namespace!" if _mongoid_model.nil?
|
37
37
|
mongoid_models.delete _mongoid_model
|
38
38
|
@sources.add _mongoid_model
|
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.0
|
8
|
-
s.date = '
|
7
|
+
s.version = '0.1.0'
|
8
|
+
s.date = '2015-04-19'
|
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,13 +22,14 @@ 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" #, ">= 4.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'
|
32
33
|
s.add_dependency 'bson_ext'
|
33
34
|
s.add_dependency 'origin'
|
34
35
|
s.add_dependency 'short_inspect'
|
data/test/config/mongoid.yml
CHANGED
@@ -20,17 +20,3 @@ production:
|
|
20
20
|
# This defines a secondary session at a replica set.
|
21
21
|
# Here we put the Mongoid specific configuration options. These are explained
|
22
22
|
# in more detail next.
|
23
|
-
options:
|
24
|
-
allow_dynamic_fields: false
|
25
|
-
identity_map_enabled: true
|
26
|
-
include_root_in_json: true
|
27
|
-
include_type_for_serialization: true
|
28
|
-
# Note this can also be true if you want to preload everything, but this is
|
29
|
-
# almost never necessary. Most of the time set this to false.
|
30
|
-
preload_models:
|
31
|
-
# - Firefox
|
32
|
-
scope_overwrite_exception: true
|
33
|
-
raise_not_found_error: false
|
34
|
-
skip_version_check: false
|
35
|
-
use_activesupport_time_zone: false
|
36
|
-
use_utc: true
|
data/test/helper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(ENV['HOME'], 'utils/ruby/irb') rescue nil
|
1
|
+
require File.join(ENV['HOME'], 'github/mvj3/utils/ruby/irb') rescue nil
|
2
2
|
require 'rubygems'
|
3
3
|
require 'bundler'
|
4
4
|
begin
|
@@ -44,25 +44,13 @@ csv.each do |row|
|
|
44
44
|
CodeGistMongoid.create! _h
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
def DateTime.now
|
48
|
+
return DateTime.parse("20130901")
|
49
|
+
end
|
55
50
|
|
56
51
|
(require 'pry-debugger';binding.pry) if ENV['DEBUG']
|
57
52
|
|
58
53
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
54
|
Statlysis.setup do
|
67
55
|
hourly EoeLog, :time_column => :t
|
68
56
|
|
data/test/models/eoe_log.rb
CHANGED
@@ -32,9 +32,9 @@ EoeLog.create
|
|
32
32
|
# NOTE: Object.const_set(name, Class.new {}) cause failed with error 16256: "Invalid ns [statlysis_mongoid_test.]",
|
33
33
|
# and cann't Mongoid.create data
|
34
34
|
eval("
|
35
|
-
class
|
35
|
+
class ::#{collection_class_name}
|
36
36
|
include Mongoid::Document
|
37
|
-
|
37
|
+
store_in collection: #{collection_name.to_json}
|
38
38
|
field :t, :type => DateTime
|
39
39
|
field :url, :type => String
|
40
40
|
index({t: -1}, {:background => true})
|
@@ -10,15 +10,11 @@ class TestGenerallyCount < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def test_timely
|
12
12
|
o = @output.map {|i| i[:timely_c] }
|
13
|
-
|
14
|
-
assert r
|
13
|
+
assert o.uniq.count > 20
|
15
14
|
end
|
16
15
|
|
17
16
|
def test_totally
|
18
|
-
o = @output.map {|i| i[:totally_c] }
|
19
|
-
r = (o - [5,16,17,25,27,30,34,36,37,53,55,56,57,59,60,64,66,67,68,70,71,73,74,75,80,90,116,129,136,145,165,185,200,230,234,235,236,237,270,273,274,288,299,304,305,312,327,337,345,359,374,380,392,418,435,446,452,463,466,473,493,506,512,520,525,545,549,553,558,577,636,701,785,805,867,981,1050,1102,1163,1230,1384,1454,1455,1457,1458]).reject(&:zero?).blank?
|
20
|
-
assert r
|
21
17
|
assert_equal @output[-1][:totally_favcount_s].to_i, CodeGist.all.map(&:fav_count).reduce(:+)
|
22
18
|
end
|
23
19
|
|
24
|
-
end
|
20
|
+
end
|
data/test/test_mapreduce.rb
CHANGED
@@ -17,7 +17,7 @@ class TestMapReduce < Test::Unit::TestCase
|
|
17
17
|
|
18
18
|
# 测试更新最后执行时间的时钟
|
19
19
|
# TODO 可能移到其他地方
|
20
|
-
assert((cron.clock.current - before_time)
|
20
|
+
assert((cron.clock.current - before_time) >= 0) # compact with fake time
|
21
21
|
|
22
22
|
assert_equal cron.output.detect {|h| h[:author] == 'mvj3' }[:c].to_i, cron.multiple_dataset.sources.first.where(:author => 'mvj3').count
|
23
23
|
end
|
metadata
CHANGED
@@ -1,254 +1,237 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statlysis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- David Chen
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-04-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rails
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: mysql2
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: mongoid
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
61
|
+
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
68
|
+
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: activerecord
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: activerecord_idnamecache
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: activesupport
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: sequel
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: only_one_rake
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - ">="
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - ">="
|
156
137
|
- !ruby/object:Gem::Version
|
157
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
|
158
153
|
- !ruby/object:Gem::Dependency
|
159
154
|
name: bson_ext
|
160
155
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
156
|
requirements:
|
163
|
-
- -
|
157
|
+
- - ">="
|
164
158
|
- !ruby/object:Gem::Version
|
165
159
|
version: '0'
|
166
160
|
type: :runtime
|
167
161
|
prerelease: false
|
168
162
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
163
|
requirements:
|
171
|
-
- -
|
164
|
+
- - ">="
|
172
165
|
- !ruby/object:Gem::Version
|
173
166
|
version: '0'
|
174
167
|
- !ruby/object:Gem::Dependency
|
175
168
|
name: origin
|
176
169
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
170
|
requirements:
|
179
|
-
- -
|
171
|
+
- - ">="
|
180
172
|
- !ruby/object:Gem::Version
|
181
173
|
version: '0'
|
182
174
|
type: :runtime
|
183
175
|
prerelease: false
|
184
176
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
177
|
requirements:
|
187
|
-
- -
|
178
|
+
- - ">="
|
188
179
|
- !ruby/object:Gem::Version
|
189
180
|
version: '0'
|
190
181
|
- !ruby/object:Gem::Dependency
|
191
182
|
name: short_inspect
|
192
183
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
184
|
requirements:
|
195
|
-
- -
|
185
|
+
- - ">="
|
196
186
|
- !ruby/object:Gem::Version
|
197
187
|
version: '0'
|
198
188
|
type: :runtime
|
199
189
|
prerelease: false
|
200
190
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
191
|
requirements:
|
203
|
-
- -
|
192
|
+
- - ">="
|
204
193
|
- !ruby/object:Gem::Version
|
205
194
|
version: '0'
|
206
195
|
- !ruby/object:Gem::Dependency
|
207
196
|
name: sqlite3
|
208
197
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
198
|
requirements:
|
211
|
-
- -
|
199
|
+
- - ">="
|
212
200
|
- !ruby/object:Gem::Version
|
213
201
|
version: '0'
|
214
202
|
type: :development
|
215
203
|
prerelease: false
|
216
204
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
205
|
requirements:
|
219
|
-
- -
|
206
|
+
- - ">="
|
220
207
|
- !ruby/object:Gem::Version
|
221
208
|
version: '0'
|
222
209
|
- !ruby/object:Gem::Dependency
|
223
210
|
name: pry-debugger
|
224
211
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
212
|
requirements:
|
227
|
-
- -
|
213
|
+
- - ">="
|
228
214
|
- !ruby/object:Gem::Version
|
229
215
|
version: '0'
|
230
216
|
type: :development
|
231
217
|
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
219
|
requirements:
|
235
|
-
- -
|
220
|
+
- - ">="
|
236
221
|
- !ruby/object:Gem::Version
|
237
222
|
version: '0'
|
238
223
|
- !ruby/object:Gem::Dependency
|
239
224
|
name: guard-test
|
240
225
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
226
|
requirements:
|
243
|
-
- -
|
227
|
+
- - ">="
|
244
228
|
- !ruby/object:Gem::Version
|
245
229
|
version: '0'
|
246
230
|
type: :development
|
247
231
|
prerelease: false
|
248
232
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
233
|
requirements:
|
251
|
-
- -
|
234
|
+
- - ">="
|
252
235
|
- !ruby/object:Gem::Version
|
253
236
|
version: '0'
|
254
237
|
description: Statistical and analysis in Ruby DSL, just as simple as SQL operations
|
@@ -258,12 +241,14 @@ executables: []
|
|
258
241
|
extensions: []
|
259
242
|
extra_rdoc_files: []
|
260
243
|
files:
|
261
|
-
- .document
|
262
|
-
- .gitignore
|
244
|
+
- ".document"
|
245
|
+
- ".gitignore"
|
246
|
+
- ".travis.yml"
|
263
247
|
- Gemfile
|
264
248
|
- Guardfile
|
265
249
|
- README.markdown
|
266
250
|
- Rakefile
|
251
|
+
- doc/related.markdown
|
267
252
|
- examples/eoecn.rb
|
268
253
|
- examples/sunshinelibrary.rb
|
269
254
|
- lib/statlysis.rb
|
@@ -309,27 +294,26 @@ files:
|
|
309
294
|
homepage: https://github.com/mvj3/statlysis
|
310
295
|
licenses:
|
311
296
|
- MIT
|
297
|
+
metadata: {}
|
312
298
|
post_install_message:
|
313
299
|
rdoc_options: []
|
314
300
|
require_paths:
|
315
301
|
- lib
|
316
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
317
|
-
none: false
|
318
303
|
requirements:
|
319
|
-
- -
|
304
|
+
- - ">="
|
320
305
|
- !ruby/object:Gem::Version
|
321
306
|
version: '0'
|
322
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
323
|
-
none: false
|
324
308
|
requirements:
|
325
|
-
- -
|
309
|
+
- - ">="
|
326
310
|
- !ruby/object:Gem::Version
|
327
311
|
version: '0'
|
328
312
|
requirements: []
|
329
313
|
rubyforge_project:
|
330
|
-
rubygems_version:
|
314
|
+
rubygems_version: 2.4.6
|
331
315
|
signing_key:
|
332
|
-
specification_version:
|
316
|
+
specification_version: 4
|
333
317
|
summary: Statistical and analysis in Ruby DSL, just as simple as SQL operations in
|
334
318
|
ActiveRecord.
|
335
319
|
test_files: []
|