helio 0.0.0.4 → 0.0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +61 -0
  3. data/assets/stylesheets/_helio.scss +5 -1
  4. data/assets/stylesheets/helio/_colors.scss +27 -0
  5. data/assets/stylesheets/helio/_fonts.scss +15 -0
  6. data/assets/stylesheets/helio/_functions.scss +3 -0
  7. data/assets/stylesheets/helio/_spaces.scss +112 -0
  8. data/assets/stylesheets/helio/_variables.scss +71 -0
  9. data/helio.gemspec +7 -1
  10. data/lib/helio/version.rb +1 -1
  11. data/test/compilation_test.rb +18 -0
  12. data/test/dummy_rails/README.rdoc +28 -0
  13. data/test/dummy_rails/Rakefile +6 -0
  14. data/test/dummy_rails/app/assets/images/.keep +0 -0
  15. data/test/dummy_rails/app/assets/javascripts/application.js +13 -0
  16. data/test/dummy_rails/app/assets/stylesheets/application.scss +1 -0
  17. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  18. data/test/dummy_rails/app/controllers/concerns/.keep +0 -0
  19. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  20. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  21. data/test/dummy_rails/app/mailers/.keep +0 -0
  22. data/test/dummy_rails/app/models/.keep +0 -0
  23. data/test/dummy_rails/app/models/concerns/.keep +0 -0
  24. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  25. data/test/dummy_rails/app/views/pages/root.html.erb +1 -0
  26. data/test/dummy_rails/config.ru +4 -0
  27. data/test/dummy_rails/config/application.rb +26 -0
  28. data/test/dummy_rails/config/boot.rb +5 -0
  29. data/test/dummy_rails/config/environment.rb +5 -0
  30. data/test/dummy_rails/config/environments/development.rb +23 -0
  31. data/test/dummy_rails/config/environments/production.rb +82 -0
  32. data/test/dummy_rails/config/environments/test.rb +38 -0
  33. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  34. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  35. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  36. data/test/dummy_rails/config/initializers/mime_types.rb +4 -0
  37. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  38. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  39. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  40. data/test/dummy_rails/config/locales/en.yml +23 -0
  41. data/test/dummy_rails/config/routes.rb +3 -0
  42. data/test/dummy_rails/log/.keep +0 -0
  43. data/test/dummy_sass_only/Gemfile +4 -0
  44. data/test/dummy_sass_only/compile.rb +13 -0
  45. data/test/dummy_sass_only/import_all.sass +1 -0
  46. data/test/gemfiles/sass_3_4.gemfile +5 -0
  47. data/test/pages_test.rb +14 -0
  48. data/test/sass_test.rb +22 -0
  49. data/test/support/dummy_rails_integration.rb +22 -0
  50. data/test/support/reporting.rb +17 -0
  51. data/test/test_helper.rb +34 -0
  52. data/test/test_helper_rails.rb +6 -0
  53. metadata +152 -7
  54. data/assets/stylesheets/helio/_spacing.scss +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd2cdfe3d2a94f2b6e2879fd00847fd053f689e5
4
- data.tar.gz: 97a46daa10487fabb15535c4f7f3fd0c083dccd5
3
+ metadata.gz: 7f342b85233b6ca280e744946cc0ea015ecb8bcf
4
+ data.tar.gz: 5756f9b5744082644204b41ba91bf4bacf9ae911
5
5
  SHA512:
6
- metadata.gz: c733019468dd28cf67228d57d3349812377f268133bdb2d874c51fdc6419b27b3e1815d0594f8c5307ba72bc7f01766f8cb193db8fecda39d0cc7f4347e2cb93
7
- data.tar.gz: 53e7637384df8be71a6045428f6820f975d3d7e2f71b8565c982d638ec585305e02c5197b560cb383e376d5fda4b3e4638f7945cfb4c5b5e2a721c65ed5e0024
6
+ metadata.gz: 6e4570f58f0a52742e3df016b13a05e612f29cc5c4a9fed35974532d64510c64dd0af02e745c8c57c7c708152ecfc03a9b7b74e2c1ff2bed6a0554c32cb723f3
7
+ data.tar.gz: f4f184f0859b9a3b2d2a266f3e5b8586e3ead532e5173f681aaeacccbd95ea146b9df17b73a921f714b279056a02590e0f7f111b6b0400522cbce7f11a830b9a
@@ -0,0 +1,61 @@
1
+ lib_path = File.join(File.dirname(__FILE__), 'lib')
2
+ $:.unshift(lib_path) unless $:.include?(lib_path)
3
+
4
+ require 'rake/testtask'
5
+ task :test do |t|
6
+ $: << File.expand_path('test/')
7
+ Dir.glob('./test/**/*_test.rb').each { |file| require file }
8
+ end
9
+
10
+ desc 'Dumps output to a CSS file for testing'
11
+ task :debug do
12
+ require 'sass'
13
+ path = Bootstrap.stylesheets_path
14
+ %w(helio).each do |file|
15
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
16
+ File.open("./#{file}.css", 'w') { |f| f.write(engine.render) }
17
+ end
18
+ end
19
+
20
+ desc 'Convert helio to helio-sass'
21
+ task :convert, :branch do |t, args|
22
+ require './tasks/converter'
23
+ Converter.new(branch: args[:branch]).process_helio
24
+ end
25
+
26
+ desc 'LESS to stdin -> Sass to stdout'
27
+ task :less_to_scss, :branch do |t, args|
28
+ require './tasks/converter'
29
+ puts Converter.new(branch: args[:branch]).convert_less(STDIN.read)
30
+ end
31
+
32
+ desc 'Compile helio-sass to tmp/ (or first arg)'
33
+ task :compile, :css_path do |t, args|
34
+ require 'sass'
35
+ require 'term/ansicolor'
36
+
37
+ path = 'assets/stylesheets'
38
+ css_path = args.with_defaults(css_path: 'tmp')[:css_path]
39
+ puts Term::ANSIColor.bold "Compiling SCSS in #{path}"
40
+ Dir.mkdir(css_path) unless File.directory?(css_path)
41
+ %w(_helio).each do |file|
42
+ save_path = "#{css_path}/#{file.sub(/(^|\/)?_+/, '\1').sub('/', '-')}.css"
43
+ puts Term::ANSIColor.cyan(" #{save_path}") + '...'
44
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
45
+ css = engine.render
46
+ File.open(save_path, 'w') { |f| f.write css }
47
+ end
48
+ end
49
+
50
+ desc 'Start a dummy (test) Rails app server'
51
+ task :dummy_rails do
52
+ require 'rack'
53
+ require 'term/ansicolor'
54
+ port = ENV['PORT'] || 9292
55
+ puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
56
+ Rack::Server.start(
57
+ config: 'test/dummy_rails/config.ru',
58
+ Port: port)
59
+ end
60
+
61
+ task default: :test
@@ -1 +1,5 @@
1
- @import "helio/spacing";
1
+ @import "helio/variables";
2
+ @import "helio/functions";
3
+ @import "helio/colors";
4
+ @import "helio/spaces";
5
+ @import "helio/fonts";
@@ -0,0 +1,27 @@
1
+ @mixin colors($name, $value) {
2
+ .c-#{$name}, .c-#{$name}-hover:hover, .active .c-#{$name}-active {
3
+ color: $value;
4
+ }
5
+
6
+ .bg-#{$name}, .bg-#{$name}-hover:hover, .active .bg-#{$name}-active {
7
+ background-color: $value;
8
+ }
9
+
10
+ .bc-#{$name}, .bc-#{$name}-hover:hover, .active .bc-#{$name}-active {
11
+ border-color: $value;
12
+ }
13
+ }
14
+
15
+ @include colors(n, none);
16
+
17
+ @for $color-index from 1 through length($helio-shades) {
18
+ $color: nth($helio-shades, $color-index);
19
+
20
+ @include colors(#{$color-index - 1}, #{$color});
21
+ }
22
+
23
+ @for $color-index from 1 through length($helio-colors) {
24
+ $color: nth($helio-colors, $color-index);
25
+
26
+ @include colors(#{nth($color, 1)}, #{nth($color, 2)});
27
+ }
@@ -0,0 +1,15 @@
1
+ @for $font-size-index from 1 through length($helio-font-sizes) {
2
+ $font-size: nth($helio-font-sizes, $font-size-index);
3
+
4
+ .fs-#{$font-size-index} {
5
+ font-size: $font-size;
6
+ }
7
+ }
8
+
9
+ @for $font-weight-index from 1 through length($helio-font-weights) {
10
+ $font-weight: nth($helio-font-weights, $font-weight-index);
11
+
12
+ .fw-#{$font-weight-index} {
13
+ font-weight: $font-weight;
14
+ }
15
+ }
@@ -0,0 +1,3 @@
1
+ @function prepend($list, $value) {
2
+ @return join($value, $list);
3
+ }
@@ -0,0 +1,112 @@
1
+ @mixin paddings($name, $value) {
2
+ .pt-#{$name} .pv-#{$name} .pa-#{$name}, .pt-#{$name}-plus + .pt-#{$name}-plus {
3
+ padding-top: $value;
4
+ }
5
+
6
+ .pl-#{$name} .ph-#{$name} .pa-#{$name}, .pl-#{$name}-plus + .pl-#{$name}-plus {
7
+ padding-left: $value;
8
+ }
9
+
10
+ .pb-#{$name} .pv-#{$name} .pa-#{$name}, .pb-#{$name}-plus + .pb-#{$name}-plus {
11
+ padding-bottom: $value;
12
+ }
13
+
14
+ .pr-#{$name} .ph-#{$name} .pa-#{$name}, .pr-#{$name}-plus + .pr-#{$name}-plus {
15
+ padding-right: $value;
16
+ }
17
+ }
18
+
19
+ @mixin margins($name, $value) {
20
+ .mt-#{$name} .mv-#{$name} .ma-#{$name}, .mt-#{$name}-plus + .mt-#{$name}-plus {
21
+ margin-top: $value;
22
+ }
23
+
24
+ .ml-#{$name} .mh-#{$name} .ma-#{$name}, .ml-#{$name}-plus + .ml-#{$name}-plus {
25
+ margin-left: $value;
26
+ }
27
+
28
+ .mb-#{$name} .mv-#{$name} .ma-#{$name}, .mb-#{$name}-plus + .mb-#{$name}-plus {
29
+ margin-bottom: $value;
30
+ }
31
+
32
+ .mr-#{$name} .mh-#{$name} .ma-#{$name}, .mr-#{$name}-plus + .mr-#{$name}-plus {
33
+ margin-right: $value;
34
+ }
35
+ }
36
+
37
+ @mixin negative-margins($name, $value) {
38
+ .nmt-#{$name} .nmv-#{$name} .nma-#{$name}, .nmt-#{$name}-plus + .nmt-#{$name}-plus {
39
+ margin-top: -$value;
40
+ }
41
+
42
+ .nml-#{$name} .nmh-#{$name} .nma-#{$name}, .nml-#{$name}-plus + .nml-#{$name}-plus {
43
+ margin-left: -$value;
44
+ }
45
+
46
+ .nmb-#{$name} .nmv-#{$name} .nma-#{$name}, .nmb-#{$name}-plus + .nmb-#{$name}-plus {
47
+ margin-bottom: -$value;
48
+ }
49
+
50
+ .nmr-#{$name} .nmh-#{$name} .nma-#{$name}, .nmr-#{$name}-plus + .nmr-#{$name}-plus {
51
+ margin-right: -$value;
52
+ }
53
+ }
54
+
55
+ @mixin dimensions($name, $value) {
56
+ .dv-#{$name}, .da-#{$name} {
57
+ height: $value;
58
+ }
59
+
60
+ .dh-#{$name}, .da-#{$name} {
61
+ width: $value;
62
+ }
63
+ }
64
+
65
+ @mixin line-heights($name, $value) {
66
+ .lh-#{$name} {
67
+ line-height: $value;
68
+ }
69
+ }
70
+
71
+ .mh-a {
72
+ margin-left: auto;
73
+ margin-right: auto;
74
+ }
75
+
76
+ @include dimensions(0, 0px);
77
+
78
+ @for $space-index from 1 through length($helio-spaces) {
79
+ $space: nth($helio-spaces, $space-index);
80
+
81
+ @include dimensions($space-index, $space);
82
+ }
83
+
84
+ @include line-heights(0, 0px);
85
+
86
+ @for $space-index from 1 through length($helio-spaces) {
87
+ $space: nth($helio-spaces, $space-index);
88
+
89
+ @include line-heights($space-index, $space);
90
+ }
91
+
92
+ @include paddings(0, 0px);
93
+
94
+ @for $space-index from 1 through length($helio-spaces) {
95
+ $space: nth($helio-spaces, $space-index);
96
+
97
+ @include paddings($space-index, $space);
98
+ }
99
+
100
+ @include margins(0, 0px);
101
+
102
+ @for $space-index from 1 through length($helio-spaces) {
103
+ $space: nth($helio-spaces, $space-index);
104
+
105
+ @include margins($space-index, $space);
106
+ }
107
+
108
+ @for $space-index from 1 through length($helio-spaces) {
109
+ $space: nth($helio-spaces, $space-index);
110
+
111
+ @include negative-margins($space-index, $space);
112
+ }
@@ -0,0 +1,71 @@
1
+ $helio-shades: (
2
+ #000000,
3
+ #111111,
4
+ #222222,
5
+ #333333,
6
+ #444444,
7
+ #555555,
8
+ #666666,
9
+ #777777,
10
+ #888888,
11
+ #999999,
12
+ #AAAAAA,
13
+ #BBBBBB,
14
+ #CCCCCC,
15
+ #DDDDDD,
16
+ #EEEEEE,
17
+ #FFFFFF
18
+ );
19
+
20
+ $helio-colors: (
21
+ red: #FF0000,
22
+ green: #16DE7A,
23
+ blue: #3A6EFC
24
+ );
25
+
26
+ $helio-spaces: (
27
+ 1px,
28
+ 5px,
29
+ 7.5px,
30
+ 10px,
31
+ 15px,
32
+ 20px,
33
+ 30px,
34
+ 40px,
35
+ 50px,
36
+ 60px,
37
+ 80px,
38
+ 100px
39
+ );
40
+
41
+ $helio-font-sizes: (
42
+ 10px,
43
+ 11px,
44
+ 12px,
45
+ 13px,
46
+ 14px,
47
+ 15px,
48
+ 16px,
49
+ 17px,
50
+ 18px,
51
+ 20px,
52
+ 22px,
53
+ 24px,
54
+ 26px,
55
+ 28px,
56
+ 32px,
57
+ 36px,
58
+ 42px,
59
+ 48px,
60
+ 54px,
61
+ 62px,
62
+ 72px,
63
+ 84px,
64
+ 100px
65
+ );
66
+
67
+ $helio-font-weights: (
68
+ 300,
69
+ 400,
70
+ 700
71
+ );
@@ -14,11 +14,17 @@ Gem::Specification.new do |s|
14
14
  s.add_runtime_dependency 'sass', '>= 3.2.19'
