gimbal 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c9bec73840acda47571b6eb7d1391c7d1c9b260
4
- data.tar.gz: 8894555a3a221376fe8a9096903470d72ac836aa
3
+ metadata.gz: 03f55873c2f2a8082257070620282cb6c028a752
4
+ data.tar.gz: c41cf3ce49c838e10317a5c6abd0b3b9b06382af
5
5
  SHA512:
6
- metadata.gz: 995d3ecfa9e1d058d3e42ad793129582c86742ce0dd9b3ea7a94230d70ebcf03aa3ca5f77f706aaf49288843afc47a518a2c189fdc54752a7c6f5e5979d2fbad
7
- data.tar.gz: 624476dea16243d2084d0482474f4bfbb84ff1e372d948178240b68cf08be38dcc057e56f6f6b9d7ff08570af9a41acde75bf9ac056b181d7daa282f509c1610
6
+ metadata.gz: 46179e670dee4588a816dc4118cb00989e0d8de815faf47a7045bc1fa69ff0a0bb82eb65594e4b486735b8cd0d6e7c1a3990a979548eb0682aef1172939ac843
7
+ data.tar.gz: f6f80c232c70650790d2a3c8d90fcd531b4527fe71813a9b2f2f678b01a2a9287c2b387765374bb6a0108d7fed237ff38798310e2dea768cbe5baf4b002ab278
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  /.bundle
5
5
  /tmp
6
+ /.idea
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.2.4
data/.travis.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  language: ruby
2
- rvm: 2.2.3
2
+ rvm: 2.2.4
3
3
  cache: bundler
4
4
  sudo: false
5
5
  before_install:
@@ -158,18 +158,23 @@ module Gimbal
158
158
  end
159
159
 
160
160
  def create_shared_flashes
161
- copy_file "_flashes.html.erb", "app/views/application/_flashes.html.erb"
161
+ copy_file "_flashes.html.haml", "app/views/application/_flashes.html.haml"
162
162
  copy_file "flashes_helper.rb", "app/helpers/flashes_helper.rb"
163
163
  end
164
164
 
165
165
  def create_shared_javascripts
166
- copy_file '_javascript.html.erb', 'app/views/application/_javascript.html.erb'
166
+ copy_file '_javascript.html.haml', 'app/views/application/_javascript.html.haml'
167
+ end
168
+
169
+ def create_analytics_partial
170
+ copy_file '_analytics.html.haml',
171
+ 'app/views/application/_analytics.html.haml'
167
172
  end
168
173
 
169
174
  def create_application_layout
170
- template 'gimbal_layout.html.erb.erb',
171
- 'app/views/layouts/application.html.erb',
172
- force: true
175
+ remove_file 'app/views/layouts/application.html.erb'
176
+ template 'gimbal_layout.html.haml.erb',
177
+ 'app/views/layouts/application.html.haml'
173
178
  end
174
179
 
175
180
  def create_database
@@ -35,6 +35,7 @@ module Gimbal
35
35
  invoke :setup_git
36
36
  invoke :setup_database
37
37
  invoke :create_github_repo
38
+ invoke :setup_analytics
38
39
  invoke :setup_bundler_audit
39
40
  invoke :setup_spring
40
41
  end
@@ -94,6 +95,11 @@ module Gimbal
94
95
  build :create_application_layout
95
96
  end
96
97
 
98
+ def setup_analytics
99
+ say 'Configure Analytics'
100
+ build :create_analytics_partial
101
+ end
102
+
97
103
  def configure_app
98
104
  say 'Configuring app'
99
105
  build :configure_time_formats
@@ -1,5 +1,5 @@
1
1
  module Gimbal
2
- RAILS_VERSION = '~> 4.2.0'
2
+ RAILS_VERSION = '~> 4.2'
3
3
  RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
4
- VERSION = '0.0.3'
4
+ VERSION = '0.0.4'
5
5
  end
data/spec/fakes/bin/hub CHANGED
File without changes
@@ -1,15 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
- # RSpec.describe "GitHub" do
4
- # before do
5
- # drop_dummy_database
6
- # remove_project_directory
7
- # end
8
- #
9
- # it "creates a project with --github option" do
10
- # repo_name = 'test'
11
- # run_gimbal("--github=#{repo_name}")
12
- #
13
- # expect(FakeGithub).to have_created_repo(repo_name)
14
- # end
15
- # end
3
+ RSpec.describe "GitHub" do
4
+ before do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ end
8
+
9
+ it "creates a project with --github option" do
10
+ repo_name = 'test'
11
+ run_gimbal("--github=#{repo_name}")
12
+ setup_app_dependencies
13
+
14
+ expect(FakeGithub).to have_created_repo(repo_name)
15
+ end
16
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe "Create a new project with default config" do
3
+ RSpec.describe 'Create a new project with default config' do
4
4
  before(:all) do
