cells 4.0.4 → 4.0.5

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
  SHA1:
3
- metadata.gz: 0deae1307acc8178812fdb8770ef8e42fa1ec62e
4
- data.tar.gz: 1ace8b75ed910b9a1e870d9b3c9bececbe81295a
3
+ metadata.gz: 9ef7b3e4ead686e4d02d8e9baf632e8333fae1bf
4
+ data.tar.gz: 6971a3c4628a18d399011179b922f5423ffed4d2
5
5
  SHA512:
6
- metadata.gz: 32622f1999e6bebefff207da8c68c367b3e80e958449bd84f5ac5b5712c27358af6b591387c2e9dbeade5fdb50368083aff80bb7be0851813c9a3a6d6f5653b5
7
- data.tar.gz: f4604cb8d50ae093e94ef9ce9a2747573945750e68d2d3f2fe4d6936574e546c748023c32b7d2daa9f05bab5617d0818327be2b438d1384ac01d4ee942f2b086
6
+ metadata.gz: 786ee96506dc6cf01ec325c3b06ea78b8543f33207b756db8c18a1c96230a8eedf2394ffce08a8baa08d354a3388a3b6c4ca6a227c4bf9a237be1930265eca91
7
+ data.tar.gz: 58b053d459be2071faa1e09f872fb1c5b894e8a5bb14180f40f130c626fca9072750158c8894eb6e2810da44b7f6188f566c44e260b660129ea7aa59497a1ffc
data/CHANGES.md CHANGED
@@ -1,3 +1,59 @@
1
+ ## 4.1.0
2
+
3
+ TODO: extract internal :layout, extract builder
4
+
5
+ ### API Fix/Changes
6
+
7
+ * You can no longer pass a block to `ViewModel#call`. Use `tap` if you want the same behavior.
8
+ ```ruby
9
+ Comment::Cell.new(comment).().tap { |cell| }
10
+ ```
11
+ * `Concept#cell` now will resolve a concept cell (`Song::Cell`), and not the old-style suffix cell (`SongCell`). The same applies to `Concept#concept`.
12
+
13
+ ```ruby
14
+ concept("song/cell", song).cell("song/cell/composer") #=> resolves to Song::Cell::Composer
15
+ ```
16
+ This decision has been made in regards of the upcoming, ass-kicking Cells 5. It simplifies code dramatically, and we consider it unnatural to mix concept and suffix cells in applications.
17
+ * In case you were using `@parent_controller`, this doesn't exist anymore (and was never documented, either). Use `options[:context][:controller]`.
18
+ * `::self_contained!` is no longer included into `ViewModel`. Please try using `Trailblazer::Cell` instead. If you still need it, here's how.
19
+
20
+ ```ruby
21
+ class SongCell < Cell::ViewModel
22
+ extend SelfContained
23
+ self_contained!
24
+ ```
25
+
26
+ * `Cell::Concept` is deprecated and you should be using the excellent `Trailblazer::Cell` class instead, because that's what a concept cell tries to be in an awkward way. The latter is usable without Trailblazer.
27
+
28
+ We are hereby dropping support for `Cell::Concept` (it still works).
29
+
30
+ ### Awesomeness
31
+
32
+ * Introduced the concept of a context object that is being passed to all nested cells. This object is supposed to contain dependencies such as `current_user`, in Rails it contains the "parent_controller" under the `context[:controller]` key.
33
+
34
+ Simple provide it as an option when rendering the cell.
35
+
36
+ ```ruby
37
+ cell(:song, song, context: { current_user: current_user })
38
+ ```
39
+
40
+ The `#context` method allows to access this very hash.
41
+
42
+ ```ruby
43
+ def role
44
+ context[:current_user].admin? "Admin" : "A nobody"
45
+ end
46
+ ```
47
+ * The `cell` helper now allows to pass in a constant, too.
48
+
49
+ ```ruby
50
+ cell(Song::Cell, song)
51
+ ```
52
+
53
+ ## 4.0.5
54
+
55
+ * Fix `Testing` so you can use Capybara matchers on `cell(:song, collection: [..])`.
56
+
1
57
  ## 4.0.4
2
58
 
3
59
  * `Escaped::property` now properly escapes all passed properties. Thanks @xzo and @jlogsdon!
@@ -13,7 +13,12 @@ module Cell
13
13
  private
14
14
  def cell_for(baseclass, name, model=nil, options={})
15
15
  cell = baseclass.cell(name, model, options.merge(controller: controller))
16
- cell.extend(Capybara) if Cell::Testing.capybara? # leaving this here as most people use Capybara.
16
+
17
+ if Cell::Testing.capybara? # leaving this here as most people use Capybara.
18
+ return ::Capybara::string(cell) unless cell.is_a?(Cell::ViewModel) # HORRIBLE hack, will be fixed with new collection API in 4.1 :)
19
+ cell.extend(Capybara)
20
+ end
21
+
17
22
  cell
18
23
  end
19
24
 
@@ -68,4 +73,4 @@ module Cell
68
73
  end
69
74
 
70
75
  end
71
- end
76
+ end
@@ -1,3 +1,3 @@
1
1
  module Cell
2
- VERSION = "4.0.4"
2
+ VERSION = "4.0.5"
3
3
  end
@@ -51,7 +51,9 @@ class CapybaraTest < MiniTest::Spec
51
51
 
52
52
  it { subject.(:show).has_selector?('b').must_equal true }
53
53
 
54
+ it { cell("capybara_test/capybara", collection: [1, 2]).has_selector?('b').must_equal true }
55
+
54
56
  # FIXME: this kinda sucks, what if you want the string in a Capybara environment?
55
57
  it { subject.(:show).to_s.must_match "<b>Grunt</b>" }
56
58
  end
57
- end
59
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cells
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.4
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-07 00:00:00.000000000 Z
11
+ date: 2016-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uber