add more attributes
Matt S Trout [Sat, 14 Apr 2012 02:54:16 +0000 (02:54 +0000)]
lib/Data/Query/Renderer/SQL/Naive.pm

index 31cd462..1da16b9 100644 (file)
@@ -19,8 +19,14 @@ has reserved_ident_parts => (
 
 has quote_chars => (is => 'ro', default => sub { [''] });
 
+has identifier_sep => (is => 'ro', default => sub { '.' });
+
 has simple_ops => (is => 'ro', builder => '_default_simple_ops');
 
+has lc_keywords => (is => 'ro', default => sub { 0 });
+
+has always_quote => (is => 'ro', default => sub { 0 });
+
 sub _default_simple_ops {
   +{
     (map +($_ => 'binop'), qw(= > < >= <= != LIKE), 'NOT LIKE' ),
@@ -70,7 +76,7 @@ sub _flatten_structure {
 #
 # FEH.
 
-sub _format_keyword { $_[0]->{lc_keywords} ? lc($_[1]) : $_[1] }
+sub _format_keyword { $_[0]->lc_keywords ? lc($_[1]) : $_[1] }
 
 sub _render {
   $_[0]->${\"_render_${\(lc($_[1]->{type})||'broken')}"}($_[1]);
@@ -87,11 +93,11 @@ sub _render_identifier {
     unless my @i = @{$_[1]->{elements}};
   # handle single or paired quote chars
   my ($q1, $q2) = @{$_[0]->quote_chars}[0,-1];
-  my $always_quote = $_[0]->{always_quote};
+  my $always_quote = $_[0]->always_quote;
   my $res_check = $_[0]->reserved_ident_parts;
   return [
     join
-      $_[0]->{identifier_sep}||'.',
+      $_[0]->identifier_sep,
       map +(
         $_ eq '*' # Yes, this means you can't have a column just called '*'.
           ? $_    # Yes, this is a feature. Go shoot the DBA if he disagrees.