5
5
  drop_dummy_database
6
6
  remove_project_directory
@@ -10,12 +10,12 @@ RSpec.describe "Create a new project with default config" do
10
10
  it 'ensures project specs pass' do
11
11
  Dir.chdir(project_path) do
12
12
  Bundler.with_clean_env do
13
- expect(`rake`).to include('0 failures')
13
+ expect(`rake`).to match(/0 failures/)
14
14
  end
15
15
  end
16
16
  end
17
17
 
18
- it "configs missing assets to raise in test" do
18
+ it 'configs missing assets to raise in test' do
19
19
  test_config = IO.read("#{project_path}/config/environments/test.rb")
20
20
 
21
21
  expect(test_config).to match(
@@ -23,7 +23,7 @@ RSpec.describe "Create a new project with default config" do
23
23
  )
24
24
  end
25
25
 
26
- it "configs raise_on_delivery errors in development" do
26
+ it 'configs raise_on_delivery errors in development' do
27
27
  dev_config = IO.read("#{project_path}/config/environments/development.rb")
28
28
 
29
29
  expect(dev_config).to match(
@@ -31,7 +31,7 @@ RSpec.describe "Create a new project with default config" do
31
31
  )
32
32
  end
33
33
 
34
- it "configs development to send mail using letter_opener" do
34
+ it 'configs development to send mail using letter_opener' do
35
35
  dev_config = IO.read("#{project_path}/config/environments/development.rb")
36
36
 
37
37
  expect(dev_config).to match(
@@ -39,7 +39,7 @@ RSpec.describe "Create a new project with default config" do
39
39
  )
40
40
  end
41
41
 
42
- it "configs development to raise on missing translations" do
42
+ it 'configs development to raise on missing translations' do
43
43
  dev_config = IO.read("#{project_path}/config/environments/development.rb")
44
44
 
45
45
  expect(dev_config).to match(
@@ -47,7 +47,7 @@ RSpec.describe "Create a new project with default config" do
47
47
  )
48
48
  end
49
49
 
50
- it "configs test to raise on missing translations" do
50
+ it 'configs test to raise on missing translations' do
51
51
  dev_config = IO.read("#{project_path}/config/environments/test.rb")
52
52
 
53
53
  expect(dev_config).to match(
@@ -55,7 +55,7 @@ RSpec.describe "Create a new project with default config" do
55
55
  )
56
56
  end
57
57
 
58
- it "configs bullet gem in development" do
58
+ it 'configs bullet gem in development' do
59
59
  dev_config = IO.read("#{project_path}/config/environments/development.rb")
60
60
 
61
61
  expect(dev_config).to match /^ +Bullet.enable = true$/
@@ -63,7 +63,7 @@ RSpec.describe "Create a new project with default config" do
63
63
  expect(dev_config).to match /^ +Bullet.rails_logger = true$/
64
64
  end
65
65
 
66
- it "raises on unpermitted parameters in all environments" do
66
+ it 'raises on unpermitted parameters in all environments' do
67
67
  result = IO.read("#{project_path}/config/application.rb")
68
68
 
69
69
  expect(result).to match(
@@ -71,7 +71,7 @@ RSpec.describe "Create a new project with default config" do
71
71
  )
72
72
  end
73
73
 
74
- it "configures generators" do
74
+ it 'configures generators' do
75
75
  result = IO.read("#{project_path}/config/application.rb")
76
76
 
77
77
  expect(result).to match(/^ +generate.helper false$/)
@@ -83,48 +83,52 @@ RSpec.describe "Create a new project with default config" do
83
83
  expect(result).to match(/^ +generate.view_specs false/)
84
84
  end
85
85
 
86
- it "configures language in html element" do
87
- layout_path = "/app/views/layouts/application.html.erb"
86
+ it 'removes the default erb layout' do
87
+ expect(File).not_to exist("#{project_path}/app/views/layouts/application.html.erb")
88
+ end
89
+
90
+ it 'configures language in html element' do
91
+ layout_path = '/app/views/layouts/application.html.haml'
88
92
  layout_file = IO.read("#{project_path}#{layout_path}")
89
- expect(layout_file).to match(/<html lang="en">/)
93
+ expect(layout_file).to match(/%html\{lang: 'en'\}/)
90
94
  end
91
95
 
92
- it "evaluates en.yml.erb" do
96
+ it 'evaluates en.yml.erb' do
93
97
  locales_en_file = IO.read("#{project_path}/config/locales/en.yml")
