minimum_viable_product 0.6.7 → 0.7.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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/bin/mvp +2 -3
  4. data/minimum_viable_product.gemspec +89 -3
  5. data/project/Gemfile +33 -0
  6. data/project/Gemfile.lock +437 -0
  7. data/project/Procfile +2 -0
  8. data/project/README.md +117 -0
  9. data/project/Rakefile +14 -0
  10. data/project/app/controllers/application_controller.rb +12 -0
  11. data/project/app/controllers/conversions_controller.rb +24 -0
  12. data/project/app/controllers/examples_controller.rb +2 -0
  13. data/project/app/controllers/home_controller.rb +7 -0
  14. data/project/app/decorators/.keep +0 -0
  15. data/project/app/helpers/application_helper.rb +24 -0
  16. data/project/app/mailers/.keep +0 -0
  17. data/project/app/models/conversion.rb +4 -0
  18. data/project/app/views/examples/index.html.erb +1 -0
  19. data/project/app/views/examples/mustache.html.erb +18 -0
  20. data/project/app/views/examples/mustache/template.mustache +1 -0
  21. data/project/app/views/home/conversion.html.erb +12 -0
  22. data/project/app/views/home/index.html.erb +28 -0
  23. data/project/app/views/layouts/_header.html.erb +16 -0
  24. data/project/app/views/layouts/_includes.html.erb +7 -0
  25. data/project/app/views/layouts/application.html.erb +17 -0
  26. data/project/app/views/layouts/modal.html.erb +14 -0
  27. data/project/assets/images/.keep +0 -0
  28. data/project/assets/images/favicon.ico +0 -0
  29. data/project/assets/javascripts/controllers/home.coffee +15 -0
  30. data/project/assets/javascripts/pack.js +9 -0
  31. data/project/assets/stylesheets/config/variables.scss +876 -0
  32. data/project/assets/stylesheets/layout/basic.scss +6 -0
  33. data/project/assets/stylesheets/layout/carousel.scss +127 -0
  34. data/project/assets/stylesheets/layout/cover.scss +129 -0
  35. data/project/assets/stylesheets/lib/spacing.scss +55 -0
  36. data/project/assets/stylesheets/skin/style.scss +16 -0
  37. data/project/assets/stylesheets/style.scss +8 -0
  38. data/project/bin/bundle +3 -0
  39. data/project/bin/rails +9 -0
  40. data/project/bin/rake +9 -0
  41. data/project/bin/setup +32 -0
  42. data/project/bin/spring +15 -0
  43. data/project/config.ru +4 -0
  44. data/project/config/application.rb +32 -0
  45. data/project/config/boot.rb +3 -0
  46. data/project/config/database.yml +19 -0
  47. data/project/config/environment.rb +5 -0
  48. data/project/config/environments/development.rb +67 -0
  49. data/project/config/environments/production.rb +93 -0
  50. data/project/config/environments/test.rb +42 -0
  51. data/project/config/initializers/assets.rb +11 -0
  52. data/project/config/initializers/backtrace_silencers.rb +7 -0
  53. data/project/config/initializers/cookies_serializer.rb +3 -0
  54. data/project/config/initializers/filter_parameter_logging.rb +4 -0
  55. data/project/config/initializers/inflections.rb +16 -0
  56. data/project/config/initializers/mime_types.rb +4 -0
  57. data/project/config/initializers/mustache.rb +7 -0
  58. data/project/config/initializers/rails_admin.rb +43 -0
  59. data/project/config/initializers/session_store.rb +3 -0
  60. data/project/config/initializers/simple_form.rb +177 -0
  61. data/project/config/initializers/wrap_parameters.rb +14 -0
  62. data/project/config/locales/en.yml +23 -0
  63. data/project/config/locales/simple_form.en.yml +31 -0
  64. data/project/config/routes.rb +13 -0
  65. data/project/config/secrets.yml +8 -0
  66. data/project/config/sitemap.rb +28 -0
  67. data/project/db/migrate/20160728235100_create_conversions.rb +9 -0
  68. data/project/db/schema.rb +25 -0
  69. data/project/db/seeds.rb +7 -0
  70. data/project/lib/assets/.keep +0 -0
  71. data/project/lib/tasks/heroku.rake +70 -0
  72. data/project/log/.keep +0 -0
  73. data/project/log/development.log +48216 -0
  74. data/project/log/production.log +0 -0
  75. data/project/package.json +44 -0
  76. data/project/public/404.html +67 -0
  77. data/project/public/422.html +67 -0
  78. data/project/public/500.html +66 -0
  79. data/project/public/assets/javascripts/448c34a56d699c29117adc64c43affeb.woff2 +0 -0
  80. data/project/public/assets/javascripts/89889688147bd7575d6327160d64e760.svg +288 -0
  81. data/project/public/assets/javascripts/e18bbf611f2a2e43afc071aa2f4e1512.ttf +0 -0
  82. data/project/public/assets/javascripts/f4769f9bdb7466be65088239c12046d1.eot +0 -0
  83. data/project/public/assets/javascripts/fa2772327f55d8198301fdb8bcfc8158.woff +0 -0
  84. data/project/public/assets/javascripts/pack.js +31367 -0
  85. data/project/public/assets/javascripts/pack.js.map +1 -0
  86. data/project/public/assets/pack.js +17220 -0
  87. data/project/public/assets/style.css +7477 -0
  88. data/project/vendor/assets/javascripts/.keep +0 -0
  89. data/project/vendor/assets/stylesheets/.keep +0 -0
  90. data/project/webpack.config.js +67 -0
  91. metadata +88 -2
