magi 0.0.4 → 0.0.5
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/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
|