pieces 0.4.0 → 0.4.1
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 +6 -22
- data/examples/boilerplate/.gitignore +0 -0
- data/examples/rails_app/app/assets/stylesheets/pieces.css +3 -0
- data/examples/rails_app/app/views/application/{header.html.erb → _header.html.erb} +0 -0
- data/examples/rails_app/app/views/layouts/pieces.html.erb +7 -9
- data/examples/rails_app/config/pieces.yml +1 -1
- data/lib/pieces/builder.rb +15 -4
- data/lib/pieces/listener.rb +3 -1
- data/lib/pieces/rails/install_generator.rb +28 -0
- data/lib/pieces/rails/railtie.rb +9 -0
- data/lib/pieces/rails.rb +3 -1
- data/lib/pieces/version.rb +1 -1
- data/lib/pieces.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5c6d9b8bcb0697d6c423f8c4b0384f9a2447da9
|
4
|
+
data.tar.gz: ced9731402a01a9b90fd3cd6da37d388bf8b923c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fb1c9f4a23dcddbefcb2e3f8be7e55758a8ab4d663c5db15dca6356c32ec24e8ec5254f6fa19bcc1ca584e27ce6bc1f776e019b48cd036132fb9d87b22e4b7a
|
7
|
+
data.tar.gz: 6888e909ec27028bf25633f5fef74370dc2176b6e69d6284baebb6a280ce4fc59d2611d2311771f315443752ed159593bee92a5b32ae5ba8b2ed1a0e6bce1818
|
data/README.md
CHANGED
@@ -61,7 +61,7 @@ For example, `.article` should be defined like so.
|
|
61
61
|
|
62
62
|
You can use `.css`, `.scss`, `.sass` and `.less` with Pieces.
|
63
63
|
|
64
|
-
**`app/views/layouts/
|
64
|
+
**`app/views/layouts/pieces.html.erb`:**
|
65
65
|
|
66
66
|
``` erb
|
67
67
|
<html>
|
@@ -82,7 +82,7 @@ nested components and data to be used to generate a static site.
|
|
82
82
|
``` yml
|
83
83
|
index:
|
84
84
|
_pieces:
|
85
|
-
- layouts/
|
85
|
+
- layouts/pieces:
|
86
86
|
title: 'My Articles'
|
87
87
|
_pieces:
|
88
88
|
- article: { title: 'A title', content: '<p>Content.</p>' }
|
@@ -97,7 +97,7 @@ pieces server
|
|
97
97
|
```
|
98
98
|
|
99
99
|
Now visit [http://localhost:8080](http://localhost:8080) to see your site! If
|
100
|
-
you change your `config/
|
100
|
+
you change your `config/pieces.yml` or views they will be reflected on the site.
|
101
101
|
|
102
102
|
## Use as styleguide for rails
|
103
103
|
|
@@ -111,15 +111,7 @@ Next you need to initialize your application to use Pieces:
|
|
111
111
|
|
112
112
|
```
|
113
113
|
bundle
|
114
|
-
bundle exec pieces
|
115
|
-
```
|
116
|
-
|
117
|
-
Now mount Pieces in your `config/routes.rb`:
|
118
|
-
|
119
|
-
``` ruby
|
120
|
-
Rails.application.routes.draw do
|
121
|
-
mount Pieces::Rails.new.mount, at: '/styleguide'
|
122
|
-
end
|
114
|
+
bundle exec rails g pieces:rails:install
|
123
115
|
```
|
124
116
|
|
125
117
|
Edit your `config/pieces.yml` to demo some of your components.
|
@@ -132,14 +124,6 @@ bundle exec rails s
|
|
132
124
|
|
133
125
|
And then visit [http://localhost:3000/styleguide](http://localhost:3000/styleguide)
|
134
126
|
|
135
|
-
Alternatively you can run your styleguide without rails:
|
136
|
-
|
137
|
-
```
|
138
|
-
bundle exec pieces s
|
139
|
-
```
|
140
|
-
|
141
|
-
And then visit [http://localhost:8080](http://localhost:8080)
|
142
|
-
|
143
127
|
## Create new static site
|
144
128
|
|
145
129
|
To create a new static site with Pieces:
|
@@ -229,7 +213,7 @@ You can place your content in a layout quite easily with nested pieces.
|
|
229
213
|
``` yml
|
230
214
|
about:
|
231
215
|
_pieces:
|
232
|
-
- layouts/
|
216
|
+
- layouts/pieces:
|
233
217
|
_pieces:
|
234
218
|
- header: {}
|
235
219
|
- copy/intro: {}
|
@@ -239,7 +223,7 @@ about:
|
|
239
223
|
|
240
224
|
The child pieces will be rendered in order and passed into the parent
|
241
225
|
"layouts/application" piece as `yield`. If you had
|
242
|
-
`app/views/layouts/
|
226
|
+
`app/views/layouts/pieces.html.erb` then you can call yield like so:
|
243
227
|
|
244
228
|
``` erb
|
245
229
|
<html>
|
File without changes
|
File without changes
|
@@ -1,12 +1,10 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
|
-
<head>
|
4
|
-
|
5
|
-
|
6
|
-
</head>
|
7
|
-
<body>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
</body>
|
3
|
+
<head>
|
4
|
+
<title><%= title %></title>
|
5
|
+
<%= stylesheet_link_tag '/assets/pieces' %>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<%= yield %>
|
9
|
+
</body>
|
12
10
|
</html>
|
data/lib/pieces/builder.rb
CHANGED
@@ -13,17 +13,28 @@ module Pieces
|
|
13
13
|
def initialize(config)
|
14
14
|
@path = config[:path]
|
15
15
|
@route_config ||= YAML.load_file("#{path}/config/pieces.yml")
|
16
|
+
require 'pieces/tilt_extension'
|
16
17
|
end
|
17
18
|
|
18
19
|
def build
|
19
|
-
|
20
|
-
|
20
|
+
save_files(_build_routes(_build_styles))
|
21
|
+
end
|
22
|
+
|
23
|
+
def build_styles
|
24
|
+
save_files(_build_styles)
|
25
|
+
end
|
26
|
+
|
27
|
+
def build_routes
|
28
|
+
save_files(_build_routes)
|
21
29
|
end
|
22
30
|
|
23
31
|
private
|
24
32
|
|
25
|
-
def
|
26
|
-
|
33
|
+
def _build_styles(files = {})
|
34
|
+
StyleCompiler.new(path: path).compile(files)
|
35
|
+
end
|
36
|
+
|
37
|
+
def _build_routes(files = {})
|
27
38
|
route_compiler = RouteCompiler.new(path: path, globals: route_config['_global'])
|
28
39
|
|
29
40
|
routes.reduce(files) do |files, (name, route)|
|
data/lib/pieces/listener.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
module Pieces
|
2
2
|
class Listener
|
3
3
|
attr_reader :path
|
4
|
+
attr_reader :build_method
|
4
5
|
|
5
6
|
def initialize(config = {})
|
6
7
|
@path = config[:path] || Dir.pwd
|
8
|
+
@build_method = config[:build_method] || :build
|
7
9
|
build_pieces
|
8
10
|
end
|
9
11
|
|
@@ -18,7 +20,7 @@ module Pieces
|
|
18
20
|
private
|
19
21
|
|
20
22
|
def build_pieces
|
21
|
-
Pieces::Builder.
|
23
|
+
Pieces::Builder.new(path: path).send(build_method)
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Pieces
|
2
|
+
class Rails
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../../../../examples', __FILE__)
|
5
|
+
|
6
|
+
def pieces_yml
|
7
|
+
copy_file 'rails_app/config/pieces.yml', 'config/pieces.yml'
|
8
|
+
end
|
9
|
+
|
10
|
+
def stylesheet
|
11
|
+
copy_file 'rails_app/app/assets/stylesheets/pieces.css', 'app/assets/stylesheets/pieces.css'
|
12
|
+
end
|
13
|
+
|
14
|
+
def views
|
15
|
+
copy_file 'rails_app/app/views/layouts/pieces.html.erb', 'app/views/layouts/pieces.html.erb'
|
16
|
+
copy_file 'rails_app/app/views/application/_header.html.erb', 'app/views/application/_header.html.erb'
|
17
|
+
end
|
18
|
+
|
19
|
+
def mount_styleguide
|
20
|
+
route "mount Pieces::Rails.new.mount, at: '/styleguide' unless Rails.env.production?"
|
21
|
+
end
|
22
|
+
|
23
|
+
def gitignore
|
24
|
+
append_to_file '.gitignore', 'build/'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/pieces/rails.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
+
require 'pieces/rails/railtie'
|
2
|
+
|
1
3
|
module Pieces
|
2
4
|
class Rails
|
3
5
|
def mount(options = {})
|
4
6
|
path = options[:path] || Dir.pwd
|
5
|
-
Pieces::Listener.new(path: path).listen
|
7
|
+
Pieces::Listener.new(path: path, build_method: :build_routes).listen
|
6
8
|
Pieces::Server.new(options.merge(path: path)).app
|
7
9
|
end
|
8
10
|
end
|
data/lib/pieces/version.rb
CHANGED
data/lib/pieces.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pieces
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Morton
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- README.md
|
169
169
|
- Rakefile
|
170
170
|
- bin/pieces
|
171
|
+
- examples/boilerplate/.gitignore
|
171
172
|
- examples/boilerplate/Gemfile
|
172
173
|
- examples/boilerplate/app/views/application/footer.html.erb
|
173
174
|
- examples/boilerplate/app/views/application/header.html.erb
|
@@ -187,13 +188,14 @@ files:
|
|
187
188
|
- examples/rails_app/app/assets/javascripts/application.js
|
188
189
|
- examples/rails_app/app/assets/stylesheets/application.css
|
189
190
|
- examples/rails_app/app/assets/stylesheets/components/header.css
|
191
|
+
- examples/rails_app/app/assets/stylesheets/pieces.css
|
190
192
|
- examples/rails_app/app/controllers/application_controller.rb
|
191
193
|
- examples/rails_app/app/controllers/concerns/.keep
|
192
194
|
- examples/rails_app/app/helpers/application_helper.rb
|
193
195
|
- examples/rails_app/app/mailers/.keep
|
194
196
|
- examples/rails_app/app/models/.keep
|
195
197
|
- examples/rails_app/app/models/concerns/.keep
|
196
|
-
- examples/rails_app/app/views/application/
|
198
|
+
- examples/rails_app/app/views/application/_header.html.erb
|
197
199
|
- examples/rails_app/app/views/layouts/application.html.erb
|
198
200
|
- examples/rails_app/app/views/layouts/pieces.html.erb
|
199
201
|
- examples/rails_app/bin/bundle
|
@@ -238,6 +240,8 @@ files:
|
|
238
240
|
- lib/pieces/generator.rb
|
239
241
|
- lib/pieces/listener.rb
|
240
242
|
- lib/pieces/rails.rb
|
243
|
+
- lib/pieces/rails/install_generator.rb
|
244
|
+
- lib/pieces/rails/railtie.rb
|
241
245
|
- lib/pieces/server.rb
|
242
246
|
- lib/pieces/tilt/css.rb
|
243
247
|
- lib/pieces/tilt/mustache.rb
|