brace 0.0.3 → 0.1.0

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: bcf979a593a59378fa588cb6821deee323498e6a
4
- data.tar.gz: 905818ab4a36d784c4ddc65ecd6ffaab65942efa
3
+ metadata.gz: caf08df2db40ea4fc9294374491917b56354a0af
4
+ data.tar.gz: 9f767180873e57d9b8ea2e3b66382704bb8e46e3
5
5
  SHA512:
6
- metadata.gz: af270213b4ea7f5f212599767c9f53a53ae6db7556b669efbb93f5b2354abad97a631dae623dbcb5f3751fa48f96da1d042336edfd7300b064dd4991ea1b445e
7
- data.tar.gz: a79bee0db5c9835a90e6c651e0b52309ba4c2fbe2ec2470c6298bc9e30c6cc1084835e5608e945903445eeb85ec72e1209dc75d484126dc630489e379f00e1c0
6
+ metadata.gz: 04c40e5a773eb4a740436551edad7e5f33782f1bd5abc3386d5cf8eb1f6e50d400bda20940cc2aeb1c4bad69f05b3fa546f4a409992122943ed5bf04bd067210
7
+ data.tar.gz: ef491180d2d810eee694338d3412d2a2a3026701758d4cc004d42650f5bd935a8fbf3a332150216be8dd0e5fc4464274afbcbabd0a62d8c8e71557e200e69285
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Brace
2
2
 
3
- Brace is a base Rails API application.
3
+ Brace is a base Rails application.
4
4
 
5
5
  ## Installation
6
6
 
@@ -12,7 +12,7 @@ Then run:
12
12
 
13
13
  brace projectname
14
14
 
15
- This will create a Rails API in `projectname`.
15
+ This will create a Rails app in `projectname`.
16
16
 
17
17
  ## Gemfile
18
18
 
@@ -76,17 +76,12 @@ module Brace
76
76
 
77
77
  def configure_action_mailer_development
78
78
  config = <<-CONFIG
