focuslight 0.1.2 → 0.1.3
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/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/CHANGELOG.md +5 -1
- data/Procfile +2 -2
- data/README.md +28 -21
- data/Rakefile +0 -14
- data/config.ru +10 -1
- data/focuslight.gemspec +3 -2
- data/lib/focuslight/cli.rb +18 -28
- data/lib/focuslight/version.rb +1 -1
- data/spec/cli_spec.rb +29 -0
- metadata +20 -5
- data/Procfile-gem +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8baaac32f2c61d12d953da8bc50a964f52c0305f
|
4
|
+
data.tar.gz: aaade6440a9e2f54d60a81ecf735d24c1f58da20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 984b5ea208adfd11c62806217d79fe78e989ec550904d60d0264e664e556e8ddec24f6a7e5f9e6d87dc2654ed4c2467103f2b7213dbe8daa60b717f807f70b59
|
7
|
+
data.tar.gz: 9ed76a9f4ca56a7de47333f5d5bb3ddceca1217c1479d4385982b40bb29618a2e31008e9f689b5ceb320d80f589c73695fda9a1b09835db85b612851b7f96363
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Procfile
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
web: bundle exec unicorn -E production -p $PORT -o $HOST
|
2
|
-
worker1: bundle exec
|
3
|
-
worker2: bundle exec
|
2
|
+
worker1: bundle exec focuslight longer
|
3
|
+
worker2: bundle exec focuslight shorter
|
data/README.md
CHANGED
@@ -25,33 +25,40 @@ RRDTool and its dependencies must be installed before installing Focuslight.
|
|
25
25
|
|
26
26
|
## Installation
|
27
27
|
|
28
|
-
Install focuslight with Ruby 2.0 or later.
|
28
|
+
Install focuslight with Ruby 2.0 or later.
|
29
29
|
|
30
|
-
###
|
30
|
+
### Gem package
|
31
31
|
|
32
|
-
|
32
|
+
Five easy steps on installation with gem and SQLite.
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
```bash
|
35
|
+
$ gem install focuslight
|
36
|
+
$ focuslight new
|
37
|
+
$ cd focuslight
|
38
|
+
$ focuslight init # creates database scheme on SQLite
|
39
|
+
$ focuslight start
|
40
|
+
```
|
41
|
+
|
42
|
+
Then see `http://localhost:5125/`. Refer `Using MySQL` section to use MySQL instead of SQLite.
|
38
43
|
|
39
|
-
|
44
|
+
### Git repository
|
40
45
|
|
41
|
-
|
46
|
+
Install from git repository.
|
42
47
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
```bash
|
49
|
+
$ git clone https://github.com/focuslight/focuslight.git
|
50
|
+
$ cd focuslight
|
51
|
+
$ bundle
|
52
|
+
$ bundle exec focuslight init # creates database scheme on SQLite
|
53
|
+
$ bundle exec focuslight start
|
54
|
+
```
|
48
55
|
|
49
|
-
Then see `http://localhost:5125
|
56
|
+
Then see `http://localhost:5125/`. Refer `Using MySQL` section to use MySQL instead of SQLite.
|
50
57
|
|
51
|
-
### Using MySQL
|
58
|
+
### Using MySQL
|
52
59
|
|
53
|
-
|
54
|
-
|
60
|
+
Change `DBURL` parameter on .env file to `mysql2` version like `DBURL=mysql2://root:@localhost/focuslight`.
|
61
|
+
Also configure the database name, the user name, and the password. See the Configuration section.
|
55
62
|
|
56
63
|
Then, create the database and assign permissions to the user as
|
57
64
|
|
@@ -61,7 +68,7 @@ mysql> GRANT CREATE, ALTER, DELETE, INSERT, UPDATE, SELECT \\
|
|
61
68
|
ON focuslight.* TO 'user'\@'localhost' IDENTIFIED BY password;
|
62
69
|
```
|
63
70
|
|
64
|
-
|
71
|
+
After that, follow the same procedure with the SQLite case.
|
65
72
|
|
66
73
|
## Configuration
|
67
74
|
|
@@ -100,9 +107,9 @@ LOG_LEVEL=warn
|
|
100
107
|
* Daemonize support
|
101
108
|
* Add tests, and tests, and more tests
|
102
109
|
|
103
|
-
##
|
110
|
+
## Incompatible Features
|
104
111
|
|
105
|
-
Focuslight has following
|
112
|
+
Focuslight has following incompatibilities with GrowthForecast as specifications.
|
106
113
|
|
107
114
|
### Subtract
|
108
115
|
|
data/Rakefile
CHANGED
@@ -10,12 +10,6 @@ end
|
|
10
10
|
lib = File.expand_path('../lib', __FILE__)
|
11
11
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
12
12
|
require 'dotenv/tasks'
|
13
|
-
require "focuslight/worker"
|
14
|
-
|
15
|
-
task :init => :dotenv do
|
16
|
-
require "focuslight/init"
|
17
|
-
Focuslight::Init.run
|
18
|
-
end
|
19
13
|
|
20
14
|
task :console => :dotenv do
|
21
15
|
require "focuslight/init"
|
@@ -26,13 +20,5 @@ task :console => :dotenv do
|
|
26
20
|
end
|
27
21
|
task :c => :console
|
28
22
|
|
29
|
-
task :longer => :dotenv do
|
30
|
-
Focuslight::Worker.run(interval: 300, target: :normal)
|
31
|
-
end
|
32
|
-
|
33
|
-
task :shorter => :dotenv do
|
34
|
-
Focuslight::Worker.run(interval: 60, target: :short)
|
35
|
-
end
|
36
|
-
|
37
23
|
task :test => :spec
|
38
24
|
task :default => :spec
|
data/config.ru
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "sinatra"
|
3
|
+
require "focuslight"
|
4
|
+
require "focuslight/web"
|
3
5
|
|
4
|
-
|
6
|
+
# Unicorn self-process killer
|
7
|
+
require 'unicorn/worker_killer'
|
8
|
+
|
9
|
+
# Max requests per worker
|
10
|
+
use Unicorn::WorkerKiller::MaxRequests, 3072, 4096
|
11
|
+
|
12
|
+
# Max memory size (RSS) per worker
|
13
|
+
use Unicorn::WorkerKiller::Oom, (192*(1024**2)), (256*(1024**2))
|
5
14
|
|
6
15
|
run Focuslight::Web
|
data/focuslight.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Focuslight::VERSION
|
9
9
|
spec.authors = ["TAGOMORI Satoshi", "Naotoshi Seo", "Shota Fukumori (sora_h)"]
|
10
10
|
spec.email = ["tagomoris@gmail.com", "sonots@gmail.com", "her@sorah.jp"]
|
11
|
-
spec.description = %q{
|
12
|
-
spec.summary = %q{Lightning Fast Graphing/Visualization}
|
11
|
+
spec.description = %q{Lightning Fast Graphing/Visualization, built on RRDTool}
|
12
|
+
spec.summary = %q{Lightning Fast Graphing/Visualization, built on RRDTool}
|
13
13
|
spec.homepage = "https://github.com/tagomoris/focuslight"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_runtime_dependency "sinatra-contrib"
|
34
34
|
spec.add_runtime_dependency "erubis"
|
35
35
|
spec.add_runtime_dependency "unicorn"
|
36
|
+
spec.add_runtime_dependency "unicorn-worker-killer"
|
36
37
|
|
37
38
|
spec.add_runtime_dependency "sequel"
|
38
39
|
spec.add_runtime_dependency "sqlite3"
|
data/lib/focuslight/cli.rb
CHANGED
@@ -11,6 +11,8 @@ class Focuslight::CLI < Thor
|
|
11
11
|
LOG_DIR = File.join(BASE_DIR, "log")
|
12
12
|
LOG_FILE = File.join(LOG_DIR, "application.log")
|
13
13
|
ENV_FILE = File.join(BASE_DIR, ".env")
|
14
|
+
PROCFILE = File.join(BASE_DIR, "Procfile")
|
15
|
+
CONFIGRU_FILE = File.join(BASE_DIR, "config.ru")
|
14
16
|
|
15
17
|
DEFAULT_DOTENV =<<-EOS
|
16
18
|
DATADIR=#{DATA_DIR}
|
@@ -26,62 +28,50 @@ DBURL=#{DBURL}
|
|
26
28
|
# MOUNT=/
|
27
29
|
LOG_PATH=#{LOG_FILE}
|
28
30
|
LOG_LEVEL=warn
|
31
|
+
EOS
|
32
|
+
|
33
|
+
DEFAULT_PROCFILE =<<-EOS
|
34
|
+
web: unicorn -E production -p $PORT -o $HOST
|
35
|
+
worker1: focuslight longer
|
36
|
+
worker2: focuslight shorter
|
29
37
|
EOS
|
30
38
|
|
31
39
|
default_command :start
|
32
40
|
|
33
|
-
desc "new", "
|
41
|
+
desc "new", "Creates focuslight resource directory"
|
34
42
|
def new
|
35
43
|
FileUtils.mkdir_p(LOG_DIR)
|
36
44
|
File.write ENV_FILE, DEFAULT_DOTENV
|
45
|
+
File.write PROCFILE, DEFAULT_PROCFILE
|
46
|
+
configru_file = File.expand_path("../../../config.ru", __FILE__)
|
47
|
+
FileUtils.copy(configru_file, CONFIGRU_FILE)
|
37
48
|
end
|
38
49
|
|
39
|
-
desc "init", "
|
50
|
+
desc "init", "Creates database schema"
|
40
51
|
def init
|
41
|
-
|
42
|
-
|
43
|
-
Dotenv.load ENV_FILE
|
52
|
+
Dotenv.load
|
44
53
|
require "focuslight/init"
|
45
54
|
Focuslight::Init.run
|
46
55
|
end
|
47
56
|
|
48
57
|
desc "start", "Sartup focuslight"
|
49
58
|
def start
|
50
|
-
|
51
|
-
|
52
|
-
Dotenv.load ENV_FILE
|
59
|
+
Dotenv.load
|
53
60
|
require "foreman/cli"
|
54
|
-
|
55
|
-
Foreman::CLI.new.invoke(:start, [], procfile: procfile)
|
61
|
+
Foreman::CLI.new.invoke(:start, [], {})
|
56
62
|
end
|
57
63
|
|
58
64
|
desc "longer", "Startup focuslight longer worker"
|
59
65
|
def longer
|
60
|
-
|
61
|
-
|
62
|
-
Dotenv.load ENV_FILE
|
66
|
+
Dotenv.load
|
63
67
|
require "focuslight/worker"
|
64
68
|
Focuslight::Worker.run(interval: 300, target: :normal)
|
65
69
|
end
|
66
70
|
|
67
71
|
desc "shorter", "Startup focuslight shorter worker"
|
68
72
|
def shorter
|
69
|
-
|
70
|
-
|
71
|
-
Dotenv.load ENV_FILE
|
73
|
+
Dotenv.load
|
72
74
|
require "focuslight/worker"
|
73
75
|
Focuslight::Worker.run(interval: 60, target: :short)
|
74
76
|
end
|
75
|
-
|
76
|
-
#desc "web", "Startup focuslight web server"
|
77
|
-
#def web
|
78
|
-
# ToDo
|
79
|
-
#end
|
80
|
-
|
81
|
-
no_tasks do
|
82
|
-
def abort(msg)
|
83
|
-
$stderr.puts msg
|
84
|
-
exit 1
|
85
|
-
end
|
86
|
-
end
|
87
77
|
end
|
data/lib/focuslight/version.rb
CHANGED
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'focuslight/cli'
|
3
|
+
|
4
|
+
describe Focuslight::CLI do
|
5
|
+
let(:cli) { Focuslight::CLI.new }
|
6
|
+
|
7
|
+
context "#new" do
|
8
|
+
before { cli.invoke(:new) }
|
9
|
+
it {
|
10
|
+
expect(Dir.exists?(Focuslight::CLI::BASE_DIR)).to be_true
|
11
|
+
expect(Dir.exists?(Focuslight::CLI::LOG_DIR)).to be_true
|
12
|
+
expect(File.read(Focuslight::CLI::ENV_FILE)).to eql(Focuslight::CLI::DEFAULT_DOTENV)
|
13
|
+
expect(File.read(Focuslight::CLI::PROCFILE)).to eql(Focuslight::CLI::DEFAULT_PROCFILE)
|
14
|
+
expect(File.exists?(Focuslight::CLI::CONFIGRU_FILE)).to be_true
|
15
|
+
}
|
16
|
+
after { FileUtils.remove_dir(Focuslight::CLI::BASE_DIR) }
|
17
|
+
end
|
18
|
+
|
19
|
+
context "#init" do
|
20
|
+
before {
|
21
|
+
cli.invoke(:new)
|
22
|
+
Dir.chdir(Focuslight::CLI::BASE_DIR) {|path|
|
23
|
+
cli.invoke(:init)
|
24
|
+
}
|
25
|
+
}
|
26
|
+
it { expect(Dir.exists?(Focuslight::CLI::DATA_DIR)).to be_true }
|
27
|
+
after { FileUtils.remove_dir(Focuslight::CLI::BASE_DIR) }
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: focuslight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-03-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -194,6 +194,20 @@ dependencies:
|
|
194
194
|
- - '>='
|
195
195
|
- !ruby/object:Gem::Version
|
196
196
|
version: '0'
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: unicorn-worker-killer
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - '>='
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0'
|
204
|
+
type: :runtime
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - '>='
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0'
|
197
211
|
- !ruby/object:Gem::Dependency
|
198
212
|
name: sequel
|
199
213
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,7 +278,7 @@ dependencies:
|
|
264
278
|
- - '>='
|
265
279
|
- !ruby/object:Gem::Version
|
266
280
|
version: '0'
|
267
|
-
description:
|
281
|
+
description: Lightning Fast Graphing/Visualization, built on RRDTool
|
268
282
|
email:
|
269
283
|
- tagomoris@gmail.com
|
270
284
|
- sonots@gmail.com
|
@@ -281,7 +295,6 @@ files:
|
|
281
295
|
- Gemfile
|
282
296
|
- LICENSE.txt
|
283
297
|
- Procfile
|
284
|
-
- Procfile-gem
|
285
298
|
- README.md
|
286
299
|
- Rakefile
|
287
300
|
- bin/focuslight
|
@@ -311,6 +324,7 @@ files:
|
|
311
324
|
- public/js/jquery-1.10.2.min.map
|
312
325
|
- public/js/jquery.storageapi.min.js
|
313
326
|
- public/js/site.js
|
327
|
+
- spec/cli_spec.rb
|
314
328
|
- spec/spec_helper.rb
|
315
329
|
- spec/syntax_spec.rb
|
316
330
|
- spec/validator_predefined_rules_spec.rb
|
@@ -349,8 +363,9 @@ rubyforge_project:
|
|
349
363
|
rubygems_version: 2.0.3
|
350
364
|
signing_key:
|
351
365
|
specification_version: 4
|
352
|
-
summary: Lightning Fast Graphing/Visualization
|
366
|
+
summary: Lightning Fast Graphing/Visualization, built on RRDTool
|
353
367
|
test_files:
|
368
|
+
- spec/cli_spec.rb
|
354
369
|
- spec/spec_helper.rb
|
355
370
|
- spec/syntax_spec.rb
|
356
371
|
- spec/validator_predefined_rules_spec.rb
|
data/Procfile-gem
DELETED