frontyard 0.1.2 → 0.1.3

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: 4d21b67a2f206bc0b8cb353cc467472542d80977da64b0faa280d714238f8e9d
4
- data.tar.gz: 7036b1e1d6ee7c6b816dce6f17fd99c8f5f3a4126c2562a4b6bfe071c089b012
3
+ metadata.gz: 72576ecd3dce51ced4bb38029d7f98fb5a62cd9ec7739fb68b6b348a09fde469
4
+ data.tar.gz: c55e4d16f9216196db52fdee4123d256cdfe0bb3df24cc544161910eb261e476
5
5
  SHA512:
6
- metadata.gz: 2c6d5e7767b9d2a53ae5179d8a638c5374465146a40fbbc2c5ea29190e791681f49fed9fd44fcda8566b61c9d466393262343feda5af8781f1cf14122a486d9b
7
- data.tar.gz: 11e299fc928834b7298d3ab060f154a981a3b47c4880a3ae2fadcc1fda0fbdf93f610190378b0ebdec4d6b5a94fba46453d6b43d453ad0b247de24c05e28c44c
6
+ metadata.gz: cff6d014483d8dfd857e160ce0dc13107d07e6d55aba706ef558d62ea39d47e9b9756f2e6ba8981fb376c1b13a2e6fd73a4c0fbdc634b3abeba8c51d576e912b
7
+ data.tar.gz: f59cc1d59f38471dbf8d1ea0f01de6fde5c76541b4a5fdb554392ad90c014b4b1e9902e7ccd556b8869cafa0a174b4dcafc1ec840765276f9034ca447618c65d
data/Rakefile CHANGED
@@ -13,6 +13,7 @@ require "rake/testtask"
13
13
 
14
14
  Reissue::Task.create do |t|
15
15
  t.version_file = "lib/frontyard/version.rb"
16
+ t.fragment = :git
16
17
  end
17
18
 
18
19
  Rake::TestTask.new(:test) do |t|
@@ -73,8 +73,7 @@ module Frontyard
73
73
  ]
74
74
  end.to_h
75
75
  kwargs.each do |key, value|
76
- value ||= "nil"
77
- tokens["#{key}: #{value}"] = "@#{key} = #{key}"
76
+ tokens["#{key}: #{value.inspect}"] = "@#{key} = #{key}"
78
77
  end
79
78
  accessors = keys + kwargs.keys
80
79
  keyword_args = tokens.keys
@@ -1,5 +1,29 @@
1
1
  module Frontyard
2
2
  module Controller
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ layout -> { _resolve_frontyard_layout }
7
+ end
8
+
9
+ class_methods do
10
+ # Set an explicit Phlex layout class for this controller.
11
+ #
12
+ # frontyard_layout Views::Layouts::AdminLayout
13
+ # frontyard_layout false # disable Phlex layout
14
+ def frontyard_layout(klass = :__unset__)
15
+ if klass == :__unset__
16
+ if defined?(@_frontyard_layout)
17
+ @_frontyard_layout
18
+ elsif superclass.respond_to?(:frontyard_layout)
19
+ superclass.frontyard_layout
20
+ end
21
+ else
22
+ @_frontyard_layout = klass
23
+ end
24
+ end
25
+ end
26
+
3
27
  # Get the form class for the current controller
4
28
  def form
5
29
  namespace = controller_name.camelize
@@ -35,5 +59,24 @@ module Frontyard
35
59
  render_data = symbolized_kwargs.except(*view_data.keys)
36
60
  render klass.new(**view_data), **render_data
37
61
  end
62
+
63
+ private
64
+
65
+ def _resolve_frontyard_layout
66
+ # Check for explicit layout set on the controller class
67
+ explicit = self.class.frontyard_layout
68
+ if explicit
69
+ return explicit
70
+ elsif explicit == false
71
+ return nil
72
+ end
73
+
74
+ # Convention: look for Views::Layouts::ApplicationLayout
75
+ begin
76
+ Views::Layouts::ApplicationLayout
77
+ rescue NameError
78
+ nil
79
+ end
80
+ end
38
81
  end
39
82
  end
@@ -1,3 +1,3 @@
1
1
  module Frontyard
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frontyard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Gay
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.7.2
100
+ rubygems_version: 4.0.3
101
101
  specification_version: 4
102
102
  summary: Frontyard is a Rails engine for creating and managing views with Phlex.
103
103
  test_files: []