94
98
  app_name = GimbalTestHelpers::APP_NAME
95
99
 
96
100
  expect(locales_en_file).to match(/application: #{app_name.humanize}/)
97
101
  end
98
102
 
99
- it "adds support file for action mailer" do
103
+ it 'adds support file for action mailer' do
100
104
  expect(File).to exist("#{project_path}/spec/support/action_mailer.rb")
101
105
  end
102
106
 
103
- it "adds support file for factory girl" do
107
+ it 'adds support file for factory girl' do
104
108
  expect(File).to exist("#{project_path}/spec/support/factory_girl.rb")
105
109
  end
106
110
 
107
- it "adds support file for database cleaner" do
111
+ it 'adds support file for database cleaner' do
108
112
  expect(File).to exist("#{project_path}/spec/support/database_cleaner.rb")
109
113
  end
110
114
 
111
- it "adds support file for database cleaner" do
115
+ it 'adds support file for database cleaner' do
112
116
  expect(File).to exist("#{project_path}/spec/support/shoulda_matchers.rb")
113
117
  end
114
118
 
115
- it "adds support file for i18n" do
119
+ it 'adds support file for i18n' do
116
120
  expect(File).to exist("#{project_path}/spec/support/i18n.rb")
117
121
  end
118
122
 
119
- it "adds specs for missing or unused translations" do
123
+ it 'adds specs for missing or unused translations' do
120
124
  expect(File).to exist("#{project_path}/spec/i18n_spec.rb")
121
125
  end
122
126
 
123
- it "configs i18n-tasks" do
127
+ it 'configs i18n-tasks' do
124
128
  expect(File).to exist("#{project_path}/config/i18n-tasks.yml")
125
129
  end
126
130
 
127
- it "creates .ruby-version from Gimbal .ruby-version" do
131
+ it 'creates .ruby-version from Gimbal .ruby-version' do
128
132
  ruby_version_file = IO.read("#{project_path}/.ruby-version")
129
133
 
130
134
  expect(ruby_version_file).to eq "#{RUBY_VERSION}\n"
@@ -20,6 +20,16 @@ module GimbalTestHelpers
20
20
  end
21
21
  end
22
22
 
23
+ def setup_app_dependencies
24
+ if File.exist?(project_path)
25
+ Dir.chdir(project_path) do
26
+ Bundler.with_clean_env do
27
+ `bundle check || bundle install`
28
+ end
29
+ end
30
+ end
31
+ end
32
+
23
33
  def drop_dummy_database
24
34
  if File.exist?(project_path)
25
35
  Dir.chdir(project_path) do
@@ -6,7 +6,8 @@ ruby "<%= Gimbal::RUBY_VERSION %>"
6
6
  gem "autoprefixer-rails"
7
7
  gem "coffee-rails", "~> 4.1.0"
8
8
  # gem "delayed_job_active_record"
9
- # gem "flutie"
9
+ gem "flutie"
10
+ gem "haml-rails", "~> 0.9"
10
11
  # gem "high_voltage"
11
12
  gem "jquery-rails"
12
13
  # gem "newrelic_rpm", ">= 3.9.8"
@@ -17,7 +18,7 @@ gem "puma"
17
18
  gem "rails", "<%= Gimbal::RAILS_VERSION %>"
18
19
  # gem "recipient_interceptor"
19
20
  gem "sass-rails", "~> 5.0"
20
- # gem "title"
21
+ gem "title"
21
22
  gem "uglifier"
22
23
 
23
24
  group :development do
@@ -0,0 +1,5 @@
1
+ - if ENV["SEGMENT_KEY"]
2
+ :javascript
3
+ window.analytics=window.analytics||[],window.analytics.methods=["identify","group","track","page","pageview","alias","ready","on","once","off","trackLink","trackForm","trackClick","trackSubmit"],window.analytics.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),window.analytics.push(a),window.analytics}};for(var i=0;i<window.analytics.methods.length;i++){var key=window.analytics.methods[i];window.analytics[key]=window.analytics.factory(key)}window.analytics.load=function(t){if(!document.getElementById("analytics-js")){var a=document.createElement("script");a.type="text/javascript",a.id="analytics-js",a.async=!0,a.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n)}},window.analytics.SNIPPET_VERSION="2.0.9",
4
+ window.analytics.load("#{ENV["SEGMENT_KEY"]}");
5
+ window.analytics.page();
@@ -0,0 +1,5 @@
1
+ - if flash.any?
2
+ .flashes
3
+ - user_facing_flashes.each do |key, value|
4
+ %div{class: "flash-#{key}"}
5
+ = value
@@ -0,0 +1,8 @@
1
+ = javascript_include_tag :application
2
+ = yield :javascript
3
+ = render "analytics"
4
+
5
+ - if Rails.env.test?
6
+ = javascript_tag do
7
+ $.fx.off = true;
8
+ $.ajaxSetup({ async: false });
@@ -11,3 +11,4 @@
11
11
  /public/assets
12
12
  /tags
13
13
  /tmp/*
14
+ /.idea
@@ -0,0 +1,17 @@
1
+ !!! 5
2
+ %html{lang: '<%= I18n.locale %>'}
3
+ %head
4
+ %meta{charset: 'utf-8'}
5
+ %meta{name: 'ROBOTS', content: 'NOODP'}
6
+ %meta{name: 'viewport', content: 'initial-scale=1'}
7
+ -#
8
+ Configure default and controller-, and view-specific titles in
9
+ config/locales/en.yml. For more see:
10
+ https://github.com/calebthompson/title#usage
11
+ %title= title
12
+ = stylesheet_link_tag :application, media: 'all'
13
+ = csrf_meta_tags
14
+ %body{class: body_class}
15
+ = render "flashes"
16
+ = yield
17
+ = render "javascript"
@@ -1,4 +1,4 @@
1
- ENV["RAILS_ENV"] = "test"
1
+ ENV["RACK_ENV"] = "test"
2
2
 
3
3
  require File.expand_path("../../config/environment", __FILE__)
4
4
  abort("DATABASE_URL environment variable is set") if ENV["DATABASE_URL"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gimbal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Pascoe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-01 00:00:00.000000000 Z
11
+ date: 2016-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 4.2.0
33
+ version: '4.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 4.2.0
40
+ version: '4.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -96,8 +96,9 @@ files:
96
96
  - spec/support/fake_github.rb
97
97
  - spec/support/gimbal.rb
98
98
  - templates/Gemfile.erb
99
- - templates/_flashes.html.erb
100
- - templates/_javascript.html.erb
99
+ - templates/_analytics.html.haml
100
+ - templates/_flashes.html.haml
101
+ - templates/_javascript.html.haml
101
102
  - templates/action_mailer.rb
102
103
  - templates/bundler_audit.rake
103
104
  - templates/config_i18n_tasks.yml
@@ -106,7 +107,7 @@ files:
106
107
  - templates/factory_girl_rspec.rb
107
108
  - templates/flashes_helper.rb
108
109
  - templates/gimbal_gitignore
109
- - templates/gimbal_layout.html.erb.erb
110
+ - templates/gimbal_layout.html.haml.erb
110
111
  - templates/i18n.rb
111
112
  - templates/mysql_database.yml.erb
112
113
  - templates/puma.rb
@@ -126,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
127
  requirements:
127
128
  - - ">="
128
129
  - !ruby/object:Gem::Version
129
- version: 2.2.3
130
+ version: 2.2.4
130
131
  required_rubygems_version: !ruby/object:Gem::Requirement
131
132
  requirements:
132
133
  - - ">="
@@ -134,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  version: '0'
135
136
  requirements: []
136
137
  rubyforge_project:
137
- rubygems_version: 2.4.5.1
138
+ rubygems_version: 2.4.8
138
139
  signing_key:
139
140
  specification_version: 4
140
141
  summary: A Rails App Generator.
@@ -1,7 +0,0 @@
1
- <% if flash.any? %>
2
- <div class="flashes">
3
- <% user_facing_flashes.each do |key, value| -%>
4
- <div class="flash-<%= key %>"><%= value %></div>
5
- <% end -%>
6
- </div>
7
- <% end %>
@@ -1,12 +0,0 @@
1
- <%= javascript_include_tag :application %>
2
-
3
- <%= yield :javascript %>
4
-
5
- <%= render "analytics" %>
6
-
7
- <% if Rails.env.test? %>
8
- <%= javascript_tag do %>
9
- $.fx.off = true;
10
- $.ajaxSetup({ async: false });
11
- <% end %>
12
- <% end %>
@@ -1,21 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="<%= I18n.locale %>">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="ROBOTS" content="NOODP" />
6
- <meta name="viewport" content="initial-scale=1" />
7
- <%%#
8
- Configure default and controller-, and view-specific titles in
9
- config/locales/en.yml. For more see:
10
- https://github.com/calebthompson/title#usage
11
- %>
12
- <title><%%= title %></title>
13
- <%%= stylesheet_link_tag :application, media: "all" %>
14
- <%%= csrf_meta_tags %>
15
- </head>
16
- <body class="<%%= body_class %>">
17
- <%%= render "flashes" -%>
18
- <%%= yield %>
19
- <%%= render "javascript" %>
20
- </body>
21
- </html>