agilib 0.1.2.beta2 → 0.1.2.beta3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 453f80e7bcf6135ec21713190c439c6fbafe010e
4
- data.tar.gz: 3d6e0e5c0cdc63fe3b4078733f202e7bc23d9e58
3
+ metadata.gz: eae783f8900dd689879332bfb3d78dcddae1ff61
4
+ data.tar.gz: 56f13fc79a96b69461acbe4494469054276d0df4
5
5
  SHA512:
6
- metadata.gz: d38ac3f38cbdaf2bfc6b0fc3142bb7d9c64356b6aa256aa55a91d5c180a46b4e51297f5dfb4c9521b0431935d80b3ae19c73f891b398c7e35bc26b1df28a64a9
7
- data.tar.gz: 2addc32eb908cd682a0233faa2e24c928d48b30fdb59eca060de6f7cb5549c5fcf13da9d6fc0fef49826b56cd7d0f07a01c6448307614b8ebd7e7f36e9ee55a2
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\nbefore_filter :configure_permitted_parameters, if: :devise_controller?", :after => "class ApplicationController < ActionController::Base"
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
@@ -4,4 +4,6 @@ gem 'will_paginate', '~> 3.0'
4
4
  gem 'will_paginate-bootstrap'
5
5
 
6
6
  gem 'geocoder'
7
- gem "paperclip", "~> 3.0"
7
+ gem "paperclip", "~> 3.0"
8
+
9
+ gsub_file "Gemfile", "gem 'coffee-rails'", "#gem 'coffee-rails'"
@@ -3,4 +3,8 @@ gem 'responders'
3
3
 
4
4
  templater.post_bundler do
5
5
  generate 'responders:install'
6
+
7
+
8
+ gsub_file "app/controllers/application_controller.rb", 'respond_to :html', 'respond_to :html, :json'
9
+
6
10
  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
@@ -5,7 +5,7 @@ module Agilib
5
5
  def agilib
6
6
 
7
7
  if Agilib.rails4? && Rails.env.development?
8
- get "/" => "agilib/welcome#index"
8
+ root :to => "agilib/welcome#index", :as => :agilib_root
9
9
  end
10
10
 
11
11
  if Agilib.use_modules[:token_authenticatable].present?
@@ -3,7 +3,7 @@ module Agilib
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
5
  PATCH = 2
6
- BUILD = 'beta2'
6
+ BUILD = 'beta3'
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
9
9
  end
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.beta2
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-16 00:00:00.000000000 Z
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