15
15
  s.add_runtime_dependency 'autoprefixer-rails', '>= 5.0.0.1'
16
16
 
17
+ # Testing dependencies
18
+ s.add_development_dependency 'minitest', '~> 5.4.0'
19
+ s.add_development_dependency 'minitest-reporters', '~> 1.0.5'
20
+ # Integration testing
21
+ s.add_development_dependency 'capybara'
22
+ s.add_development_dependency 'poltergeist'
17
23
  # Dummy Rails app dependencies
18
24
  s.add_development_dependency 'actionpack', '>= 4.1.5'
19
25
  s.add_development_dependency 'activesupport', '>= 4.1.5'
20
26
  s.add_development_dependency 'sprockets-rails', '>= 2.1.3'
21
- s.add_development_dependency 'slim-rails'
27
+ s.add_development_dependency 'jquery-rails', '>= 3.1.0'
22
28
  s.add_development_dependency 'uglifier'
23
29
  # Converter
24
30
  s.add_development_dependency 'term-ansicolor'
@@ -1,3 +1,3 @@
1
1
  module Helio
2
- VERSION = '0.0.0.4'
2
+ VERSION = '0.0.0.5'
3
3
  end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+ require 'fileutils'
3
+ require 'sass'
4
+
5
+ class CompilationTest < Minitest::Test
6
+ def test_compilation
7
+ path = 'assets/stylesheets'
8
+ %w(_helio).each do |file|
9
+ FileUtils.rm_rf('.sass-cache', secure: true)
10
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
11
+ FileUtils.mkdir_p("tmp/#{File.dirname(file)}")
12
+ File.open("tmp/#{file}.css", 'w') { |f|
13
+ f.write engine.render
14
+ }
15
+ assert true # nothing was raised
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Dummy::Application.load_tasks
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,4 @@
1
+ class PagesController < ApplicationController
2
+ def root
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>DummyRails</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -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,26 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails'
4
+
5
+ %w(
6
+ action_controller
7
+ action_view
8
+ sprockets
9
+ ).each do |framework|
10
+ require "#{framework}/railtie"
11
+ end
12
+
13
+ require 'helio'
14
+ require 'uglifier'
15
+
16
+ module Dummy
17
+ class Application < Rails::Application
18
+ config.assets.enabled = true if config.assets.respond_to?(:enabled)
19
+ config.to_prepare do
20
+ if ENV['VERBOSE']
21
+ STDERR.puts "Loaded Rails #{Rails::VERSION::STRING}, Sprockets #{Sprockets::VERSION}",
22
+ "Asset paths: #{Rails.application.config.assets.paths}"
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ # Set up gems listed in the Gemfile.
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
5
+ $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,5 @@
1
+ # Load the Rails application.
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the Rails application.
5
+ Dummy::Application.initialize!
@@ -0,0 +1,23 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
+
12
+ # Show full error reports and disable caching.
13
+ config.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Print deprecation notices to the Rails logger.
17
+ config.active_support.deprecation = :log
18
+
19
+ # Debug mode disables concatenation and preprocessing of assets.
20
+ # This option may cause significant delays in view rendering with a large
21
+ # number of complex assets.
22
+ config.assets.debug = true
23
+ end
@@ -0,0 +1,82 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # Code is not reloaded between requests.
5
+ config.cache_classes = true
6
+
7
+ # Eager load code on boot. This eager loads most of Rails and
8
+ # your application in memory, allowing both thread web servers
9
+ # and those relying on copy on write to perform better.
10
+ # Rake tasks automatically ignore this option for performance.
11
+ config.eager_load = true
12
+
13
+ # Full error reports are disabled and caching is turned on.
14
+ config.consider_all_requests_local = false
15
+ config.action_controller.perform_caching = true
16
+
17
+ # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
+ # Add `rack-cache` to your Gemfile before enabling this.
19
+ # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
20
+ # config.action_dispatch.rack_cache = true
21
+
22
+ # Disable Rails's static asset server (Apache or nginx will already do this).
23
+ if config.respond_to?(:serve_static_files)
24
+ # rails >= 4.2
25
+ config.serve_static_files = true
26
+ elsif config.respond_to?(:serve_static_assets)
27
+ # rails < 4.2
28
+ config.serve_static_assets = true
29
+ end
30
+
31
+ # Compress JavaScripts and CSS.
32
+ config.assets.js_compressor = :uglifier
33
+ # config.assets.css_compressor = :sass
34
+
35
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
36
+ config.assets.compile = false
37
+
38
+ # Generate digests for assets URLs.
39
+ config.assets.digest = true
40
+
41
+ # Version of your assets, change this if you want to expire all your assets.
42
+ config.assets.version = '1.0'
43
+
44
+ # Specifies the header that your server uses for sending files.
45
+ # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
46
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
47
+
48
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
49
+ # config.force_ssl = true
50
+
51
+ # Set to :debug to see everything in the log.
52
+ config.log_level = :info
53
+
54
+ # Prepend all log lines with the following tags.
55
+ # config.log_tags = [ :subdomain, :uuid ]
56
+
57
+ # Use a different logger for distributed setups.
58
+ # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
59
+
60
+ # Use a different cache store in production.
61
+ # config.cache_store = :mem_cache_store
62
+
63
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
64
+ # config.action_controller.asset_host = "http://assets.example.com"
65
+
66
+ # Precompile additional assets.
67
+ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
68
+ # config.assets.precompile += %w( search.js )
69
+
70
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
71
+ # the I18n.default_locale when a translation can not be found).
72
+ config.i18n.fallbacks = true
73
+
74
+ # Send deprecation notices to registered listeners.
75
+ config.active_support.deprecation = :notify
76
+
77
+ # Disable automatic flushing of the log to improve performance.
78
+ # config.autoflush_log = false
79
+
80
+ # Use default logging formatter so that PID and timestamp are not suppressed.
81
+ config.log_formatter = ::Logger::Formatter.new
82
+ end
@@ -0,0 +1,38 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Do not eager load code on boot. This avoids loading your whole application
11
+ # just for the purpose of running a single test. If you are using a tool that
12
+ # preloads Rails for running tests, you may have to set it to true.
13
+ config.eager_load = false
14
+
15
+ # Configure static asset server for tests with Cache-Control for performance.
16
+ if config.respond_to?(:serve_static_files)
17
+ # rails >= 4.2
18
+ config.serve_static_files = true
19
+ elsif config.respond_to?(:serve_static_assets)
20
+ # rails < 4.2
21
+ config.serve_static_assets = true
22
+ end
23
+ config.static_cache_control = "public, max-age=3600"
24
+
25
+ # Show full error reports and disable caching.
26
+ config.consider_all_requests_local = true
27
+ config.action_controller.perform_caching = false
28
+
29
+ # Raise exceptions instead of rendering exception templates.
30
+ config.action_dispatch.show_exceptions = false
31
+
32
+ # Disable request forgery protection in test environment.
33
+ config.action_controller.allow_forgery_protection = false
34
+
35
+ config.active_support.test_order = :random
36
+
37
+ config.active_support.deprecation = :stderr
38
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Configure sensitive parameters which will be filtered from the log file.
4
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,16 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format. Inflections
4
+ # are locale specific, and you may define rules for as many different
5
+ # locales as you wish. All of these examples are active by default:
6
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
7
+ # inflect.plural /^(ox)$/i, '\1en'
8
+ # inflect.singular /^(ox)en/i, '\1'
9
+ # inflect.irregular 'person', 'people'
10
+ # inflect.uncountable %w( fish sheep )
11
+ # end
12
+
13
+ # These inflection rules are supported but not enabled by default:
14
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
15
+ # inflect.acronym 'RESTful'
16
+ # end
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
@@ -0,0 +1,18 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure your secret_key_base is kept private
11
+ # if you're sharing your code publicly.
12
+ token = "722b3a9b0f2389ffebe99a88d8411ec1cb673436e10a7fc82f63ab8e7bf9e5e208568b31d5e84b885859eff6a88b11d0cb9a1e095e0c307db7fed1010c3e3a8e"
13
+
14
+ if Dummy::Application.config.respond_to?(:secret_key_base=)
15
+ Dummy::Application.config.secret_key_base = token
16
+ else
17
+ Dummy::Application.config.secret_token = token
18
+ end
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
9
+ end
10
+
11
+ # To enable root element in JSON for ActiveRecord objects.
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = true
14
+ # end
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,3 @@
1
+ Dummy::Application.routes.draw do
2
+ root to: 'pages#root'
3
+ end
File without changes
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'sass', '~> 3.2'
4
+ gem 'helio', path: '../..'
@@ -0,0 +1,13 @@
1
+ require 'sass'
2
+ require 'helio'
3
+ require 'fileutils'
4
+
5
+ scss_path = File.expand_path('./import_all.sass', File.dirname(__FILE__))
6
+ css = Sass.compile File.read(scss_path), syntax: 'sass'
7
+
8
+ if ARGV[0]
9
+ FileUtils.mkdir_p File.dirname(ARGV[0])
10
+ File.open(ARGV[0], 'w') { |f| f.write css }
11
+ else
12
+ puts css
13
+ end
@@ -0,0 +1 @@
1
+ @import 'helio'
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'sass', '~> 3.4.1'
4
+
5
+ gemspec path: '../../'
@@ -0,0 +1,14 @@
1
+ require 'test_helper_rails'
2
+
3
+ class PagesTest < ActionDispatch::IntegrationTest
4
+ include ::DummyRailsIntegration
5
+
6
+ def test_visit_root
7
+ visit root_path
8
+ # ^ will raise on JS errors
9
+
10
+ assert_equal 200, page.status_code
11
+
12
+ screenshot!
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+ require 'shellwords'
3
+
4
+ class SassTest < Minitest::Test
5
+ DUMMY_PATH = 'test/dummy_sass_only'
6
+
7
+ def setup
8
+ Dir.chdir DUMMY_PATH do
9
+ %x[rm -rf .sass-cache/]
10
+ %x[bundle]
11
+ end
12
+ css_path = File.join GEM_PATH, 'tmp/helio-sass-only.css'
13
+ command = "bundle exec ruby compile.rb #{Shellwords.escape css_path}"
14
+ success = Dir.chdir DUMMY_PATH do
15
+ silence_stdout_if !ENV['VERBOSE'] do
16
+ system(command)
17
+ end
18
+ end
19
+ assert success, 'Sass-only compilation failed'
20
+ @css = File.read(css_path)
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'capybara'
2
+ require 'fileutils'
3
+ module DummyRailsIntegration
4
+ include Capybara::DSL
5
+
6
+ def setup
7
+ super
8
+ FileUtils.rm_rf('test/dummy_rails/tmp/cache', secure: true)
9
+ end
10
+
11
+ def teardown
12
+ super
13
+ Capybara.reset_sessions!
14
+ Capybara.use_default_driver
15
+ end
16
+
17
+ def screenshot!
18
+ path = "tmp/#{name}.png"
19
+ page.driver.render(File.join(GEM_PATH, path), full: true)
20
+ STDERR.puts "Screenshot saved to #{path}"
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ module Kernel
2
+ def silence_stdout_if(cond, &run)
3
+ silence_stream_if(cond, STDOUT, &run)
4
+ end
5
+
6
+ def silence_stderr_if(cond, &run)
7
+ silence_stream_if(cond, STDERR, &run)
8
+ end
9
+
10
+ def silence_stream_if(cond, stream, &run)
11
+ if cond
12
+ silence_stream(stream, &run)
13
+ else
14
+ run.call
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,34 @@
1
+ require 'minitest/autorun'
2
+ require 'minitest/reporters'
3
+ Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
4
+
5
+ require 'active_support/core_ext/kernel/reporting'
6
+
7
+ Dir['test/support/**/*.rb'].each do |file|
8
+ # strip ^test/ and .rb$
9
+ file = file[5..-4]
10
+ require_relative File.join('.', file)
11
+ end
12
+
13
+ GEM_PATH = File.expand_path('../', File.dirname(__FILE__))
14
+
15
+ #= Capybara + Poltergeist
16
+ require 'capybara/poltergeist'
17
+
18
+ Capybara.register_driver :poltergeist do |app|
19
+ Capybara::Poltergeist::Driver.new(
20
+ app,
21
+ # inspector: '/Applications/Chromium.app/Contents/MacOS/Chromium', # open in inspector: page.driver.debug
22
+ window_size: [1280, 1024],
23
+ timeout: 90,
24
+ js_errors: true
25
+ )
26
+ end
27
+
28
+ Capybara.configure do |config|
29
+ config.app_host = 'http://localhost:7000'
30
+ config.default_driver = :poltergeist
31
+ config.javascript_driver = :poltergeist
32
+ config.server_port = 7000
33
+ config.default_wait_time = 10
34
+ end
@@ -0,0 +1,6 @@
1
+ ENV['RAILS_ENV'] = ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'test_helper'
4
+ require 'dummy_rails/config/environment'
5
+ require 'rails/test_help'
6
+ require 'capybara/rails'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.4
4
+ version: 0.0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Jovanovic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-16 00:00:00.000000000 Z
11
+ date: 2015-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -38,6 +38,62 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 5.0.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.4.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.4.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest-reporters
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.5
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.5
69
+ - !ruby/object:Gem::Dependency
70
+ name: capybara
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: poltergeist
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: actionpack
43
99
  requirement: !ruby/object:Gem::Requirement
@@ -81,19 +137,19 @@ dependencies:
81
137
  - !ruby/object:Gem::Version
82
138
  version: 2.1.3
83
139
  - !ruby/object:Gem::Dependency
84
- name: slim-rails
140
+ name: jquery-rails
85
141
  requirement: !ruby/object:Gem::Requirement
86
142
  requirements:
87
143
  - - ">="
88
144
  - !ruby/object:Gem::Version
89
- version: '0'
145
+ version: 3.1.0
90
146
  type: :development
91
147
  prerelease: false
92
148
  version_requirements: !ruby/object:Gem::Requirement
93
149
  requirements:
94
150
  - - ">="
95
151
  - !ruby/object:Gem::Version
96
- version: '0'
152
+ version: 3.1.0
97
153
  - !ruby/object:Gem::Dependency
98
154
  name: uglifier
99
155
  requirement: !ruby/object:Gem::Requirement
@@ -131,12 +187,59 @@ files:
131
187
  - ".gitignore"
132
188
  - Gemfile
133
189
  - README.md
190
+ - Rakefile
134
191
  - assets/stylesheets/_helio.scss
135
- - assets/stylesheets/helio/_spacing.scss
192
+ - assets/stylesheets/helio/_colors.scss
193
+ - assets/stylesheets/helio/_fonts.scss
194
+ - assets/stylesheets/helio/_functions.scss
195
+ - assets/stylesheets/helio/_spaces.scss
196
+ - assets/stylesheets/helio/_variables.scss
136
197
  - helio.gemspec
