Skip to content

Commit

Permalink
adjustments in the rendering API
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianconcept committed Jan 24, 2024
1 parent ada7406 commit 2bbf995
Show file tree
Hide file tree
Showing 10 changed files with 110 additions and 81 deletions.
2 changes: 1 addition & 1 deletion Ride-Builder/RideAppHomePresenterClassHelper.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RideAppHomePresenterClassHelper class >> indexMethodFor: aSymbol [

^ 'index
^ self render: ''index.html''
^ self render
' format: { aSymbol }
]

Expand Down
8 changes: 4 additions & 4 deletions Ride-Builder/RideCRUDHelper.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ RideCRUDHelper class >> editMethodFor: aSymbol [
model ifNil: [
model := {1} findId: (self currentRequest uri segments reversed second) ].
^ self render: ''edit.html''
^ self renderUsing: ''edit.html''
' format: {
aSymbol.
aSymbol asLowercase asPlural asSnakeCase }
Expand All @@ -70,7 +70,7 @@ RideCRUDHelper class >> indexMethodFor: aSymbol [
model := self {3}.
^ self render: ''index.html''
^ self render
' format: {
aSymbol.
Expand All @@ -87,7 +87,7 @@ RideCRUDHelper class >> newModelMethodFor: aSymbol [
model := {1} new.
^ self render: ''new.html''
^ self renderUsing: ''new.html''
' format: {
aSymbol.
aSymbol asLowercase asPlural asSnakeCase }
Expand All @@ -103,7 +103,7 @@ RideCRUDHelper class >> showMethodFor: aSymbol [
model ifNil: [
model := {1} findId: (self currentRequest uri segments last) ].
^ self render: ''show.html''
^ self renderUsing: ''show.html''
' format: {
aSymbol.
aSymbol asLowercase asPlural asSnakeCase }
Expand Down
2 changes: 1 addition & 1 deletion Ride-Builder/RidePresenterHelper.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RidePresenterHelper class >> indexMethodFor: aSymbol [

^ 'index
^ self render: ''index.html''
^ self render
' format: { aSymbol }
]

Expand Down
14 changes: 7 additions & 7 deletions Ride-Builder/RideSTTemplateHelper.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ RideSTTemplateHelper class >> defaultViewTemplate [
RideSTTemplateHelper class >> defaultViewTemplateWithJs [

^ self defaultViewTemplate
, '<script type="text/javascript" src="<st= self >"></script>'
, '<script type="text/javascript" src="<st= self>"></script>'
]

{ #category : #accessing }
RideSTTemplateHelper class >> editContentFor: aSymbol [

^ '<st STT yield: ''shared/feedback.html'' on: self >
^ '<st STT yield: self using: ''shared/feedback.html'' >
<div class="container">
<h1>Editing {3}</h1>
<div>
<st= self render: ''form.html'' on: model>
<st= self render: model using: ''form.html''>
</div>
<a href="/{4}/<st= model id>">Show this {3}</a>
<a href="/{4}">Back to {2}</a>
Expand Down Expand Up @@ -60,7 +60,7 @@ RideSTTemplateHelper class >> formContentFor: aSymbol [
{ #category : #accessing }
RideSTTemplateHelper class >> indexContentFor: aSymbol [

^ '<st STT yield: ''shared/feedback.html'' on: self >
^ '<st STT yield: self using: ''shared/feedback.html'' >
<div class="container">
<h1>{1}</h1>
<div>
Expand Down Expand Up @@ -95,11 +95,11 @@ RideSTTemplateHelper class >> indexContentFor: aSymbol [
{ #category : #accessing }
RideSTTemplateHelper class >> newContentFor: aSymbol [

^ '<st STT yield: ''shared/feedback.html'' on: self >
^ '<st STT yield: self using: ''shared/feedback.html'' >
<div class="container">
<h1>New {3}</h1>
<div>
<st= self render: ''form.html'' on: model>
<st= self render: model using: ''form.html'' >
</div>
<a href="/{4}">Back to {2}</a>
</div>
Expand All @@ -113,7 +113,7 @@ RideSTTemplateHelper class >> newContentFor: aSymbol [
{ #category : #accessing }
RideSTTemplateHelper class >> showContentFor: aSymbol [

^ '<st STT yield: ''shared/feedback.html'' on: self >
^ '<st= self render: self using: ''shared/feedback.html'' >
<div class="container">
<h1>{1}</h1>
<st= self render: model>
Expand Down
52 changes: 26 additions & 26 deletions Ride/RideMustacheRenderer.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,20 @@ RideMustacheRenderer >> newTemplateFrom: file [
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateName as: aPartialName inLayout: aLayoutNameOrNil on: aTemplateContext for: aRidePresenter [
RideMustacheRenderer >> render: aTemplateName in: aLayoutNameOrNil for: aRidePresenter [

"Render the template found with aTemplateName embedded
in the layout at aLayoutNameOrNil for aRidePresenter."

^ self
render: aRidePresenter mustacheTemplateModel
using: aTemplateName
in: aLayoutNameOrNil
for: aRidePresenter
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateContext using: aTemplateName as: aPartialName in: aLayoutNameOrNil for: aRidePresenter [

| templateViews yieldTarget templateToRender |
templateViews := (self getTemplatesFor: aRidePresenter) copy.
Expand All @@ -73,31 +86,22 @@ RideMustacheRenderer >> render: aTemplateName as: aPartialName inLayout: aLayout
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateName for: aRidePresenter [

"Render the template found with aTemplateName for aRidePresenter."

^ self
render: aTemplateName
with: aRidePresenter mustacheTemplateModel
for: aRidePresenter
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateName inLayout: aLayoutNameOrNil for: aRidePresenter [
RideMustacheRenderer >> render: aMustacheContext using: aTemplateName for: aRidePresenter [

"Render the template found with aTemplateName embedded
in the layout at aLayoutNameOrNil for aRidePresenter."
| layoutNameOrNil |
layoutNameOrNil := isLayoutWrapper ifTrue: [
aRidePresenter class layoutName ].

^ self
render: aTemplateName
inLayout: aLayoutNameOrNil
on: aRidePresenter mustacheTemplateModel
using: aRidePresenter class partialYieldTargetName
as: layoutNameOrNil
in: aMustacheContext
for: aRidePresenter
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateName inLayout: aLayoutNameOrNil on: aTemplateContext for: aRidePresenter [
RideMustacheRenderer >> render: aTemplateContext using: aTemplateName in: aLayoutNameOrNil for: aRidePresenter [

"Render the template found with aTemplateName embedded
in the layout at aLayoutNameOrNil for aRidePresenter."
Expand Down Expand Up @@ -127,16 +131,12 @@ RideMustacheRenderer >> render: aTemplateName inLayout: aLayoutNameOrNil on: aTe
]

{ #category : #rendering }
RideMustacheRenderer >> render: aTemplateName with: aMustacheContext for: aRidePresenter [
RideMustacheRenderer >> renderUsing: aTemplateName for: aRidePresenter [

| layoutNameOrNil |
layoutNameOrNil := isLayoutWrapper ifTrue: [
aRidePresenter class layoutName ].
"Render the template found with aTemplateName for aRidePresenter."

^ self
render: aTemplateName
as: aRidePresenter class partialYieldTargetName
inLayout: layoutNameOrNil
on: aMustacheContext
render: aRidePresenter mustacheTemplateModel
using: aTemplateName
for: aRidePresenter
]
79 changes: 54 additions & 25 deletions Ride/RidePresenter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Class {
#instVars : [
'model',
'subpresenters',
'canvas'
'renderer'
],
#category : #'Ride-Presenters'
}
Expand Down Expand Up @@ -82,6 +82,14 @@ RidePresenter class >> getNormalizedModelNameForURLs [
^ self getKebabizedModelName asSnakeCase
]

{ #category : #accessing }
RidePresenter class >> getRenderSelector [

"Answer the selector that detemines the rendered aspect defined for the receiver."

^ 'index.html'
]

{ #category : #accessing }
RidePresenter class >> getSnakeCasedModelName [

Expand Down Expand Up @@ -118,18 +126,6 @@ RidePresenter class >> partialYieldTargetName [
^ #yield
]

{ #category : #accessing }
RidePresenter >> canvas [

^ canvas
]

{ #category : #accessing }
RidePresenter >> canvas: anObject [

canvas := anObject
]

{ #category : #accessing }
RidePresenter >> children [

Expand Down Expand Up @@ -160,6 +156,14 @@ RidePresenter >> getRenderContext [
^ self
]

{ #category : #accessing }
RidePresenter >> getRenderSelector [

"Answer the selector that detemines the rendered aspect defined for the receiver."

^ self class getRenderSelector
]

{ #category : #accessing }
RidePresenter >> getRenderer [

Expand All @@ -172,19 +176,20 @@ RidePresenter >> getRenderer [
{ #category : #actions }
RidePresenter >> index [

"Returns the rendered representation of the receiver in its main entry point.
For example, for an HTML representation what would be in it as index.html
"Returns the default rendered representation of the receiver in its main entry point.
For example, for an HTML representation what would be this
presenter rendered as intended by its corresponding index.html
and for an JSON representation what would be in it as index.json"

^ self render: #index
^ self render
]

{ #category : #initialization }
RidePresenter >> initialize [

super initialize.
subpresenters := JsonObject new.
canvas := self getRenderer
renderer := self getRenderer
]

{ #category : #accessing }
Expand Down Expand Up @@ -254,22 +259,23 @@ RidePresenter >> onBeforeAction [
{ #category : #rendering }
RidePresenter >> render [

^ self render: 'index.html' on: self getRenderContext
^ self render: self getRenderContext
]

{ #category : #rendering }
RidePresenter >> render: aSelector [
RidePresenter >> render: aRenderContext [

^ self render: aSelector on: self getRenderContext
^ self render: aRenderContext using: aRenderContext getRenderSelector
]

{ #category : #rendering }
RidePresenter >> render: aSelector inLayout: aLayoutNameOrNil on: aRenderContext [

^ canvas
self deprecated: 'use render:using:in:'.
^ renderer
render: aSelector
inLayout: aLayoutNameOrNil
on: aRenderContext
using: aLayoutNameOrNil
in: aRenderContext
for: self
]

Expand All @@ -278,19 +284,36 @@ RidePresenter >> render: aSelector model: aRideModel [

"Render the given model using aSelector to decide how it should be rendered."

self halt.
^ canvas render: aSelector model: aRideModel for: self
self deprecated: 'use render:using:'.
^ renderer render: aSelector model: aRideModel for: self
]

{ #category : #rendering }
RidePresenter >> render: aSelector on: aRenderContext [

self deprecated: 'use render:in:'.
^ self
render: aSelector
inLayout: self getLayoutName
on: aRenderContext
]

{ #category : #rendering }
RidePresenter >> render: aRenderContext using: aSelector [

^ self render: aRenderContext using: aSelector in: nil
]

{ #category : #rendering }
RidePresenter >> render: aRenderContext using: aSelector in: aLayoutNameOrNil [

^ renderer
render: aRenderContext
using: aSelector
in: aLayoutNameOrNil
for: self
]

{ #category : #rendering }
RidePresenter >> renderModel: aRideModel [

Expand All @@ -301,6 +324,12 @@ RidePresenter >> renderModel: aRideModel [
^ self render: aRideModel getDefaultRenderSelector model: aRideModel
]

{ #category : #rendering }
RidePresenter >> renderUsing: aSelector [

^ self render: self getRenderContext using: aSelector
]

{ #category : #actions }
RidePresenter >> resetSession [

Expand Down
2 changes: 1 addition & 1 deletion Ride/RideProgrammaticRenderer.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Class {
}

{ #category : #rendering }
RideProgrammaticRenderer >> render: anAspectVariantSelector for: aRidePresenter [
RideProgrammaticRenderer >> renderUsing: anAspectVariantSelector for: aRidePresenter [

"Since it can have many, use anAspectVariantSelector
to decide in what aspect to render aRidePresenter."
Expand Down
2 changes: 1 addition & 1 deletion Ride/RideRenderer.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ RideRenderer >> isLayoutWrapper [
]

{ #category : #rendering }
RideRenderer >> render: anAspectVariantSelector for: aRidePresenter [
RideRenderer >> renderUsing: anAspectVariantSelector for: aRidePresenter [

"Since it can have many, use anAspectVariantSelector
to decide in what aspect to render aRidePresenter."
Expand Down
Loading

0 comments on commit 2bbf995

Please sign in to comment.