lib/azure/table/query.rb in stuartpreston-azure-sdk-for-ruby-0.7.1 vs lib/azure/table/query.rb in stuartpreston-azure-sdk-for-ruby-0.7.2
- old
+ new
@@ -1,112 +1,112 @@
-#-------------------------------------------------------------------------
-# # Copyright (c) Microsoft and contributors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#--------------------------------------------------------------------------
-require 'azure/table/table_service'
-require 'azure/table/edmtype'
-
-module Azure
- module Table
- class Query
- def initialize(table="", partition=nil, row=nil, &block)
- @table = table
- @partition_key = partition
- @row_key = row
- @fields = []
- @filters = []
- @top_n = nil
- @table_service = Azure::Table::TableService.new
- self.instance_eval(&block) if block_given?
- end
-
- attr_reader :table
- attr_reader :partition_key
- attr_reader :row_key
-
- attr_reader :fields
- attr_reader :filters
- attr_reader :top_n
-
- attr_reader :next_partition_key
- attr_reader :next_row_key
-
- attr_reader :table_service
-
- def from(table_name)
- @table = table_name
- self
- end
-
- def partition(partition_key)
- @partition_key = partition_key
- self
- end
-
- def row(row_key)
- @row_key = row_key
- self
- end
-
- def select(*p)
- @fields.concat(p)
- self
- end
-
- def where(*p)
- @filters.push(p)
- self
- end
-
- def top(n)
- @top_n = n
- self
- end
-
- def next_partition(next_partition_key)
- @next_partition_key = next_partition_key
- self
- end
-
- def next_row(next_row_key)
- @next_row_key = next_row_key
- self
- end
-
- def execute
- @table_service.query_entities(@table, {
- :partition_key => @partition_key,
- :row_key => @row_key,
- :select => @fields.map{ |f| f.to_s },
- :filter => _build_filter_string,
- :top => (@top_n ? @top_n.to_i : @top_n),
- :continuation_token => {
- :next_partition_key => @next_partition_key,
- :next_row_key => @next_row_key
- }
- })
- end
-
- def _build_filter_string
- result = ""
- clauses = []
- filters.each { |f|
- clauses.push "#{f[0].to_s} #{f[1].to_s} #{Azure::Table::EdmType.serialize_query_value(f[2])}"
- }
- return nil if clauses.length == 0
-
- result << clauses.join(" and ")
- result
- end
- end
- end
+#-------------------------------------------------------------------------
+# # Copyright (c) Microsoft and contributors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#--------------------------------------------------------------------------
+require 'azure/table/table_service'
+require 'azure/table/edmtype'
+
+module Azure
+ module Table
+ class Query
+ def initialize(table="", partition=nil, row=nil, &block)
+ @table = table
+ @partition_key = partition
+ @row_key = row
+ @fields = []
+ @filters = []
+ @top_n = nil
+ @table_service = Azure::Table::TableService.new
+ self.instance_eval(&block) if block_given?
+ end
+
+ attr_reader :table
+ attr_reader :partition_key
+ attr_reader :row_key
+
+ attr_reader :fields
+ attr_reader :filters
+ attr_reader :top_n
+
+ attr_reader :next_partition_key
+ attr_reader :next_row_key
+
+ attr_reader :table_service
+
+ def from(table_name)
+ @table = table_name
+ self
+ end
+
+ def partition(partition_key)
+ @partition_key = partition_key
+ self
+ end
+
+ def row(row_key)
+ @row_key = row_key
+ self
+ end
+
+ def select(*p)
+ @fields.concat(p)
+ self
+ end
+
+ def where(*p)
+ @filters.push(p)
+ self
+ end
+
+ def top(n)
+ @top_n = n
+ self
+ end
+
+ def next_partition(next_partition_key)
+ @next_partition_key = next_partition_key
+ self
+ end
+
+ def next_row(next_row_key)
+ @next_row_key = next_row_key
+ self
+ end
+
+ def execute
+ @table_service.query_entities(@table, {
+ :partition_key => @partition_key,
+ :row_key => @row_key,
+ :select => @fields.map{ |f| f.to_s },
+ :filter => _build_filter_string,
+ :top => (@top_n ? @top_n.to_i : @top_n),
+ :continuation_token => {
+ :next_partition_key => @next_partition_key,
+ :next_row_key => @next_row_key
+ }
+ })
+ end
+
+ def _build_filter_string
+ result = ""
+ clauses = []
+ filters.each { |f|
+ clauses.push "#{f[0].to_s} #{f[1].to_s} #{Azure::Table::EdmType.serialize_query_value(f[2])}"
+ }
+ return nil if clauses.length == 0
+
+ result << clauses.join(" and ")
+ result
+ end
+ end
+ end
end
\ No newline at end of file