Book Image

From PHP to Ruby on Rails

By : Bernard Pineda
4 (1)
Book Image

From PHP to Ruby on Rails

4 (1)
By: Bernard Pineda

Overview of this book

Are you a PHP developer looking to take your first steps into the world of Ruby development? From PHP to Ruby on Rails will help you leverage your existing knowledge to gain expertise in Ruby on Rails. With a focus on bridging the gap between PHP and Ruby, this guide will help you develop the Ruby mindset, set up your local environment, grasp the syntax, master scripting, explore popular Ruby frameworks, and find out about libraries and gems. This book offers a unique take on Ruby from the perspective of a seasoned PHP developer who initially refused to learn other technologies, but never looked back after taking the leap. As such, it teaches with a language-agnostic approach that will help you feel at home in any programming language without learning everything from scratch. This approach will help you avoid common mistakes such as writing Ruby as if it were PHP and increase your understanding of the programming ecosystem as a whole. By the end of this book, you'll have gained a solid understanding of Ruby, its ecosystem, and how it compares to PHP, enabling you to build robust and scalable applications using Ruby on Rails.
Table of Contents (15 chapters)
1
Part 1:From PHP to Ruby Basics
8
Part 2:Ruby and the Web

Putting it all together

Reading and understanding someone else’s code is essential to learning Ruby. With that intent, we will now look at the following example, which was written with some of the techniques we learned about in this chapter, and figure out what the script is doing:

# main.rb
# Section 1: Ruby version validation
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6')
  puts "Please verify the Ruby version!"
  Kernel::exit(1)
end
# Section 2: Open or create user_name file
file_instance = File.open("user_name.txt", "a+")
user_name = file_instance.read
# Section 3: Empty name validation
if user_name.empty?
  puts "Enter your name:"
  name = gets.chomp
  File.write("user_name.txt", name)
  # Section 4: Program main log
  File.write("main.log", "Writing #{name} as the entry to user_name.txt at #{Time.now}\n&quot...