Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for parsing multi-dimensional array string #33

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

saurabhnanda
Copy link

Added support for parsing multi-dimensional array strings

  • Used the Sequel::Postgres::PGArray::Parser class from https://github.com/jeremyevans/sequel/blob/master/lib/sequel/extensions/pg_array.rb (MIT licensed code)
  • The saner method to parse multi-dimensional array-strings is to NOT use regexps and use some sort of parser instead
  • Changed String.valid_postgres_array? to use constants instead of variables to define the regexps
  • Converting timestamps to current Rails timezone using in_time_zone
  • Removed String.valid_postgres_array? because there is no easy way to validate array-string using Regexps alone. One will have to parse the string into an array to check if it's valid -- a task that the PG database would anyways do.

* Used the Sequel::Postgres::PGArray::Parser class from
  https://github.com/jeremyevans/sequel/blob/master/lib/sequel/extensions/pg_array.rb
* The saner method to parse multi-dimensional array-strings
  is to NOT use regexps and use some sort of parser instead
* Changed String.valid_postgres_array? to use constants instead
  of variables to defined the regexps
* Converting timestamps to current Rails timezone using `in_time_zone`
Removed String.valid_postgres_array? because there is no easy way to
validate array-string using Regexps alone. One will have to parse the
string into an array to check if it's valid -- a task that the PG database
would anyways do.

Removed check in `quote_with_array`
@saurabhnanda
Copy link
Author

Did you get a chance to review this PR?

saurabhnanda and others added 8 commits August 24, 2013 19:32
…es because the actual function in Rails 3.2.x has changed. The monkeypatched version was unable to handle serialized attributes and was causing all serializations to barf.

* Removed the method_chaing for quote_without_array, because it's not required in the new approach.
* Added ActiveRecord::Coders::PgArray to act as a serializer/de-serializer for all array columns. One has to expilicity define how to serialize a column, like:
    `serialize :tags, ActiveRecord::Coders::PgArray(:string)`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants