dead_simple_cms 0.12.8 → 0.12.9

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzcxNzljNWY4NmJiZjI2ZTE0OTJhNmM4MjIzMTNlNzU1ZTFlM2FlOA==
4
+ MzUzOGRhMjZmMTk0ZjdhNTBhZWI5MjViNWU0OTAyMmNhNmJiZDU0YQ==
5
5
  data.tar.gz: !binary |-
6
- YTcwMDYzMzg3ZTM5ZWQzOGNlMDU0YjgyNWEzNWZjNDEzZjljYTY4MQ==
6
+ MGI0MzE2MmExNTJjNjU3OWViYzY3ZThjMmQzZmFiMDg5MTk0YjViMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGE0YTgxNWJmMGM5ZDE2YzA3MTY1ZWFkNWU3YTJjMTk4NTlhYjhmODE5Y2Ey
10
- MTU4ZjM3ZThkZDA2ZDVjNmZjZjM4ZThkODIzZjYyYmNmNDJiYjcyNDRiY2Yx
11
- MzU3YTkyNGJiMDFkYTcxZDQwMTYwM2YxNTQ2ZGRhODRmMzNiZGE=
9
+ NDcxZDcwNTFiYzQ0YTQ0NTc4ZWJmNDViMDFkZWE0Y2U0MTc2ZGVmODVkNjU0
10
+ ZGM3Y2UyZTE3ODY5MjcyYmRjNjRlMDc2ZTUwMGM3NzFkMTZhMGFiN2MwMWY3
11
+ YmEyNWQwNWRjNTIzYTkxZDU0MjM4MTRlM2VlZDA0YWRhMjRmNTQ=
12
12
  data.tar.gz: !binary |-
13
- Y2YwY2YxOTc0NzhlZDYwODlmNGM4ZjQ3MzNmNzVlOGM1ZDliZDZkOTc1YTEy
14
- MTBkZDdmYmY3ZTkzZWE5NTRiNTc5MDU1OGUzN2QxNjA1NmJlZGI3N2NiZmMw
15
- ODdlNzBkZTEyOWM3YzY2ZjFlNDk3NGVkYzdjOWE3MWM4MDRhMDE=
13
+ YzExNzNkOWIzNTk1NmQwNjIxMzUxMmE5OWM4OGU3NTIwZWJjZDlmNWE1MmJi
14
+ NGZhYzAwMGE5YmU3MmM0YmE2NzIxMjVlOGZmMWExMWM0MjA1OTkyZGE4NTZm
15
+ ZTY3YzhiODhhYzYzZWFiMDMyZjY4NGM4OTcwZjA4YzU5YzZkNTM=
data/README.md CHANGED
@@ -257,6 +257,9 @@ class Mixbook::DeadSimpleCMS::FileUploader < ::DeadSimpleCMS::FileUploader::Base
257
257
  end
258
258
  ```
259
259
 
260
+ Please note that section blocks are lazy, and only will be executed on the first access to the values,
261
+ e.g. by `DeadSimpleCMS.sections.site_annoucement`. You can force execution by `DeadSimpleCMS::Section#build_block!`
262
+
260
263
  Accessing Values
261
264
  -----
262
265
 
@@ -283,4 +286,4 @@ to us at jobs@mixbook.com.
283
286
  Author
284
287
  ------
285
288
 
286
- Aryk Grosz :: aryk.grosz@gmail.com :: @arykg
289
+ Aryk Grosz :: aryk.grosz@gmail.com :: @arykg
@@ -23,9 +23,14 @@ module DeadSimpleCMS
23
23
  @path = options[:path]
24
24
  @root_group = Group.root # The root group for the section.
25
25
  @fragments = Array.wrap(options[:fragments])
26
+ @block = block
26
27
  add_group(@root_group)
28
+ @is_loaded = false
29
+ end
27
30
 
28
- build(&block) if block_given?
31
+ def build_block!
32
+ build(&@block) if @block && !@is_loaded
33
+ @is_loaded = true
29
34
  end
30
35
 
31
36
  # Public: Update the sections with the params and return the updated sections.
@@ -46,11 +46,32 @@ module DeadSimpleCMS
46
46
  end
47
47
 
48
48
  def [](key)
49
- super(to_identifier(key))
49
+ result = super(to_identifier(key))
50
+ maybe_build_block(result)
51
+ result
52
+ end
53
+
54
+ def each(&block)
55
+ super do |k, v|
56
+ maybe_build_block(v)
57
+ block[k, v]
58
+ end
59
+ end
60
+
61
+ def values
62
+ results = super
63
+ results.each do |result|
64
+ maybe_build_block(result)
65
+ end
66
+ results
50
67
  end
51
68
 
52
69
  private
53
70
 
71
+ def maybe_build_block(value)
72
+ value.build_block! if value.respond_to?(:build_block!)
73
+ end
74
+
54
75
  # Private: Cast an identifier or other object into an identifier.
55
76
  def to_identifier(identifier)
56
77
  case identifier
@@ -62,4 +83,4 @@ module DeadSimpleCMS
62
83
  end
63
84
  end
64
85
  end
65
- end
86
+ end
@@ -1,3 +1,3 @@
1
1
  module DeadSimpleCMS
2
- VERSION = "0.12.8"
2
+ VERSION = "0.12.9"
3
3
  end
@@ -3,7 +3,7 @@ shared_context :sample_section do
3
3
  let(:section) do
4
4
  # Site announcement is an example of a potential use case. It leverages a lot of the functionality of the
5
5
  # library, hence why we are teting against it.
6
- DeadSimpleCMS::Section.new(:site_announcement, :path => "/") do
6
+ section = DeadSimpleCMS::Section.new(:site_announcement, :path => "/") do
7
7
  boolean :show_default, :default => false
8
8
  string :coupon_code
9
9
  group(:top_bar) do
@@ -29,6 +29,8 @@ shared_context :sample_section do
29
29
  end
30
30
  end
31
31
  end
32
+ section.build_block!
33
+ section
32
34
  end
33
35
 
34
36
  end
@@ -61,4 +63,4 @@ shared_examples :group_display do
61
63
  end
62
64
  end
63
65
 
64
- end
66
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dead_simple_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.8
4
+ version: 0.12.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aryk Grosz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-22 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport