Sha256: 329442b17786632fcefed44423c89540476b5df85eeff5020afda8d9e63aa6d6

Contents?: true

Size: 1.31 KB

Versions: 8

Compression:

Stored size: 1.31 KB

Contents

module CustomHelpers
  # Used to access the first result of a query
  def first_result
    @service_result = @service_result.first if @service_result.is_a? Enumerable
  end
  
  # Used to access the first save result
  def first_save
    @saved_result = @saved_result.first if @saved_result.is_a? Enumerable
  end
  
  # Allows the string @@LastSave to be used when checking results
  def handle_last_save_fields(val)
    if val =~ /^@@LastSave.first$/
      val = @saved_result.first
    end
    if val =~ /^@@LastSave$/
      val = @saved_result
    end
    val
  end

  # Takes in comma-delimited fields string (like key: "value") and parses it into a hash
  def parse_fields_string(fields)
    fields_hash = {}

    if !fields.nil?
      fields.split(', ').each do |field|
        if field =~ /^(?:(\w+): "(.*)")$/
          key = $1
          val = handle_last_save_fields($2)

          fields_hash.merge!({key => val})
        end
      end
    end
    fields_hash
  end
  
  # Takes in a hash and convert special values (like @@LastSave) into the appropriate values
  def parse_fields_hash(fields)
    fields_hash = {}

    if !fields.nil?
      fields.each do |key, val|        
        val = handle_last_save_fields(val)
        fields_hash.merge!({key => val})
      end
    end
    fields_hash
  end
  
end
World(CustomHelpers)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ruby_odata-0.2.0.beta1 features/support/custom_helpers.rb
ruby_odata-0.1.6 features/support/custom_helpers.rb
ruby_odata-0.1.5 features/support/custom_helpers.rb
ruby_odata-0.1.4 features/support/custom_helpers.rb
ruby_odata-0.1.3 features/support/custom_helpers.rb
ruby_odata-0.1.2 features/support/custom_helpers.rb
ruby_odata-0.1.1 features/support/custom_helpers.rb
ruby_odata-0.1.0 features/support/custom_helpers.rb