Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4090536
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T19:15:03+00:00 2026-05-20T19:15:03+00:00

I am a newbie in Ruby coming from web development with mainly PHP/SQL. I

  • 0

I am a newbie in Ruby coming from web development with mainly PHP/SQL. I was thinking about how I store preferences in my application. For instance, if I want to store a path as default_path and have that set also when the user restarts the application.

In the web world one would probably store this in a database or XML. Database seems overkill for a standalone application. But I am unsure wheter XML/YAML/Other-Write-Format is the way to go. And if so, where should I store these preferences? Should they be, for instance on a Mac, in ~/Library/MyAppName?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T19:15:04+00:00Added an answer on May 20, 2026 at 7:15 pm

    Ruby gives you another method for storing data called Marshaling. This will let you store a class/object to a file and reconstitute it later. If all of your user preferences are stored in a single object (or you can create an object which can hold all of the data that you need), it may be easiest to marshal the data instead of writing import/export routines to a text-based format or trying to pull in an additional library or gem.

    As to where on the disk to store the data, that’s up to you. Most platforms have a standard location for storing application data based on whether it’s available to a single user or all users. It’s usually safest to follow the common practice on your target platform of choice.

    Update: The simplest example of marshaling would probably be this: Say that you have a class called UserPrefs that you use to store all of your user preferences. You can use the following code to store the preferences data into a file:

    my_prefs = UserPrefs.new
    # ... Fill in the 'my_prefs' object with the user's preferences, etc ...
    
    # Store the object into a file
    File.open("user_prefs.data", "wb") do |file|
       Marshal.dump(my_prefs, file)
    end
    

    The next time that you load the application, you can restore those preferences using the following:

    # Load prefs from file
    my_prefs = nil
    File.open("user_prefs.data", "rb") {|f| my_prefs = Marshal.load(f)}
    

    At this point, the my_prefs object should be exactly the same as it was when the marshaling code was originally run. This essentially lets you take a ‘snaphot’ of an object at one point in time (say, when your program shuts down) and restore it later (say, when your program loads). Internally, all of the data in the structure is encoded into a single string and that string is what is stored to disk; the Marshal module simply takes care of the encoding and decoding for you.

    Here is another example of using marshaling to store and retrieve data.

    The default encode/decode routines built into the Marshal module are usually sufficient for most data-storing classes. Particularly complex classes may have problems, and if that is the case then you can define your own encode and decode methods (the first link includes an example of defining custom methods).

    Some types of data, however, cannot be marshaled (things like handles to open files, Proc objects, etc) since they don’t normally persist across Ruby sessions. If you are needing to marshal a class that includes members like this that Marshal doesn’t like, you can use custom encode/decode functions to marshal the rest of the class and omit the problematic members.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm a Ruby newbie. Have a very basic question about static and instance variables.
I am a Ruby newbie. I am designing a web application and plan to
I've been doing web application development for the last 3 years in PHP. I'm
Sorry I'm a newbie to Ruby on Rails. I'm very confused about the big
Apologies -- I'm a newbie using Ruby on Rails. Still a little confused about
As someone who came from Java background and being a newbie to Ruby, I
Programming newbie here, about a month in with Ruby. I'm currently playing around with
I am a newbie in Ruby on Rails. In a Rails application, I saw
Ruby newbie here. I'm trying to use the Easyjour module ( http://easyjour.rubyforge.org/ ) from
I am am a newbie in Ruby on Rails development and I am learning

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.