fronton 0.1.0.alpha → 0.1.0.beta1

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: f4ea27d21a7fcbac4a66a2266e4bd76851a8f21f
4
- data.tar.gz: a14b250d931a46b335928e6546d0d1016ef6d59b
3
+ metadata.gz: de4648602955f0e1a83acd30520544ce7825d0d4
4
+ data.tar.gz: 31c6e74a8ddd726d507d6cbb34924e59ae38120f
5
5
  SHA512:
6
- metadata.gz: 8b54192e91e2e0b9f7ffd1d3427311b3673b40d1665a8f348f04a06b33e68e4e642a94d128af3aa866f35c986fce697f6ede3b0389932036c10627ab60e9a3af
7
- data.tar.gz: 2965585b4697e93a81b7deefa9e431cbcfab67133dc4e6592d9b24edec0510a0e8e90f08b4cb72b9d07ae780e35f9046c9a484ea194c589fca118ce02fe0fab9
6
+ metadata.gz: 1eec1348c528f8632df53bf638c2ddd3b64ffa9902c915494f02bed0d2dc470ef21ae0bd46f7e196e8bf376342dcf5843b89ede89bfa0877f597afe8c35fbc1a
7
+ data.tar.gz: df1776427fb2db49f841f4cb660e264cefa5d7d2452878d5df3221153c5b31a452e9e4f033df21f6c5993372476524889f571acb14fa5761cfeede4b1183c94f
data/README.md CHANGED
@@ -2,29 +2,124 @@
2
2
 
3
3
  A command-line tool for build frontend apps in Ruby.
4
4
 
5
+ It uses [Sprockets](https://github.com/rails/sprockets) and
6
+ [Tilt](https://github.com/rtomayko/tilt) to creates an environment for assets
7
+ compiling similar to
8
+ [Rails Assets Pipeline](http://guides.rubyonrails.org/asset_pipeline.html). It
9
+ support all engines supported by *Sprockets* and *Tilt* like *Javascript*,
10
+ *Sass*, *CoffeeScript*, *Haml*, *Slim*, etc.
11
+
5
12
 
6
13
  ## Status
7
14
 
15
+ [![Gem Version](https://badge.fury.io/rb/fronton.svg)](https://badge.fury.io/rb/fronton)
16
+
8
17
  > **This project is still experimental, use with caution!**
9
18
 
10
19
 
11
20
  ## Installation
12
21
 
13
22
  ```
14
- $ gem install fronton
23
+ $ gem install fronton --pre
15
24
  ```
16
25
 
17
- `TODO`: Write an advanced installation guide
18
26
 
27
+ ## Getting Started
28
+
29
+ ### Available commands
30
+
31
+ * **fronton new**: generate a new blank app with a default skeleton.
32
+ * **fronton server**: start a development server for html & assets.
33
+ * **fronton compile**: compile html & assets files for distribution.
34
+ * **fronton clean**: remove old compiled html & assets files.
35
+ * **fronton clobber**: remove all compiled html & assets files.
36
+ * **fronton info**: show information about the environment.
37
+ * **fronton help**: show commands help.
38
+
39
+ ### Config file
40
+
41
+ Configuration options are readed from a `fronton.yml` file located in project
42
+ top folder.
43
+
44
+ ```yaml
45
+ assets:
46
+ - application.js
47
+ - application.css
48
+ - "*.png"
49
+ assets_paths:
50
+ - assets/javascripts
51
+ - assets/stylesheets
52
+ - assets/fonts
53
+ - assets/images
54
+ - vendor/javascripts
55
+ - vendor/stylesheets
56
+ - vendor/fonts
57
+ - vendor/images
58
+ assets_url: https://assets.example.com
59
+ compressors:
60
+ css: scss
61
+ js: uglifier
62
+ dependencies:
63
+ - rails-assets-jquery: 3.1.0
64
+ - slim: 3.0.7
65
+ output: public
66
+ pages:
67
+ - index.slim: /
68
+ pages_paths:
69
+ - pages
70
+ ```
71
+
72
+ | Attribute | Type | Description |
73
+ | ------------ | ------ | ---------------------------------------------------------- |
74
+ | assets | Array | List of assets to compile (only js and css files) |
75
+ | assets_paths | Array | List of directories where Sprockets find files for require |
76
+ | assets_url | String | URL for assets in production |
77
+ | compressors | Hash | Hash with selected compressors by type |
78
+ | dependencies | Array | List of gems to install and require |
79
+ | output | String | Path to a directory where compiled assets will be written |
80
+ | pages | Array | List of pages to compile |
81
+ | pages_paths | Array | List of directories where Fronton find html files |
19
82
 
20
- ## Usage
83
+ ### Gem sources
21
84
 
22
- `TODO`: Write usage instructions here
85
+ In order to allow **Fronton** to install project gem dependencies automatically,
86
+ if you use gems from others sources than `https://rubygems.org` like
87
+ `https://rails-assets.org`, you must add these sources to rubygems configuration
88
+ file.
89
+
90
+ ```
91
+ $ gem sources --add https://rails-assets.org
92
+ ```
23
93
 
94
+ ### Proposed folders hierarchy
95
+
96
+ ```
97
+ .
98
+ ├── assets
99
+ │   ├── fonts
100
+ │   ├── images
101
+ │   ├── javascripts
102
+ │   └── stylesheets
103
+ ├── fronton.yml
104
+ ├── locales
105
+ │   └── es
106
+ │   └── index.yml
107
+ ├── pages
108
+ ├── public
109
+ └── vendor
110
+ ├── fonts
111
+ ├── images
112
+ ├── javascripts
113
+ └── stylesheets
114
+ ```
24
115
 
25
116
  ## Testing
26
117
 
27
- `TODO`: Write how to test
118
+ Tests are written using *Minitest*.
119
+
120
+ ```
121
+ $ bundle exec rake
122
+ ```
28
123
 
29
124
 
30
125
  ## Contributing
data/fronton.gemspec CHANGED
@@ -28,7 +28,16 @@ Gem::Specification.new do |spec|
28
28
  #
29
29
  ## DEPENDENCIES
30
30
  #
31
- spec.add_dependency 'thor', '~> 0.19', '>= 0.19.1'
32
- spec.add_dependency 'rack', '~> 2.0', '>= 2.0.1'
31
+ spec.add_dependency 'thor', '~> 0.19'
32
+ spec.add_dependency 'rack', '~> 2.0'
33
33
  spec.add_dependency 'sprockets', '~> 3.7'
34
+
35
+ #
36
+ ## DEVELOPMENT DEPENDENCIES
37
+ #
38
+ spec.add_development_dependency 'coveralls', '~> 0.8'
39
+ spec.add_development_dependency 'minitest', '~> 5.9'
40
+ spec.add_development_dependency 'minitest-reporters', '~> 1.1'
41
+ spec.add_development_dependency 'rake', '~> 11.2'
42
+ spec.add_development_dependency 'simplecov', '~> 0.12'
34
43
  end
data/lib/fronton/cli.rb CHANGED
@@ -5,7 +5,7 @@ require 'fronton/config'
5
5
  require 'fronton/html_server'
6
6
 
7
7
  module Fronton
8
- class CLI < Thor
8
+ class CLI < Thor # rubocop:disable Metrics/ClassLength
9
9
  include Thor::Actions
10
10
 
11
11
  def self.source_root
@@ -46,6 +46,17 @@ module Fronton
46
46
  # require dependencies for rails assets
47
47
  config.require_dependencies
48
48
 
49
+ # assets helpers
50
+ config.environment.context_class.class_eval do
51
+ def asset_path(path, _options = {})
52
+ "assets/#{path}"
53
+ end
54
+
55
+ def asset_url(path, _options = {})
56
+ "url(#{asset_path(path)})"
57
+ end
58
+ end
59
+
49
60
  conf = config
50
61
 
51
62
  app = Rack::Builder.new do
@@ -77,6 +88,24 @@ module Fronton
77
88
  config.environment.css_compressor = config.compressor_css.to_sym
78
89
  end
79
90
 
91
+ # assets helpers
92
+ config.environment.context_class.class_eval do
93
+ class << self
94
+ attr_accessor :fronton_config
95
+ end
96
+
97
+ def asset_path(path, _options = {})
98
+ path = self.class.superclass.fronton_config.manifest.assets[path]
99
+ "#{self.class.superclass.fronton_config.assets_url}/#{path}"
100
+ end
101
+
102
+ def asset_url(path, _options = {})
103
+ "url(#{asset_path(path)})"
104
+ end
105
+ end
106
+
107
+ config.environment.context_class.fronton_config = config
108
+
80
109
  # compile assets
81
110
  config.manifest.compile(config.assets)
82
111
 
@@ -42,6 +42,10 @@ module Fronton
42
42
  end
43
43
  end
44
44
 
45
+ def assets_url
46
+ @config['assets_url'] || '/assets'
47
+ end
48
+
45
49
  def output
46
50
  @output ||= working_dir.join(@config['output'] || 'public')
47
51
  end
@@ -3,7 +3,7 @@ module Fronton
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
5
  TINY = 0
6
- PRE = 'alpha'.freeze
6
+ PRE = 'beta1'.freeze
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
9
  end
data/template/fronton.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  assets:
2
2
  - application.js
3
3
  - application.css
4
+ - "*.png"
4
5
  assets_paths:
5
6
  - assets/javascripts
6
7
  - assets/stylesheets
@@ -10,6 +11,10 @@ assets_paths:
10
11
  - vendor/stylesheets
11
12
  - vendor/fonts
12
13
  - vendor/images
14
+ assets_url: https://assets.example.com
15
+ compressors:
16
+ css: scss
17
+ js: uglifier
13
18
  dependencies:
14
19
  - rails-assets-jquery: 3.1.0
15
20
  - slim: 3.0.7
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fronton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha
4
+ version: 0.1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Aranda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-07 00:00:00.000000000 Z
11
+ date: 2016-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.19'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.19.1
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0.19'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.19.1
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: rack
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -37,9 +31,6 @@ dependencies:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
33
  version: '2.0'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 2.0.1
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,9 +38,6 @@ dependencies:
47
38
  - - "~>"
48
39
  - !ruby/object:Gem::Version
49
40
  version: '2.0'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 2.0.1
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: sprockets
55
43
  requirement: !ruby/object:Gem::Requirement
@@ -64,6 +52,76 @@ dependencies:
64
52
  - - "~>"
65
53
  - !ruby/object:Gem::Version
66
54
  version: '3.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest-reporters
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '11.2'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '11.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.12'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.12'
67
125
  description: ''
68
126
  email: javier.aranda.varo@gmail.com
69
127
  executables:
@@ -91,7 +149,7 @@ files:
91
149
  - template/assets/stylesheets/.keep
92
150
  - template/fronton.yml
93
151
  - template/locales/es/index.yml
94
- - template/pages/partials/.keep
152
+ - template/pages/.keep
95
153
  - template/public/.keep
96
154
  - template/vendor/fonts/.keep
97
155
  - template/vendor/images/.keep
File without changes