flora 0.9.0 → 0.10.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21fb82c2e226124211a5b201ff913c362a2e1c34b7db1cd0c07780a7ee69ba80
4
- data.tar.gz: baf9ad09a7fedf4e5595e0632a0b2a87a2dab5f16155456f6e513fb0bdfd9904
3
+ metadata.gz: f445572c3d4330b5d1e8f3d6ce42ef45cd11053e17cceee1cbcd0d8860430d2b
4
+ data.tar.gz: a02c49517eed09e56f8fcba6586646f4b566d78405fe78b61157c75aec8feb53
5
5
  SHA512:
6
- metadata.gz: 32455350f2b42038d4d2cf740b42910e9420724b0ce2d3621aba478f08fc5dfb04de5fa4a866ccb4b7806e5f4f0b9004fc3499fe10b533d919720f5fb1e2a8d1
7
- data.tar.gz: 0d9ed7636389873dc59b7d99fb1a3140dabceb94b3fd0b3e8201bb8e4cfd110a4da0f22b2bc38c52b0a6d2635b3c0fa3055c8cd78f96eec407c5a39e9a824d47
6
+ metadata.gz: 41e4980576a56a14e468b8d63bcf5cc344ca5ae54525c3676f8ec3a08d5049803fd22848cf0bd9b2472da3f87f2b587fc1773833c96d6d9ca3e0cf0070295469
7
+ data.tar.gz: 55f9466b3b93a5d39021403f9874b65cca0250dc47e68d353de8da7569edd71da9e9883c9b8268206cb3a01563bef161d246792410eb0781e76713e7ac0f8a59
data/README.md CHANGED
@@ -33,10 +33,10 @@ Lilac is Flora's DSL for writing HTML. Tags are just methods named the same as t
33
33
  Looking for a way to make reusable components? Write a function! For example:
34
34
 
35
35
  ```ruby
36
- # lib/cool_title.rb
37
- class CoolTitle
36
+ # lib/my_helpers.rb
37
+ module MyHelpers
38
38
 
39
- def self.render(text)
39
+ def cool_title(text)
40
40
  div(class: 'title') do
41
41
  h1 do
42
42
  text
@@ -46,10 +46,13 @@ class CoolTitle
46
46
 
47
47
  end
48
48
 
49
+ # _config.rb
50
+ extend_view(MyHelpers)
51
+
49
52
  # index.rb
50
53
  html do
51
54
  body do
52
- CoolTitle.render('My blog')
55
+ cool_title('My blog')
53
56
  end
54
57
  end
55
58
  ```
data/lib/flora/config.rb CHANGED
@@ -8,11 +8,16 @@ class Flora::Config
8
8
  end
9
9
 
10
10
 
11
- def plugin(mod)
11
+ def use(mod)
12
12
  @flora.load_plugin(mod)
13
13
  end
14
14
 
15
15
 
16
+ def extend_view(mod)
17
+ Kernel.prepend(mod)
18
+ end
19
+
20
+
16
21
  private
17
22
 
18
23
  def load
data/lib/flora/project.rb CHANGED
@@ -10,19 +10,12 @@ class Flora::Project
10
10
  IGNORES = ['.git/*', 'lib/**', '**_*.rb']
11
11
 
12
12
 
13
- def initialize(dir, config)
13
+ def initialize(dir, loader, config)
14
14
  @dir = dir
15
+ @loader = loader
15
16
  @config = config
16
17
 
17
18
  @blueprints = find_blueprints
18
-
19
- @loader = Zeitwerk::Loader.new
20
- if has_supporting_code?
21
- @loader.push_dir(@dir.join('lib').to_s)
22
- end
23
- @loader.enable_reloading
24
- @loader.setup
25
- @loader.eager_load
26
19
  end
27
20
 
28
21
 
@@ -55,7 +48,6 @@ class Flora::Project
55
48
 
56
49
 
57
50
  def has_supporting_code?
58
- @dir.join('lib').exist?
59
51
  end
60
52
 
61
53
  end
data/lib/flora/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Flora
2
- VERSION = '0.9.0'
2
+ VERSION = '0.10.0'
3
3
  end
data/lib/flora.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'zeitwerk'
2
2
  require 'nokogiri'
3
3
  require 'kramdown'
4
+ require 'fileutils'
4
5
 
5
6
  loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
6
7
  loader.setup
@@ -23,8 +24,16 @@ class Flora
23
24
  @project_class = Class.new(Project)
24
25
  @factory_class = Class.new(Factory)
25
26
 
27
+ # This has to be loaded before Config so Config can reference lib/ code.
28
+ @project_loader = Zeitwerk::Loader.new
29
+ if dir.join('lib').exist?
30
+ @project_loader.push_dir(dir.join('lib'))
31
+ end
32
+ @project_loader.enable_reloading
33
+ @project_loader.setup
34
+
26
35
  @config = @config_class.new(dir.join('_config.rb'), self)
27
- @project = @project_class.new(dir, @config)
36
+ @project = @project_class.new(dir, @project_loader, @config)
28
37
  @factory = @factory_class.new(@project, @config)
29
38
  end
30
39
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flora
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Vladimiroff