simple_record 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/simple_record.rb +18 -95
  2. metadata +2 -2
data/lib/simple_record.rb CHANGED
@@ -29,7 +29,7 @@ require 'local_cache'
29
29
 
30
30
  module SimpleRecord
31
31
 
32
- VERSION = '1.0.1'
32
+ VERSION = '1.0.2'
33
33
 
34
34
  class Base < RightAws::ActiveSdb::Base
35
35
 
@@ -625,104 +625,13 @@ This is done on getters now
625
625
  select=false
626
626
  select_attributes=[]
627
627
 
628
- # puts 'FIND=' + params.inspect
629
- # Pad and Offset number attributes
628
+ # Pad and Offset number attributes
630
629
  options = params[1]
631
630
  # puts 'options=' + options.inspect
632
- if !options.nil? && options.size > 0
633
- conditions = options[:conditions]
634
- if !conditions.nil? && conditions.size > 1
635
- # all after first are values
636
- conditions[1...conditions.size] = conditions[1...conditions.size].collect { |x|
637
- self.pad_and_offset(x)
638
- }
639
- end
640
- end
631
+ convert_condition_params(options)
632
+
641
633
  # puts 'after collect=' + params.inspect
642
- =begin
643
-
644
-
645
- params.each_with_index do |param, index|
646
- #this is the easiest way to determine if it will be necessary to reload several rows or just one
647
- #note that :all (or :first) is always params[0], and everything else is in a Hash in params[1]
648
- if param==:all
649
- all=true
650
- end
651
-
652
- if param.class==Hash
653
- param.each do |key, value|
654
- case key
655
- when :reload;
656
- reload=value #new option I'm adding so you can prevent reloading when it isn't necessary
657
- when :conditions #conditions have to be reformatted to work with ActiveSDB
658
- if value #value will sometimes be nil
659
- query=sanitize_sql(value)#sanitize the conditions into an SQL query
660
- query=query.gsub(/\w+\./, '') #this removes tables from the query, just a temporary measure, we need to inspect the table and alter query
661
- #query=quote_regexp(query,/[a-z0-9._-]+/)#ActiveSDB.find needs quotes around the attributes and values
662
- query=quote_regexp(query, /[^\s=']+/)
663
- #next we put brackets around the entire query, and turn it into an array
664
- #note, that these are 2 seperate things, and are both necessary for the function to work with ActiveSDB find
665
- params[index][:conditions]= ["[#{query}]"]
666
- end
667
- #params[index][:conditions][0]= "[#{params[index][:conditions][0]}]"
668
- #we then find any attributes in the query and put single quotes around them
669
- #@@attributes.each do |attribute|
670
- # params[index][:conditions][0]=params[index][:conditions][0].gsub(attribute.to_s,"'#{attribute.to_s}'")
671
- #end
672
-
673
- when :select #next we implement select functionality
674
- if value #value will sometimes be nil
675
- select=true
676
- #if the selected attributes are in array for, we can assume we are good to go
677
- if value.class==Array
678
- select_attributes=value
679
- else
680
- #however if they are passed as comma seperated values in a string, we have to split it into an array.
681
- #we remove all whitespace from the selected string, then split on comma
682
- select_attributes=value.gsub(' ', '').split(',')
683
- end
684
- end
685
- end
686
- end
687
- end
688
- end
689
-
690
- results = "scooby"
691
- begin
692
- results=super(*params)
693
- if results
694
- if reload
695
- if select
696
- if all
697
- results.each do |row|
698
- row.reload_attributes(select_attributes)
699
- end
700
- else
701
- results.reload_attributes(select_attributes)
702
- end
703
- else
704
- if all
705
- results.each do |row|
706
- row.reload
707
- end
708
- else
709
- results.reload
710
- end
711
- end
712
- end
713
- end
714
- rescue RightAws::AwsError
715
- puts "RESCUED: " + $!
716
- if ($!.is_a?(Hash))
717
- puts "it's a hash..."
718
- end
719
- if ($!.message().index("NoSuchDomain") == nil)
720
- raise $!
721
- end
722
- end
723
- return results
724
634
 
725
- =end
726
635
  results = []
727
636
  begin
728
637
  results=super(*params)
@@ -737,6 +646,8 @@ This is done on getters now
737
646
  end
738
647
 
739
648
  def select(*params)
649
+ options = params[1]
650
+ convert_condition_params(options)
740
651
  results = []
741
652
  begin
742
653
  results=super(*params)
@@ -750,6 +661,18 @@ This is done on getters now
750
661
  return results
751
662
 
752
663
  end
664
+
665
+ def self.convert_condition_params(options)
666
+ if !options.nil? && options.size > 0
667
+ conditions = options[:conditions]
668
+ if !conditions.nil? && conditions.size > 1
669
+ # all after first are values
670
+ conditions[1...conditions.size] = conditions[1...conditions.size].collect { |x|
671
+ self.pad_and_offset(x)
672
+ }
673
+ end
674
+ end
675
+ end
753
676
 
754
677
  def self.cache_results(results)
755
678
  if !@@cache_store.nil? && !results.nil?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Reeder
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-24 00:00:00 -07:00
12
+ date: 2009-04-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency