flutterby 0.0.7 → 0.0.8
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 +1 -1
- data/flutterby.gemspec +1 -0
- data/lib/flutterby/cli.rb +3 -0
- data/lib/flutterby/entity.rb +6 -2
- data/lib/flutterby/file.rb +14 -11
- data/lib/flutterby/folder.rb +17 -0
- data/lib/flutterby/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6568ea63c5bdde201dbc5a1b742075e9cdf98353
|
4
|
+
data.tar.gz: e6b105a6a82e813e8bae5d41c81ff1a61d721c3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59b76bd0e67caa50af779351c25081cc2626e1074c6ebf323bc5a6b5f88d5c9e64850ec68c5beab7f109cbb3672f8f480530c0d7f4a0dc17e05dcb6189aa9817
|
7
|
+
data.tar.gz: 18de50df6ce8bc75282b8b97f4c010bfae23aab5f053397e4bbb18abea8600bcbc0581f04ac18c3e847f1da0beb3fb0a5e4576041392525723117b3a20a4ea99
|
data/README.md
CHANGED
@@ -10,12 +10,12 @@ the _experimental_ bit, though. Use with care, if at all!)
|
|
10
10
|
- Build your site simply as a tree of files and folders. Each file will be converted according to its extension chain (eg. `styles.css.scss` will be rendered as `styles.css`, `about.html.md` as `about.html` and so on.)
|
11
11
|
- Built-in support for Markdown (by way of [Slodown](https://github.com/hmans/slodown)), [Sass](https://github.com/sass/sass), [ERB](http://ruby-doc.org/stdlib-2.4.0/libdoc/erb/rdoc/ERB.html) and [Slim](http://slim-lang.com/).
|
12
12
|
- A (slow) HTTP server to serve your site dynamically (for development.)
|
13
|
+
- Dynamically enhance your site's functionality with Ruby code.
|
13
14
|
|
14
15
|
|
15
16
|
## Missing (but Planned) Features
|
16
17
|
|
17
18
|
- Extract filters (like Slim, Sass etc.) to separate gems
|
18
|
-
- Customize folder behavior through Ruby
|
19
19
|
- Produce a fun screencast to explain what the heck is going on here!
|
20
20
|
- More tests, of course!
|
21
21
|
|
data/flutterby.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.0"
|
27
27
|
spec.add_development_dependency 'awesome_print', '~> 0'
|
28
28
|
spec.add_development_dependency 'gem-release', '~> 0'
|
29
|
+
spec.add_development_dependency 'pry', '~> 0.10'
|
29
30
|
|
30
31
|
spec.add_dependency 'commander', '~> 4.4'
|
31
32
|
spec.add_dependency 'slodown', '~> 0.3'
|
data/lib/flutterby/cli.rb
CHANGED
@@ -20,6 +20,7 @@ Commander.configure do
|
|
20
20
|
root.export(options.out)
|
21
21
|
end
|
22
22
|
end
|
23
|
+
alias_command :b, :build
|
23
24
|
|
24
25
|
command :serve do |c|
|
25
26
|
c.syntax = 'flutterby serve [options]'
|
@@ -35,4 +36,6 @@ Commander.configure do
|
|
35
36
|
server.run!
|
36
37
|
end
|
37
38
|
end
|
39
|
+
alias_command :server, :serve
|
40
|
+
alias_command :s, :serve
|
38
41
|
end
|
data/lib/flutterby/entity.rb
CHANGED
@@ -37,8 +37,12 @@ module Flutterby
|
|
37
37
|
end
|
38
38
|
|
39
39
|
@children.define_singleton_method(:find_by_name) do |name|
|
40
|
-
|
41
|
-
|
40
|
+
# Look for a fully qualified name (index.html), or a simple name (index)?
|
41
|
+
if name.include?(".")
|
42
|
+
find { |c| c.full_name == name }
|
43
|
+
else
|
44
|
+
find { |c| c.name == name }
|
45
|
+
end
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
data/lib/flutterby/file.rb
CHANGED
@@ -4,6 +4,7 @@ require 'tilt'
|
|
4
4
|
require 'slim'
|
5
5
|
require 'toml'
|
6
6
|
require 'mime-types'
|
7
|
+
require 'json'
|
7
8
|
|
8
9
|
module Flutterby
|
9
10
|
class File < Entity
|
@@ -25,6 +26,10 @@ module Flutterby
|
|
25
26
|
# Read remaining data from frontmatter. Data in frontmatter
|
26
27
|
# will always have precedence!
|
27
28
|
@data.merge! parse_frontmatter
|
29
|
+
|
30
|
+
# Do some extra processing depending on extension
|
31
|
+
meth = "read_#{ext}"
|
32
|
+
send(meth) if respond_to?(meth)
|
28
33
|
end
|
29
34
|
|
30
35
|
def parse_frontmatter
|
@@ -52,8 +57,6 @@ module Flutterby
|
|
52
57
|
meth = "process_#{filter}"
|
53
58
|
if respond_to?(meth)
|
54
59
|
result = send(meth, result)
|
55
|
-
else
|
56
|
-
puts "Woops, no #{meth} available :("
|
57
60
|
end
|
58
61
|
end
|
59
62
|
|
@@ -68,15 +71,7 @@ module Flutterby
|
|
68
71
|
def view
|
69
72
|
@view ||= begin
|
70
73
|
View.new(self).tap do |view|
|
71
|
-
|
72
|
-
if view_entity = sibling("_view.rb")
|
73
|
-
case view_entity.ext
|
74
|
-
when "rb" then
|
75
|
-
view.instance_eval(view_entity.contents)
|
76
|
-
else
|
77
|
-
raise "Unknown view extension #{view_entity.full_name}"
|
78
|
-
end
|
79
|
-
end
|
74
|
+
parent.extend_view!(view) if parent
|
80
75
|
end
|
81
76
|
end
|
82
77
|
end
|
@@ -100,6 +95,14 @@ module Flutterby
|
|
100
95
|
engine.render
|
101
96
|
end
|
102
97
|
|
98
|
+
def read_json
|
99
|
+
data.merge!(JSON.parse(contents))
|
100
|
+
end
|
101
|
+
|
102
|
+
def read_yaml
|
103
|
+
data.merge!(YAML.load(contents))
|
104
|
+
end
|
105
|
+
|
103
106
|
def apply_layout(input)
|
104
107
|
output = input
|
105
108
|
|
data/lib/flutterby/folder.rb
CHANGED
@@ -15,5 +15,22 @@ module Flutterby
|
|
15
15
|
child.export(path)
|
16
16
|
end
|
17
17
|
end
|
18
|
+
|
19
|
+
def extend_view!(view)
|
20
|
+
# Load the view extension available in this folder into the given view.
|
21
|
+
#
|
22
|
+
if view_entity = find("_view.rb")
|
23
|
+
case view_entity.ext
|
24
|
+
when "rb" then
|
25
|
+
view.instance_eval(view_entity.contents)
|
26
|
+
else
|
27
|
+
raise "Unknown view extension #{view_entity.full_name}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Then pass the whole thing up the stack.
|
32
|
+
#
|
33
|
+
parent ? parent.extend_view!(view) : view
|
34
|
+
end
|
18
35
|
end
|
19
36
|
end
|
data/lib/flutterby/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flutterby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hendrik Mans
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: commander
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|