137
198
  - lib/helio.rb
138
199
  - lib/helio/engine.rb
139
200
  - lib/helio/version.rb
201
+ - test/compilation_test.rb
202
+ - test/dummy_rails/README.rdoc
203
+ - test/dummy_rails/Rakefile
204
+ - test/dummy_rails/app/assets/images/.keep
205
+ - test/dummy_rails/app/assets/javascripts/application.js
206
+ - test/dummy_rails/app/assets/stylesheets/application.scss
207
+ - test/dummy_rails/app/controllers/application_controller.rb
208
+ - test/dummy_rails/app/controllers/concerns/.keep
209
+ - test/dummy_rails/app/controllers/pages_controller.rb
210
+ - test/dummy_rails/app/helpers/application_helper.rb
211
+ - test/dummy_rails/app/mailers/.keep
212
+ - test/dummy_rails/app/models/.keep
213
+ - test/dummy_rails/app/models/concerns/.keep
214
+ - test/dummy_rails/app/views/layouts/application.html.erb
215
+ - test/dummy_rails/app/views/pages/root.html.erb
216
+ - test/dummy_rails/config.ru
217
+ - test/dummy_rails/config/application.rb
218
+ - test/dummy_rails/config/boot.rb
219
+ - test/dummy_rails/config/environment.rb
220
+ - test/dummy_rails/config/environments/development.rb
221
+ - test/dummy_rails/config/environments/production.rb
222
+ - test/dummy_rails/config/environments/test.rb
223
+ - test/dummy_rails/config/initializers/backtrace_silencers.rb
224
+ - test/dummy_rails/config/initializers/filter_parameter_logging.rb
225
+ - test/dummy_rails/config/initializers/inflections.rb
226
+ - test/dummy_rails/config/initializers/mime_types.rb
227
+ - test/dummy_rails/config/initializers/secret_token.rb
228
+ - test/dummy_rails/config/initializers/session_store.rb
229
+ - test/dummy_rails/config/initializers/wrap_parameters.rb
230
+ - test/dummy_rails/config/locales/en.yml
231
+ - test/dummy_rails/config/routes.rb
232
+ - test/dummy_rails/log/.keep
233
+ - test/dummy_sass_only/Gemfile
234
+ - test/dummy_sass_only/compile.rb
235
+ - test/dummy_sass_only/import_all.sass
236
+ - test/gemfiles/sass_3_4.gemfile
237
+ - test/pages_test.rb
238
+ - test/sass_test.rb
239
+ - test/support/dummy_rails_integration.rb
240
+ - test/support/reporting.rb
241
+ - test/test_helper.rb
242
+ - test/test_helper_rails.rb
140
243
  homepage: https://github.com/superjova/helio
141
244
  licenses:
142
245
  - MIT
@@ -161,5 +264,47 @@ rubygems_version: 2.2.2
161
264
  signing_key:
162
265
  specification_version: 4
163
266
  summary: Superjova CSS Framework
164
- test_files: []
267
+ test_files:
268
+ - test/compilation_test.rb
269
+ - test/dummy_rails/README.rdoc
270
+ - test/dummy_rails/Rakefile
271
+ - test/dummy_rails/app/assets/images/.keep
272
+ - test/dummy_rails/app/assets/javascripts/application.js
273
+ - test/dummy_rails/app/assets/stylesheets/application.scss
274
+ - test/dummy_rails/app/controllers/application_controller.rb
275
+ - test/dummy_rails/app/controllers/concerns/.keep
276
+ - test/dummy_rails/app/controllers/pages_controller.rb
277
+ - test/dummy_rails/app/helpers/application_helper.rb
278
+ - test/dummy_rails/app/mailers/.keep
279
+ - test/dummy_rails/app/models/.keep
280
+ - test/dummy_rails/app/models/concerns/.keep
281
+ - test/dummy_rails/app/views/layouts/application.html.erb
282
+ - test/dummy_rails/app/views/pages/root.html.erb
283
+ - test/dummy_rails/config.ru
284
+ - test/dummy_rails/config/application.rb
285
+ - test/dummy_rails/config/boot.rb
286
+ - test/dummy_rails/config/environment.rb
287
+ - test/dummy_rails/config/environments/development.rb
288
+ - test/dummy_rails/config/environments/production.rb
289
+ - test/dummy_rails/config/environments/test.rb
290
+ - test/dummy_rails/config/initializers/backtrace_silencers.rb
291
+ - test/dummy_rails/config/initializers/filter_parameter_logging.rb
292
+ - test/dummy_rails/config/initializers/inflections.rb
293
+ - test/dummy_rails/config/initializers/mime_types.rb
294
+ - test/dummy_rails/config/initializers/secret_token.rb
295
+ - test/dummy_rails/config/initializers/session_store.rb
296
+ - test/dummy_rails/config/initializers/wrap_parameters.rb
297
+ - test/dummy_rails/config/locales/en.yml
298
+ - test/dummy_rails/config/routes.rb
299
+ - test/dummy_rails/log/.keep
300
+ - test/dummy_sass_only/Gemfile
301
+ - test/dummy_sass_only/compile.rb
302
+ - test/dummy_sass_only/import_all.sass
303
+ - test/gemfiles/sass_3_4.gemfile
304
+ - test/pages_test.rb
305
+ - test/sass_test.rb
306
+ - test/support/dummy_rails_integration.rb
307
+ - test/support/reporting.rb
308
+ - test/test_helper.rb
309
+ - test/test_helper_rails.rb
165
310
  has_rdoc:
@@ -1,36 +0,0 @@
1
- $spaces = 1px, 5px, 7.5px, 10px, 15px, 20px, 30px, 40px, 50px, 60px, 80px, 100px;
2
-
3
- .mha {
4
- margin-left: auto;
5
- margin-right: auto;
6
- }
7
-
8
- prepend($spaces, 0px);
9
- @for $index from 0 through (length($spaces) - 1) {
10
- $space: nth($spaces, $index);
11
-
12
- .pt-#{$index} .pv-#{$index} .pa-#{$index} {
13
- padding-top: $space;
14
- }
15
- .pl-#{$index} .ph-#{$index} .pa-#{$index} {
16
- padding-left: $space;
17
- }
18
- .pb-#{$index} .pv-#{$index} .pa-#{$index} {
19
- padding-bottom: $space;
20
- }
21
- .pr-#{$index} .ph-#{$index} .pa-#{$index} {
22
- padding-right: $space;
23
- }
24
- .mt-#{$index} .mv-#{$index} .ma-#{$index} {
25
- margin-top: $space;
26
- }
27
- .ml-#{$index} .mh-#{$index} .ma-#{$index} {
28
- margin-left: $space;
29
- }
30
- .mb-#{$index} .mv-#{$index} .ma-#{$index} {
31
- margin-bottom: $space;
32
- }
33
- .mr-#{$index} .mh-#{$index} .ma-#{$index} {
34
- margin-right: $space;
35
- }
36
- }