agilib 0.1.2.beta2 → 0.1.2.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/agilib/composer/templates/recipes/bootstrap.rb +21 -0
- data/lib/agilib/composer/templates/recipes/devise.rb +11 -4
- data/lib/agilib/composer/templates/recipes/gems.rb +3 -1
- data/lib/agilib/composer/templates/recipes/responders.rb +4 -0
- data/lib/agilib/composer/templates/recipes/rspec.rb +36 -0
- data/lib/agilib/composer/templates/runner.rb +1 -1
- data/lib/agilib/composer/templates/snippets/rspec/tokens_acceptance_spec.rb +41 -0
- data/lib/agilib/composer/templates/snippets/rspec/users_acceptance_spec.rb +85 -0
- data/lib/agilib/routing.rb +1 -1
- data/lib/agilib/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eae783f8900dd689879332bfb3d78dcddae1ff61
|
4
|
+
data.tar.gz: 56f13fc79a96b69461acbe4494469054276d0df4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd147c6b22202b72a40e4a33818c93c912fdd7020f61e00258b684dfd70e71b5249a76a7966521a4a7e3a692279eca18d9869eaebc3183832a79ec0644b618fb
|
7
|
+
data.tar.gz: 4ff554db8d3d5f3b4b7955a6886a382da19c0418a66f885adbaa1e820428c8dab85765b8831b0d01446aedd478d062acab1212f2b4802754bbaae5b538d2f6cd
|
@@ -0,0 +1,21 @@
|
|
1
|
+
gem "bootstrap-generators"
|
2
|
+
|
3
|
+
templater.post_bundler do
|
4
|
+
|
5
|
+
generate 'bootstrap:install', '-f'
|
6
|
+
|
7
|
+
if defined? app_name
|
8
|
+
name = app_name
|
9
|
+
elsif defined? application_name
|
10
|
+
name = application_name
|
11
|
+
end
|
12
|
+
|
13
|
+
gsub_file "app/views/layouts/application.html.erb", "<title>Starter Template for Bootstrap</title>", "<title>#{name.capitalize} App</title>"
|
14
|
+
gsub_file "app/views/layouts/application.html.erb", '<%= link_to "Project name", "#", :class => "navbar-brand" %>', "<%= link_to \"#{name.capitalize} App\", agilib_root_path, :class => \"navbar-brand\" %>"
|
15
|
+
|
16
|
+
gsub_file "app/assets/stylesheets/bootstrap-variables.scss", '$navbar-inverse-bg: #222 !default;', "$navbar-inverse-bg: #0085a6 !default;"
|
17
|
+
gsub_file "app/assets/stylesheets/bootstrap-variables.scss", '$navbar-inverse-link-color: $gray-light !default;', "$navbar-inverse-link-color: #fff !default;"
|
18
|
+
gsub_file "app/assets/stylesheets/bootstrap-variables.scss", '$navbar-inverse-link-hover-color: #fff !default;', "$navbar-inverse-link-hover-color: $gray-light !default;"
|
19
|
+
gsub_file "app/assets/stylesheets/bootstrap-variables.scss", '$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;', "$navbar-inverse-link-active-color: #46a4bd !default;"
|
20
|
+
|
21
|
+
end
|
@@ -2,11 +2,18 @@
|
|
2
2
|
gem 'devise'
|
3
3
|
|
4
4
|
templater.post_bundler do
|
5
|
+
|
6
|
+
generate 'scaffold', 'user name'
|
7
|
+
|
8
|
+
rake 'db:migrate'
|
9
|
+
|
5
10
|
generate 'devise:install'
|
6
|
-
generate 'devise', "user name"
|
7
|
-
rake 'db:migrate'
|
8
|
-
generate 'devise:views'
|
9
11
|
|
12
|
+
generate 'devise', "user"
|
13
|
+
|
14
|
+
rake 'db:migrate'
|
15
|
+
|
16
|
+
generate 'devise:views'
|
10
17
|
|
11
18
|
devise_form_config = <<-TEXT
|
12
19
|
<%= f.input :name, :required => true, :autofocus => true %>
|
@@ -30,6 +37,6 @@ protected
|
|
30
37
|
TEXT
|
31
38
|
|
32
39
|
inject_into_file "app/controllers/application_controller.rb", devise_filter_config, :after => "protect_from_forgery with: :exception"
|
33
|
-
inject_into_file "app/controllers/application_controller.rb", "\n\
|
40
|
+
inject_into_file "app/controllers/application_controller.rb", "\n\n before_filter :configure_permitted_parameters, if: :devise_controller?\n\n ", :after => "class ApplicationController < ActionController::Base"
|
34
41
|
|
35
42
|
end
|
@@ -3,9 +3,14 @@ gem 'factory_girl_rails', :group => [:development, :test]
|
|
3
3
|
gem "database_cleaner", :group => :test
|
4
4
|
gem "email_spec", :group => :test
|
5
5
|
gem 'simplecov', :require => false, :group => :test
|
6
|
+
gem 'rspec_api_documentation', :group => [:development, :test]
|
7
|
+
gem 'raddocs', :github => "smartlogic/raddocs"
|
8
|
+
gem 'json_spec', :group => [:development, :test]
|
6
9
|
|
7
10
|
templater.post_bundler do
|
8
11
|
|
12
|
+
rake 'db:test:prepare'
|
13
|
+
|
9
14
|
spec_helper_path = 'spec/spec_helper.rb'
|
10
15
|
|
11
16
|
## ===============================================================
|
@@ -121,5 +126,36 @@ SimpleCov.start
|
|
121
126
|
remove_file "spec/models/user_spec.rb"
|
122
127
|
create_file "spec/models/user_spec.rb", templater.load_snippet('user_model_spec','rspec')
|
123
128
|
|
129
|
+
## ===============================================================
|
130
|
+
## RSPEC API DOCUMENTATION
|
131
|
+
## ===============================================================
|
132
|
+
|
133
|
+
say("\nConfigurando RSpec API Documentation...\n", :green)
|
134
|
+
|
135
|
+
inject_into_file "config/routes.rb", "\n\n get \"/docs\" => Raddocs::App, :anchor => false\n\n", :after => "agilib"
|
136
|
+
|
137
|
+
append_file spec_helper_path do
|
138
|
+
<<-TEXT
|
139
|
+
RspecApiDocumentation.configure do |config|
|
140
|
+
config.format = [:json]
|
141
|
+
config.keep_source_order = true
|
142
|
+
end
|
143
|
+
TEXT
|
144
|
+
end
|
145
|
+
|
146
|
+
create_file "spec/acceptance/users_spec.rb", templater.load_snippet('users_acceptance_spec','rspec')
|
147
|
+
create_file "spec/acceptance/tokens_spec.rb", templater.load_snippet('tokens_acceptance_spec','rspec')
|
148
|
+
|
149
|
+
generate 'docs:generate'
|
150
|
+
|
151
|
+
## ===============================================================
|
152
|
+
## USER SPECS
|
153
|
+
## ===============================================================
|
154
|
+
|
155
|
+
say("\nConfigurando Testes para User...\n", :green)
|
156
|
+
|
157
|
+
remove_file "spec/models/user_spec.rb"
|
158
|
+
create_file "spec/models/user_spec.rb", templater.load_snippet('user_model_spec','rspec')
|
159
|
+
|
124
160
|
|
125
161
|
end
|
@@ -4,7 +4,7 @@ require File.join(File.expand_path('./../../../../', __FILE__), 'agilib.rb')
|
|
4
4
|
require 'composer'
|
5
5
|
require File.join(File.dirname(__FILE__), 'core_ext.rb')
|
6
6
|
|
7
|
-
%w(default gems responders simple_form devise token push rspec cancan better_errors).each do |recipe|
|
7
|
+
%w(default gems responders simple_form bootstrap devise token push rspec cancan better_errors).each do |recipe|
|
8
8
|
apply templater.recipe(recipe)
|
9
9
|
end
|
10
10
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec_api_documentation/dsl'
|
3
|
+
|
4
|
+
resource "Tokens" do
|
5
|
+
header "Accept", "application/json"
|
6
|
+
header "Content-Type", "application/json"
|
7
|
+
|
8
|
+
let(:token) { "" }
|
9
|
+
let(:user){ create(:user) }
|
10
|
+
|
11
|
+
# POST /tokens
|
12
|
+
post "/tokens" do
|
13
|
+
|
14
|
+
parameter :email, "User email", :required => true
|
15
|
+
parameter :password, "User Password", :required => true
|
16
|
+
|
17
|
+
let(:email) { user.email }
|
18
|
+
let(:password) { user.password }
|
19
|
+
|
20
|
+
let(:raw_post) { params.to_json }
|
21
|
+
|
22
|
+
example_request "Getting an session token" do
|
23
|
+
expect(status).to eq(200)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# DELETE /tokens
|
28
|
+
delete "/tokens" do
|
29
|
+
|
30
|
+
parameter :user_token, "The token", :required => true
|
31
|
+
|
32
|
+
let(:user_token) { user.authentication_token }
|
33
|
+
|
34
|
+
let(:raw_post) { params.to_json }
|
35
|
+
|
36
|
+
example_request "Deleting an token" do
|
37
|
+
expect(status).to eq(200)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec_api_documentation/dsl'
|
3
|
+
|
4
|
+
resource "Users" do
|
5
|
+
header "Accept", "application/json"
|
6
|
+
header "Content-Type", "application/json"
|
7
|
+
|
8
|
+
let(:current_user) { create(:user) }
|
9
|
+
|
10
|
+
let(:user_token) { current_user.authentication_token if current_user }
|
11
|
+
let(:user_email) { current_user.email if current_user }
|
12
|
+
|
13
|
+
# POST /users
|
14
|
+
post "/users" do
|
15
|
+
parameter :name, "Name of user", :required => true, :scope => :user
|
16
|
+
parameter :email, "Email of user", :required => true, :scope => :user
|
17
|
+
parameter :password, "Password", :required => true, :scope => :user
|
18
|
+
parameter :password_confirmation, "Password Confirmation", :required => true, :scope => :user
|
19
|
+
parameter :user_token, "User token", :required => true
|
20
|
+
parameter :user_email, "User email", :required => true
|
21
|
+
|
22
|
+
let(:name) { "User Test" }
|
23
|
+
let(:email) { "usertest@email.com" }
|
24
|
+
let(:password) { "password1234" }
|
25
|
+
let(:password_confirmation) { "password1234" }
|
26
|
+
|
27
|
+
let(:raw_post) do
|
28
|
+
params.to_json
|
29
|
+
end
|
30
|
+
|
31
|
+
example_request "Creating an user" do
|
32
|
+
expect(status).to eq(201)
|
33
|
+
|
34
|
+
current_user = JSON.parse(response_body)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# GET /users/:id
|
39
|
+
get "/users/:id" do
|
40
|
+
parameter :user_token, "User token", :required => true
|
41
|
+
parameter :user_email, "User email", :required => true
|
42
|
+
|
43
|
+
let(:id) { current_user.id }
|
44
|
+
|
45
|
+
let(:raw_post) { params.to_json }
|
46
|
+
|
47
|
+
example_request "Getting a specific user" do
|
48
|
+
status.should == 200
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# PUT /users/:id
|
53
|
+
put "/users/:id" do
|
54
|
+
parameter :name, "Name of user", :scope => :user
|
55
|
+
parameter :email, "Email of user", :scope => :user
|
56
|
+
parameter :password, "Email of user", :scope => :user
|
57
|
+
parameter :password_confirmation, "Email of user", :scope => :user
|
58
|
+
parameter :user_token, "User token", :required => true
|
59
|
+
parameter :user_email, "User email", :required => true
|
60
|
+
|
61
|
+
let(:id) { current_user.id }
|
62
|
+
let(:name) { "Updated Name" }
|
63
|
+
|
64
|
+
let(:raw_post) { params.to_json }
|
65
|
+
|
66
|
+
example_request "Updating an user" do
|
67
|
+
expect(status).to eq(204)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# DELETE /users/:id
|
72
|
+
delete "/users/:id" do
|
73
|
+
parameter :id, "Id of user", :required => true, :scope => :user
|
74
|
+
parameter :user_token, "User token", :required => true
|
75
|
+
parameter :user_email, "User email", :required => true
|
76
|
+
|
77
|
+
let(:raw_post) { params.to_json }
|
78
|
+
let(:id) { current_user.id }
|
79
|
+
|
80
|
+
example_request "Deleting an user" do
|
81
|
+
status.should == 204
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
data/lib/agilib/routing.rb
CHANGED
data/lib/agilib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agilib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.2.
|
4
|
+
version: 0.1.2.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcos Junior
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: executable-hooks
|
@@ -191,6 +191,7 @@ files:
|
|
191
191
|
- lib/agilib/composer/templater.rb
|
192
192
|
- lib/agilib/composer/templates/core_ext.rb
|
193
193
|
- lib/agilib/composer/templates/recipes/better_errors.rb
|
194
|
+
- lib/agilib/composer/templates/recipes/bootstrap.rb
|
194
195
|
- lib/agilib/composer/templates/recipes/cancan.rb
|
195
196
|
- lib/agilib/composer/templates/recipes/default.rb
|
196
197
|
- lib/agilib/composer/templates/recipes/devise.rb
|
@@ -201,7 +202,9 @@ files:
|
|
201
202
|
- lib/agilib/composer/templates/recipes/simple_form.rb
|
202
203
|
- lib/agilib/composer/templates/recipes/token.rb
|
203
204
|
- lib/agilib/composer/templates/runner.rb
|
205
|
+
- lib/agilib/composer/templates/snippets/rspec/tokens_acceptance_spec.rb
|
204
206
|
- lib/agilib/composer/templates/snippets/rspec/user_model_spec.rb
|
207
|
+
- lib/agilib/composer/templates/snippets/rspec/users_acceptance_spec.rb
|
205
208
|
- lib/agilib/engine.rb
|
206
209
|
- lib/agilib/push_notification/model.rb
|
207
210
|
- lib/agilib/push_notification/platforms/android.rb
|