fronton 0.1.0.alpha → 0.1.0.beta1
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.
- 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
|
+
[](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
|