Transitioning from Ruby on Rails to Spruce

Ruby on Rails is a full-stack framework that uses Ruby, while Spruce is built on TypeScript. This guide will assist you in drawing parallels between Rails development and Spruce’s architecture, helping you understand how to apply your existing Rails knowledge in Spruce.

Key Differences between Ruby on Rails and Spruce Development

RubySpruce
Programming LanguageRubyTypeScript
IDERubyMine, VS CodeVisual Studio Code
App LifecycleNo direct equivalent; controlled by frameworks like RailsNo Equivalent
UI DesignN/A for CLI; Rails for web viewsHeartwood, ViewControllers
Event HandlingObserver pattern, Callbacks in RailsMercury
Data PersistenceActiveRecord in RailsData Stores
Error HandlingBegin-RescueTry-Catch Blocks, SpruceErrors
TestingRSpec, MinitestTDD by the 3 laws
User AuthenticationDevise (Rails)Mercury, Authenticator
User PermissionsPundit, Cancancan (Rails)Mercury, Authorizor

Programming Language

Ruby

Coming soon...

Spruce

import {
 AbstractSkillViewController,
 CardViewController,
 ViewControllerOptions,
 buildSkillViewLayout,
 SkillView
} from '@sprucelabs/heartwood-view-controllers'

export default class RootSkillViewController extends AbstractSkillViewController {
 public static id = 'root'
 protected cardVc: CardViewController

 public constructor(options: ViewControllerOptions) {
  super(options)
  this.cardVc = this.Controller('card', {
   header: {
    title: 'Hello, World!',
   }
  })
 }

 public render(): SkillView {
  return buildSkillViewLayout('grid', {
   cards: [this.cardVc.render()]
  })
 }
}

IDE

Coming soon...

App Lifecycle

Coming soon...

UI Design

Coming soon...

Event Handling

Coming soon...

Data Persistence

Coming soon...

Error Handling

Coming soon...

Testing

Coming soon...

User Authentication

Coming soon...

User Permissions

Coming soon...

Something Missing?

Request Documentation Enhancement

Now What?

Install the Development Theatre
It looks like you are using Internet Explorer. While the basic content is available, this is no longer a supported browser by the manufacturer, and no attention is being given to having IE work well here.