magi 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +12 -9
- data/app/controllers/application_controller.rb +4 -0
- data/app/controllers/builds_controller.rb +5 -2
- data/app/controllers/jobs_controller.rb +12 -3
- data/lib/magi/version.rb +1 -1
- data/magi.gemspec +1 -0
- data/spec/requests/builds_spec.rb +6 -6
- data/spec/requests/jobs_spec.rb +8 -8
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd8670d413c9cc9a48fc8ab40a8a61bf7644df09
|
4
|
+
data.tar.gz: bdcde50c3ccb2bb39de71b4d706d36ceb59980a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d816fdc2a44c697af5bad160e83fc1e1dcf56eaee8b4270f560cc621372ed8d45966c874f19514563b36482533b8fbbe78ddd3eb6aeced1cf98f7cce5712878
|
7
|
+
data.tar.gz: 9fe5724e18f3063c5a800dedc4c6f3f5e076b40f6a82597d091351ca8768bebce04cb7095160062d509b81141bdc9a0fa18075938f0d7144ea2051d6254333f1
|
data/Gemfile
CHANGED
@@ -7,12 +7,14 @@ gem "jquery-rails"
|
|
7
7
|
gem "quiet_assets"
|
8
8
|
gem "resque"
|
9
9
|
gem "slim"
|
10
|
+
gem "weak_parameters"
|
10
11
|
|
11
12
|
group :development, :test do
|
12
13
|
gem "pry-rails"
|
13
14
|
end
|
14
15
|
|
15
16
|
group :test do
|
17
|
+
gem "autodoc"
|
16
18
|
gem "factory_girl_rails"
|
17
19
|
gem "response_code_matchers"
|
18
20
|
gem "rspec-json_matcher"
|
data/README.md
CHANGED
@@ -16,15 +16,18 @@ $ magi start # open http://localhost:3000
|
|
16
16
|
```
|
17
17
|
|
18
18
|
## Hack
|
19
|
-
Magi is just a rails application.
|
20
|
-
Feel free to do what you want.
|
19
|
+
Magi is just a rails application with some middlewares.
|
21
20
|
|
22
|
-
|
23
|
-
*
|
24
|
-
*
|
25
|
-
*
|
26
|
-
* MySQL: store jobs & builds
|
21
|
+
* clockwork: scheduler
|
22
|
+
* foreman: process manager
|
23
|
+
* mysql: store jobs & builds
|
24
|
+
* resque: background worker using redis
|
27
25
|
|
28
|
-
|
26
|
+
## Todo
|
27
|
+
* async update by ajax
|
29
28
|
* plugin system
|
30
|
-
*
|
29
|
+
* git integration
|
30
|
+
* command-line options
|
31
|
+
|
32
|
+
## API
|
33
|
+
[API documents](https://github.com/r7kamura/magi/blob/master/doc)
|
@@ -2,7 +2,10 @@ class BuildsController < ApplicationController
|
|
2
2
|
before_filter :require_job
|
3
3
|
before_filter :require_resources, only: :index
|
4
4
|
before_filter :require_resource, only: [:show, :update, :destroy]
|
5
|
-
|
5
|
+
|
6
|
+
validates :update do
|
7
|
+
integer :status
|
8
|
+
end
|
6
9
|
|
7
10
|
def index
|
8
11
|
respond_with @resources
|
@@ -18,7 +21,7 @@ class BuildsController < ApplicationController
|
|
18
21
|
end
|
19
22
|
|
20
23
|
def update
|
21
|
-
respond_with @resource.update_attributes(
|
24
|
+
respond_with @resource.update_attributes(params.slice(:status))
|
22
25
|
end
|
23
26
|
|
24
27
|
def destroy
|
@@ -1,8 +1,17 @@
|
|
1
1
|
class JobsController < ApplicationController
|
2
|
-
before_filter :require_resource_params, only: [:create, :update]
|
3
2
|
before_filter :require_resources, only: :index
|
4
3
|
before_filter :require_resource, only: [:show, :edit, :update, :destroy]
|
5
4
|
|
5
|
+
validates :create do
|
6
|
+
string :name, required: true
|
7
|
+
hash :config
|
8
|
+
end
|
9
|
+
|
10
|
+
validates :update do
|
11
|
+
string :name
|
12
|
+
hash :config
|
13
|
+
end
|
14
|
+
|
6
15
|
def index
|
7
16
|
respond_with @resources
|
8
17
|
end
|
@@ -16,11 +25,11 @@ class JobsController < ApplicationController
|
|
16
25
|
end
|
17
26
|
|
18
27
|
def create
|
19
|
-
respond_with @resource = scope.create_with_properties(
|
28
|
+
respond_with @resource = scope.create_with_properties(params.slice(:config, :name))
|
20
29
|
end
|
21
30
|
|
22
31
|
def update
|
23
|
-
respond_with @resource.update_attributes_with_properties(
|
32
|
+
respond_with @resource.update_attributes_with_properties(params.slice(:config, :name))
|
24
33
|
end
|
25
34
|
|
26
35
|
def destroy
|
data/lib/magi/version.rb
CHANGED
data/magi.gemspec
CHANGED
@@ -39,6 +39,7 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_dependency "sass-rails", "~> 3.2.3"
|
40
40
|
spec.add_dependency "slim"
|
41
41
|
spec.add_dependency "uglifier", ">= 1.0.3"
|
42
|
+
spec.add_dependency "weak_parameters", ">= 0.0.2"
|
42
43
|
spec.add_development_dependency "bundler", "~> 1.3"
|
43
44
|
spec.add_development_dependency "pry-rails"
|
44
45
|
spec.add_development_dependency "thin"
|
@@ -22,7 +22,7 @@ describe "Builds" do
|
|
22
22
|
build
|
23
23
|
end
|
24
24
|
|
25
|
-
it "returns builds of the job" do
|
25
|
+
it "returns builds of the job", :autodoc do
|
26
26
|
get "/jobs/#{job.id}/builds", params, env
|
27
27
|
response.status.should == 200
|
28
28
|
response.body.should be_json([Hash])
|
@@ -30,7 +30,7 @@ describe "Builds" do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
describe "GET /jobs/:job_id/builds/:id" do
|
33
|
-
it "returns the build" do
|
33
|
+
it "returns the build", :autodoc do
|
34
34
|
get "/jobs/#{job.id}/builds/#{build.id}", params, env
|
35
35
|
response.status.should == 200
|
36
36
|
response.body.should be_json(Hash)
|
@@ -38,7 +38,7 @@ describe "Builds" do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
describe "POST /jobs/:job_id/builds" do
|
41
|
-
it "creates a new build and queue it" do
|
41
|
+
it "creates a new build and queue it", :autodoc do
|
42
42
|
post "/jobs/#{job.id}/builds", params, env
|
43
43
|
response.status.should == 201
|
44
44
|
response.body.should be_json(Hash)
|
@@ -48,10 +48,10 @@ describe "Builds" do
|
|
48
48
|
|
49
49
|
describe "PUT /jobs/:job_id/builds/:id" do
|
50
50
|
before do
|
51
|
-
params[:
|
51
|
+
params[:status] = 1
|
52
52
|
end
|
53
53
|
|
54
|
-
it "updates the build" do
|
54
|
+
it "updates the build", :autodoc do
|
55
55
|
put "/jobs/#{job.id}/builds/#{build.id}", params, env
|
56
56
|
response.status.should == 204
|
57
57
|
build.reload.status.should == true
|
@@ -59,7 +59,7 @@ describe "Builds" do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "DELETE /jobs/:job_id/builds/:id" do
|
62
|
-
it "deletes the build" do
|
62
|
+
it "deletes the build", :autodoc do
|
63
63
|
delete "/jobs/#{job.id}/builds/#{build.id}", params, env
|
64
64
|
response.status.should == 204
|
65
65
|
Build.should have(0).build
|
data/spec/requests/jobs_spec.rb
CHANGED
@@ -18,7 +18,7 @@ describe "Jobs" do
|
|
18
18
|
job
|
19
19
|
end
|
20
20
|
|
21
|
-
it "returns jobs" do
|
21
|
+
it "returns jobs", :autodoc do
|
22
22
|
get "/jobs", params, env
|
23
23
|
response.status.should == 200
|
24
24
|
response.body.should be_json([Hash])
|
@@ -26,7 +26,7 @@ describe "Jobs" do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "GET /jobs/:id" do
|
29
|
-
it "returns the job" do
|
29
|
+
it "returns the job", :autodoc do
|
30
30
|
get "/jobs/#{job.id}", params, env
|
31
31
|
response.status.should == 200
|
32
32
|
response.body.should be_json(Hash)
|
@@ -35,12 +35,12 @@ describe "Jobs" do
|
|
35
35
|
|
36
36
|
describe "POST /jobs" do
|
37
37
|
before do
|
38
|
-
params[:
|
38
|
+
params[:name] = "name"
|
39
39
|
end
|
40
40
|
|
41
41
|
context "with invalid params" do
|
42
42
|
before do
|
43
|
-
params.delete(:
|
43
|
+
params.delete(:name)
|
44
44
|
end
|
45
45
|
|
46
46
|
it "returns 400" do
|
@@ -50,7 +50,7 @@ describe "Jobs" do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
context "with valid condition" do
|
53
|
-
it "creates a new job" do
|
53
|
+
it "creates a new job", :autodoc do
|
54
54
|
post "/jobs", params, env
|
55
55
|
response.status.should == 201
|
56
56
|
Job.should have(1).job
|
@@ -60,12 +60,12 @@ describe "Jobs" do
|
|
60
60
|
|
61
61
|
describe "PUT /jobs/:id" do
|
62
62
|
before do
|
63
|
-
params[:
|
63
|
+
params[:name] = "name"
|
64
64
|
end
|
65
65
|
|
66
66
|
context "with invalid params" do
|
67
67
|
before do
|
68
|
-
params
|
68
|
+
params[:config] = "invalid"
|
69
69
|
end
|
70
70
|
|
71
71
|
it "returns 400" do
|
@@ -75,7 +75,7 @@ describe "Jobs" do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
context "with valid condition" do
|
78
|
-
it "updates the job" do
|
78
|
+
it "updates the job", :autodoc do
|
79
79
|
put "/jobs/#{job.id}", params, env
|
80
80
|
response.status.should == 204
|
81
81
|
job.reload.name.should == "name"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clockwork
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.0.3
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: weak_parameters
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.0.2
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 0.0.2
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: bundler
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|