79
- config.action_mailer.delivery_method = :file
80
- config.action_mailer.default_url_options = { host: 'localhost', port: #{port} }
79
+ config.action_mailer.delivery_method = :file
81
80
  CONFIG
82
81
 
83
82
  environment(config, env: 'development')
84
83
  end
85
84
 
86
- def configure_responders
87
- application('config.app_generators.scaffold_controller :responders_controller')
88
- end
89
-
90
85
  def set_up_factory_girl_for_rspec
91
86
  copy_file 'factory_girl_rspec.rb', 'spec/support/factory_girl.rb'
92
87
  end
@@ -153,10 +148,6 @@ module Brace
153
148
  remove_file "config/initializers/wrap_parameters.rb"
154
149
  end
155
150
 
156
- def create_partials_directory
157
- empty_directory 'app/views/application'
158
- end
159
-
160
151
  def create_application_layout
161
152
  template 'brace_layout.html.slim.erb',
162
153
  'app/views/layouts/application.html.slim',
@@ -266,9 +257,34 @@ module Brace
266
257
  'app/assets/stylesheets/application.css.scss'
267
258
  end
268
259
 
269
- def install_devise
270
- generate 'devise:install'
271
- route 'root to: "home#index"'
260
+ def setup_templates
261
+ copy_file 'slim.rb', 'config/initializers/slim.rb'
262
+ copy_file 'templates.js.erb', 'app/assets/javascripts/angular/templates.js.erb'
263
+ end
264
+
265
+ def setup_javascripts
266
+ remove_file 'assets/javascripts/application.js'
267
+ template 'application.js.erb', 'assets/javascripts/application.js'
268
+ end
269
+
270
+ def setup_angular_routing
271
+ routes = <<-ROUTES
272
+ get "*path", to: "application#index"
273
+ root 'application#index'
274
+ ROUTES
275
+
276
+ action = <<-ACTION
277
+ def index
278
+ render text: "", layout: "application"
279
+ end
280
+ ACTION
281
+
282
+ inject_into_file('config/routes.rb', routes, before: 'end')
283
+ inject_into_file('app/controllers/application_controller.rb', action, before: 'end')
284
+ end
285
+
286
+ def install_devise_token_auth
287
+ generate 'devise_token_auth:install Account auth'
272
288
  end
273
289
 
274
290
  def install_bitters
@@ -277,6 +293,15 @@ module Brace
277
293
 
278
294
  def install_responders
279
295
  generate 'responders:install'
296
+ application('config.app_generators.scaffold_controller :responders_controller')
297
+ end
298
+
299
+ def install_bower
300
+ template 'bower.json.erb', 'bower.json'
301
+ copy_file 'sample.bowerrc', '.bowerrc'
302
+ application("config.assets.paths << Rails.root.join('vendor', 'assets', 'components')
303
+ ")
304
+ run 'bower install'
280
305
  end
281
306
 
282
307
  def gitignore_files
@@ -396,6 +421,10 @@ you can deploy to staging and production with:
396
421
  end
397
422
  end
398
423
 
424
+ def add_base_controller
425
+ copy_file 'base_controller.rb', 'app/controllers/api/base_controller.rb'
426
+ end
427
+
399
428
  def remove_routes_comment_lines
400
429
  replace_in_file 'config/routes.rb',
401
430
  /Rails\.application\.routes\.draw do.*end/m,
@@ -35,15 +35,13 @@ module Brace
35
35
  invoke :setup_test_environment
36
36
  invoke :setup_production_environment
37
37
  invoke :setup_secret_token
38
- invoke :create_brace_views
39
38
  invoke :configure_app
39
+ invoke :remove_routes_comment_lines
40
40
  invoke :setup_stylesheets
41
- invoke :install_devise
42
- invoke :install_bitters
43
- invoke :install_responders
41
+ invoke :setup_angular
42
+ invoke :setup_api
44
43
  invoke :copy_miscellaneous_files
45
44
  invoke :customize_error_pages
46
- invoke :remove_routes_comment_lines
47
45
  invoke :setup_stripe
48
46
  invoke :setup_git
49
47
  invoke :setup_redis
@@ -56,6 +54,14 @@ module Brace
56
54
  invoke :outro
57
55
  end
58
56
 
57
+ def setup_angular
58
+ build :install_bower
59
+ build :setup_templates
60
+ build :setup_javascripts
61
+ build :setup_angular_routing
62
+ build :create_application_layout
63
+ end
64
+
59
65
  def customize_gemfile
60
66
  build :replace_gemfile
61
67
  build :set_ruby_to_version_being_used
@@ -116,13 +122,6 @@ module Brace
116
122
  build :setup_secret_token
117
123
  end
118
124
 
119
- def create_brace_views
120
- say 'Creating api template views'
121
- build :create_partials_directory
122
- build :create_shared_javascripts
123
- build :create_application_layout
124
- end
125
-
126
125
  def configure_app
127
126
  say 'Configuring app'
128
127
  build :configure_action_mailer
@@ -130,7 +129,6 @@ module Brace
130
129
  build :configure_rack_timeout
131
130
  build :configure_eager_load_paths
132
131
  build :configure_action_mailer_previews
133
- build :configure_responders
134
132
  build :disable_xml_params
135
133
  build :fix_i18n_deprecation_warning
136
134
  build :setup_default_rake_task
@@ -140,20 +138,13 @@ module Brace
140
138
  def setup_stylesheets
141
139
  say 'Set up stylesheets'
142
140
  build :setup_stylesheets
143
- end
144
-
145
- def install_devise
146
- say 'Install Devise'
147
- build :install_devise
148
- end
149
-
150
- def install_bitters
151
- say 'Install Bitters'
152
141
  build :install_bitters
153
142
  end
154
143
 
155
- def install_responders
156
- say 'Install Responders'
144
+ def setup_api
145
+ say 'Set up json api'
146
+ build :add_base_controller
147
+ build :install_devise_token_auth
157
148
  build :install_responders
158
149
  end
159
150
 
@@ -231,7 +222,7 @@ module Brace
231
222
  end
232
223
 
233
224
  def outro
234
- say 'Congratulations! You just generated a rails api!'
225
+ say 'Brace your self! You just generated a Rails app!'
235
226
  say "Remember to run 'rails generate rollbar' with your token."
236
227
  end
237
228
 
@@ -1,5 +1,5 @@
1
1
  module Brace
2
2
  RAILS_VERSION = "4.2.0"
3
3
  RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
4
- VERSION = "0.0.3"
4
+ VERSION = "0.1.0"
5
5
  end
@@ -16,7 +16,6 @@ gem 'uglifier'
16
16
  gem 'therubyracer'
17
17
 
18
18
  # Frontend JS
19
- gem 'react-rails'
20
19
  gem 'jquery-rails'
21
20
 
22
21
  # Frontend HTML/CSS
@@ -53,7 +52,9 @@ gem 'email_validator'
53
52
  gem 'stripe'
54
53
 
55
54
  # Authentication
55
+ gem 'omniauth'
56
56
  gem 'devise'
57
+ gem 'devise_token_auth'
57
58
 
58
59
  group :development, :test do
59
60
  gem 'rspec-rails', '~> 3.1.0'
@@ -0,0 +1,54 @@
1
+ /*
2
+ = require jquery
3
+
4
+ = require angular
5
+
6
+ = require lodash
7
+ = require restangular
8
+ = require angular-ui-router
9
+ = require angular-cookie
10
+ = require ng-token-auth
11
+ = require angular-bacon
12
+ = require_self
13
+ = require_tree ./angular/templates
14
+ = require_tree .
15
+ */
16
+
17
+ var App = angular.module('<%= app_name %>', [
18
+ 'ui.router',
19
+ 'templates',
20
+ 'restangular',
21
+ 'ipCookie',
22
+ 'ng-token-auth',
23
+ 'angular-bacon'
24
+ ]);
25
+
26
+ App.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', 'RestangularProvider', '$authProvider',
27
+ function($stateProvider, $urlRouterProvider, $locationProvider, RestangularProvider, $authProvider) {
28
+ RestangularProvider.setBaseUrl("/api");
29
+ RestangularProvider.setDefaultRequestParams({format: "json"});
30
+
31
+ $authProvider.configure({
32
+ apiUrl: 'http://<%= app_name %>.com/api'
33
+ });
34
+
35
+ $locationProvider.html5Mode(true);
36
+ $urlRouterProvider.otherwise("/widgets");
37
+
38
+ $stateProvider
39
+ .state('widgets', {
40
+ url: "/widgets",
41
+ abstract: true,
42
+ template: "<div ui-view></div>"
43
+ })
44
+ .state('widgets.list', {
45
+ url: "",
46
+ templateUrl: "widgets/index.html",
47
+ controller: "WidgetsListController"
48
+ }).
49
+ state('widgets.show', {
50
+ url: "/widgets/:id",
51
+ templateUrl: "widgets/show.html",
52
+ controller: "WidgetsShowController"
53
+ });
54
+ }]);
@@ -0,0 +1,4 @@
1
+ class Api::BaseController < ApplicationController
2
+ skip_before_filter :verify_authenticity_token
3
+ respond_to :json
4
+ end
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "<%= app_name %>",
3
+ "private": true,
4
+ "ignore": [
5
+ "**/.*",
6
+ "node_modules",
7
+ "bower_components",
8
+ "test",
9
+ "tests"
10
+ ],
11
+ "dependencies": {
12
+ "lodash": "~2.4.1",
13
+ "angular": "~1.3.13",
14
+ "angular-ui-router": "~0.2.13",
15
+ "restangular": "~1.4.0",
16
+ "ng-token-auth": "~0.0.24",
17
+ "angular-cookie": "~4.0.6",
18
+ "angular-bacon": "~2.0.0"
19
+ }
20
+ }
@@ -1,15 +1,12 @@
1
- doctype html
2
- html
1
+ doctype 5
2
+ html( ng-app="#{title}" )
3
3
  head
