dead_simple_cms 0.12.8 → 0.12.9

Sign up to get free protection for your applications and to get access to all the features.
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