@@ -0,0 +1,6 @@
1
+ body.body-basic {
2
+ .starter-template {
3
+ padding: 40px 15px;
4
+ text-align: center;
5
+ }
6
+ }
@@ -0,0 +1,127 @@
1
+ /* GLOBAL STYLES
2
+ -------------------------------------------------- */
3
+ /* Padding below the footer and lighter body text */
4
+
5
+ body.body-carousel {
6
+ /* Special class on .container surrounding .navbar, used for positioning it into place. */
7
+ .navbar-wrapper {
8
+ position: absolute;
9
+ top: 0;
10
+ right: 0;
11
+ left: 0;
12
+ z-index: 20;
13
+ }
14
+
15
+ /* Flip around the padding for proper display in narrow viewports */
16
+ .navbar-wrapper > .container {
17
+ padding-right: 0;
18
+ padding-left: 0;
19
+ }
20
+ .navbar-wrapper .navbar {
21
+ padding-right: 15px;
22
+ padding-left: 15px;
23
+ }
24
+ .navbar-wrapper .navbar .container {
25
+ width: auto;
26
+ }
27
+
28
+
29
+ /* CUSTOMIZE THE CAROUSEL
30
+ -------------------------------------------------- */
31
+
32
+ /* Carousel base class */
33
+ .carousel {
34
+ height: 500px;
35
+ }
36
+ /* Since positioning the image, we need to help out the caption */
37
+ .carousel-caption {
38
+ z-index: 10;
39
+ }
40
+
41
+ /* Declare heights because of positioning of img element */
42
+ .carousel .item {
43
+ height: 500px;
44
+ background-color: #777;
45
+ }
46
+ .carousel-inner > .item > img {
47
+ position: absolute;
48
+ top: 0;
49
+ left: 0;
50
+ min-width: 100%;
51
+ height: 500px;
52
+ }
53
+
54
+
55
+ /* MARKETING CONTENT
56
+ -------------------------------------------------- */
57
+
58
+ /* Center align the text within the three columns below the carousel */
59
+ .marketing .col-lg-4 {
60
+ margin-bottom: 20px;
61
+ text-align: center;
62
+ }
63
+ .marketing h2 {
64
+ font-weight: normal;
65
+ }
66
+ .marketing .col-lg-4 p {
67
+ margin-right: 10px;
68
+ margin-left: 10px;
69
+ }
70
+
71
+
72
+ /* Featurettes
73
+ ------------------------- */
74
+
75
+ .featurette-divider {
76
+ margin: 80px 0; /* Space out the Bootstrap <hr> more */
77
+ }
78
+
79
+ /* Thin out the marketing headings */
80
+ .featurette-heading {
81
+ font-weight: 300;
82
+ line-height: 1;
83
+ letter-spacing: -1px;
84
+ }
85
+
86
+
87
+ /* RESPONSIVE CSS
88
+ -------------------------------------------------- */
89
+
90
+ @media (min-width: 768px) {
91
+ /* Navbar positioning foo */
92
+ .navbar-wrapper {
93
+ margin-top: 20px;
94
+ }
95
+ .navbar-wrapper .container {
96
+ padding-right: 15px;
97
+ padding-left: 15px;
98
+ }
99
+ .navbar-wrapper .navbar {
100
+ padding-right: 0;
101
+ padding-left: 0;
102
+ }
103
+
104
+ /* The navbar becomes detached from the top, so we round the corners */
105
+ .navbar-wrapper .navbar {
106
+ border-radius: 4px;
107
+ }
108
+
109
+ /* Bump up size of carousel content */
110
+ .carousel-caption p {
111
+ margin-bottom: 20px;
112
+ font-size: 21px;
113
+ line-height: 1.4;
114
+ }
115
+
116
+ .featurette-heading {
117
+ font-size: 50px;
118
+ }
119
+ }
120
+
121
+ @media (min-width: 992px) {
122
+ .featurette-heading {
123
+ margin-top: 120px;
124
+ }
125
+ }
126
+
127
+ }
@@ -0,0 +1,129 @@
1
+ html {
2
+ height: 100%;
3
+ }
4
+
5
+ body.body-cover {
6
+ height: 100%;
7
+ text-align: center;
8
+
9
+ /* Extra markup and styles for table-esque vertical and horizontal centering */
10
+ .site-wrapper {
11
+ display: table;
12
+ width: 100%;
13
+ height: 100%; /* For at least Firefox */
14
+ min-height: 100%;
15
+ }
16
+ .site-wrapper-inner {
17
+ display: table-cell;
18
+ vertical-align: top;
19
+ }
20
+ .cover-container {
21
+ margin-right: auto;
22
+ margin-left: auto;
23
+ }
24
+
25
+ /* Padding for spacing */
26
+ .inner {
27
+ padding: 2rem;
28
+ }
29
+
30
+
31
+ /*
32
+ * Header
33
+ */
34
+
35
+ .masthead {
36
+ margin-bottom: 2rem;
37
+ }
38
+
39
+ .masthead-brand {
40
+ margin-bottom: 0;
41
+ }
42
+
43
+ .nav-masthead .nav-link {
44
+ padding: .25rem 0;
45
+ font-weight: bold;
46
+ background-color: transparent;
47
+ border-bottom: .25rem solid transparent;
48
+ }
49
+
50
+ .nav-masthead .nav-link:hover,
51
+ .nav-masthead .nav-link:focus {
52
+ border-bottom-color: rgba(155,155,155,.25);
53
+ }
54
+
55
+ .nav-masthead .nav-link + .nav-link {
56
+ margin-left: 1rem;
57
+ }
58
+
59
+ .nav-masthead .active {
60
+ // color: #fff;
61
+ // border-bottom-color: #fff;
62
+ }
63
+
64
+ @media (min-width: 48em) {
65
+ .masthead-brand {
66
+ float: left;
67
+ }
68
+ .nav-masthead {
69
+ float: right;
70
+ }
71
+ }
72
+
73
+
74
+ /*
75
+ * Cover
76
+ */
77
+
78
+ .cover {
79
+ padding: 0 1.5rem;
80
+ }
81
+ .cover .btn-lg {
82
+ padding: .75rem 1.25rem;
83
+ font-weight: bold;
84
+ }
85
+
86
+
87
+ /*
88
+ * Footer
89
+ */
90
+
91
+ .mastfoot {
92
+ // color: rgba(255,255,255,.5);
93
+ }
94
+
95
+
96
+ /*
97
+ * Affix and center
98
+ */
99
+
100
+ @media (min-width: 40em) {
101
+ /* Pull out the header and footer */
102
+ .masthead {
103
+ position: fixed;
104
+ top: 0;
105
+ }
106
+ .mastfoot {
107
+ position: fixed;
108
+ bottom: 0;
109
+ }
110
+ /* Start the vertical centering */
111
+ .site-wrapper-inner {
112
+ vertical-align: middle;
113
+ }
114
+ /* Handle the widths */
115
+ .masthead,
116
+ .mastfoot,
117
+ .cover-container {
118
+ width: 100%; /* Must be percentage or pixels for horizontal alignment */
119
+ }
120
+ }
121
+
122
+ @media (min-width: 62em) {
123
+ .masthead,
124
+ .mastfoot,
125
+ .cover-container {
126
+ width: 42rem;
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,55 @@
1
+ @import 'bootstrap/scss/bootstrap';
2
+
3
+ @each $breakpoint in map-keys($grid-breakpoints) {
4
+ @include media-breakpoint-up($breakpoint) {
5
+ .block-#{$breakpoint}-up { display: block; width: 100% }
6
+ }
7
+
8
+ @include media-breakpoint-down($breakpoint) {
9
+ .block-#{$breakpoint}-down { display: block; width: 100% }
10
+ }
11
+ }
12
+
13
+ @for $i from 0 through 100 {
14
+ .mt#{$i} { margin-top: #{$i}px !important; }
15
+ .mb#{$i} { margin-bottom: #{$i}px !important; }
16
+ .ml#{$i} { margin-left: #{$i}px !important; }
17
+ .mr#{$i} { margin-right: #{$i}px !important; }
18
+ .m#{$i} { margin: #{$i}px !important; }
19
+
20
+ .pt#{$i} { padding-top: #{$i}px !important; }
21
+ .pb#{$i} { padding-bottom: #{$i}px !important; }
22
+ .pl#{$i} { padding-left: #{$i}px !important; }
23
+ .pr#{$i} { padding-right: #{$i}px !important; }
24
+ .p#{$i} { padding: #{$i}px !important; }
25
+
26
+ @each $breakpoint in map-keys($grid-breakpoints) {
27
+ @include media-breakpoint-up($breakpoint) {
28
+ .mt#{$i}-#{$breakpoint}-up { margin-top: #{$i}px !important; }
29
+ .mb#{$i}-#{$breakpoint}-up { margin-bottom: #{$i}px !important; }
30
+ .ml#{$i}-#{$breakpoint}-up { margin-left: #{$i}px !important; }
31
+ .mr#{$i}-#{$breakpoint}-up { margin-right: #{$i}px !important; }
32
+ .m#{$i}-#{$breakpoint}-up { margin: #{$i}px !important; }
33
+
34
+ .pt#{$i}-#{$breakpoint}-up { padding-top: #{$i}px !important; }
35
+ .pb#{$i}-#{$breakpoint}-up { padding-bottom: #{$i}px !important; }
36
+ .pl#{$i}-#{$breakpoint}-up { padding-left: #{$i}px !important; }
37
+ .pr#{$i}-#{$breakpoint}-up { padding-right: #{$i}px !important; }
38
+ .p#{$i}-#{$breakpoint}-up { padding: #{$i}px !important; }
39
+ }
40
+
41
+ @include media-breakpoint-down($breakpoint) {
42
+ .mt#{$i}-#{$breakpoint}-down { margin-top: #{$i}px !important; }
43
+ .mb#{$i}-#{$breakpoint}-down { margin-bottom: #{$i}px !important; }
44
+ .ml#{$i}-#{$breakpoint}-down { margin-left: #{$i}px !important; }
45
+ .mr#{$i}-#{$breakpoint}-down { margin-right: #{$i}px !important; }
46
+ .m#{$i}-#{$breakpoint}-down { margin: #{$i}px !important; }
47
+
48
+ .pt#{$i}-#{$breakpoint}-down { padding-top: #{$i}px !important; }
49
+ .pb#{$i}-#{$breakpoint}-down { padding-bottom: #{$i}px !important; }
50
+ .pl#{$i}-#{$breakpoint}-down { padding-left: #{$i}px !important; }
51
+ .pr#{$i}-#{$breakpoint}-down { padding-right: #{$i}px !important; }
52
+ .p#{$i}-#{$breakpoint}-down { padding: #{$i}px !important; }
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,16 @@
1
+ body {
2
+ background: #F3F3F3;
3
+ font-family: 'Open Sans', sans-serif;
4
+ }
5
+
6
+ h1,h2,h3,h4,h5,h6 {
7
+ font-weight: 700;
8
+ }
9
+
10
+ .panel {
11
+ box-shadow: 0 0 5px #CCC;
12
+ }
13
+
14
+ .form-group {
15
+ margin-bottom: 5px;
16
+ }
@@ -0,0 +1,8 @@
1
+ @import '~bootstrap/scss/bootstrap';
2
+
3
+ @import 'layout/basic';
4
+ @import 'layout/cover';
5
+
6
+ @import 'lib/spacing';
7
+
8
+ @import 'skin/style';
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
data/project/bin/rails ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path('../spring', __FILE__)
4
+ rescue LoadError => e
5
+ raise unless e.message.include?('spring')
6
+ end
7
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
8
+ require_relative '../config/boot'
9
+ require 'rails/commands'
data/project/bin/rake ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path('../spring', __FILE__)
4
+ rescue LoadError => e
5
+ raise unless e.message.include?('spring')
6
+ end
7
+ require_relative '../config/boot'
8
+ require 'rake'
9
+ Rake.application.run
data/project/bin/setup ADDED
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+
4
+ # path to your application root.
5
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
6
+
7
+ Dir.chdir APP_ROOT do
8
+ # This script is a starting point to setup your application.
9
+ # Add necessary setup steps to this file:
10
+
11
+ puts "== Installing dependencies =="
12
+ system "gem install bundler --conservative"
13
+ system "bundle check || bundle install"
14
+
15
+ # puts "\n== Copying sample files =="
16
+ # unless File.exist?("config/database.yml")
17
+ # system "cp config/database.yml.sample config/database.yml"
18
+ # end
19
+
20
+ puts "\n== Preparing database =="
21
+ system "bin/rake db:setup"
22
+
23
+ puts "\n== Removing old logs and tempfiles =="
24
+ system "rm -f log/*"
25
+ system "rm -rf tmp/cache"
26
+
27
+ puts "\n== Installing Node Modules =="
28
+ system "npm install"
29
+
30
+ puts "\n== Creating .env =="
31
+ system "touch .env"
32
+ end
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This file loads spring without using Bundler, in order to be fast.
4
+ # It gets overwritten when you run the `spring binstub` command.
5
+
6
+ unless defined?(Spring)
7
+ require 'rubygems'
8
+ require 'bundler'
9
+
10
+ if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m))
11
+ Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) }
12
+ gem 'spring', match[1]
13
+ require 'spring/binstub'
14
+ end
15
+ end
data/project/config.ru ADDED
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,32 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ # Require the gems listed in Gemfile, including any gems
6
+ # you've limited to :test, :development, or :production.
7
+ Bundler.require(*Rails.groups)
8
+
9
+ module Project
10
+ class Application < Rails::Application
11
+ config.autoload_paths += %W(#{Rails.root}/lib)
12
+ config.active_record.raise_in_transactional_callbacks = true
13
+ config.generators do |g|
14
+ g.helper false
15
+ g.decorator false
16
+ g.controller_specs false
17
+ g.model_specs false
18
+ g.view_specs false
19
+ g.specs false
20
+ g.javascripts false
21
+ g.stylesheets false
22
+ g.test_framework false
23
+ end
24
+
25
+ config.assets.paths << Rails.root.join('node_modules')
26
+
27
+ _host = ENV['HOST_DOMAIN'] || "localhost"
28
+ _port = ENV['HOST_PORT'] || "3000"
29
+ routes.default_url_options = { host: _host, port: _port }
30
+ config.action_mailer.default_url_options = { host: _host, port: _port }
31
+ end
32
+ end