4
4
  meta name="ROBOTS" content="NOODP"
5
5
  meta name="viewport" content="width=device-width, initial-scale=1.0"
6
- / Configure default and controller-, and view-specific titles in
7
- / config/locales/en.yml. For more see:
8
- / https://github.com/calebthompson/title#usage
9
6
  title = title
10
- = stylesheet_link_tag "application", media: 'all', 'data-turbolinks-track' => true
11
- = csrf_meta_tags
12
-
13
- body class=#{body_class}
14
- = yield
15
- == render 'javascript'
7
+ = stylesheet_link_tag 'application', media: 'all'
8
+ body
9
+ .container
10
+ div ui-view=true
11
+
12
+ = javascript_include_tag 'application'
@@ -0,0 +1,3 @@
1
+ {
2
+ "directory": "vendor/assets/components"
3
+ }
@@ -0,0 +1 @@
1
+ Slim::Engine.set_options merge_attrs: { '(' => ')', '[' => ']' }
@@ -0,0 +1,15 @@
1
+ angular.module('templates', []).
2
+
3
+ run(['$templateCache', function($templateCache) {
4
+ <%
5
+ environment.context_class.instance_eval { include ActionView::Helpers::JavaScriptHelper }
6
+ app_root = File.expand_path('../../angular', __FILE__)
7
+ templates = File.join(app_root, %w{templates ** *.slim})
8
+ Dir.glob(templates).each do |f|
9
+ depend_on(f)
10
+ key = f.gsub(%r(^#{app_root}/templates/),'').gsub(/.slim$/, "")
11
+ content = environment.find_asset(f).body
12
+ %>
13
+ $templateCache.put("<%= key %>", "<%= escape_javascript(content) %>");
14
+ <% end %>
15
+ }]);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Whelchel
@@ -132,8 +132,11 @@ files:
132
132
  - templates/_javascript.html.erb
133
133
  - templates/action_mailer.rb
134
134
  - templates/application.css.scss
135
+ - templates/application.js.erb
136
+ - templates/base_controller.rb
135
137
  - templates/bin_deploy
136
138
  - templates/bin_setup.erb
139
+ - templates/bower.json.erb
137
140
  - templates/brace_gitignore
138
141
  - templates/brace_layout.html.slim.erb
139
142
  - templates/bundler_audit.rake
@@ -152,13 +155,16 @@ files:
152
155
  - templates/rack_timeout.rb
153
156
  - templates/rails_helper.rb
154
157
  - templates/redis.rb
158
+ - templates/sample.bowerrc
155
159
  - templates/sample.env
156
160
  - templates/secrets.yml
157
161
  - templates/sidekiq.rb
158
162
  - templates/sidekiq_rspec.rb
163
+ - templates/slim.rb
159
164
  - templates/smtp.rb
160
165
  - templates/spec_helper.rb
161
166
  - templates/stripe.rb
167
+ - templates/templates.js.erb
162
168
  - templates/vcr_helper.rb
163
169
  homepage: https://github.com/hwhelchel/brace
164
170
  licenses: