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 +4 -4
- data/README.md +100 -5
- data/fronton.gemspec +11 -2
- data/lib/fronton/cli.rb +30 -1
- data/lib/fronton/config.rb +4 -0
- data/lib/fronton/version.rb +1 -1
- data/template/fronton.yml +5 -0
- metadata +73 -15
- /data/template/pages/{partials/.keep → .keep} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de4648602955f0e1a83acd30520544ce7825d0d4
|
4
|
+
data.tar.gz: 31c6e74a8ddd726d507d6cbb34924e59ae38120f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
83
|
+
### Gem sources
|
21
84
|
|
22
|
-
|
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
|
-
|
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'
|
32
|
-
spec.add_dependency 'rack', '~> 2.0'
|
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
|
|
data/lib/fronton/config.rb
CHANGED
data/lib/fronton/version.rb
CHANGED
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.
|
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-
|
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
|
152
|
+
- template/pages/.keep
|
95
153
|
- template/public/.keep
|
96
154
|
- template/vendor/fonts/.keep
|
97
155
|
- template/vendor/images/.keep
|
File without changes
|