Sha256: 917e83d764946135d457eca6e586dc73b8135a44d4dbdc567236ef2c2ad5ae52

Contents?: true

Size: 1.23 KB

Versions: 17

Compression:

Stored size: 1.23 KB

Contents

module OrientDB::SQL
  class Update

    include OrientDB::SQL::UtilsMixin
    include OrientDB::SQL::ClassClusterParametersMixin
    include OrientDB::SQL::FieldsValuesParametersMixin
    include OrientDB::SQL::ConditionsParametersMixin

    def initialize
      @oclass     = nil
      @cluster    = nil
      @action     = "SET"
      @fields     = []
      @values     = []
      @conditions = []
    end

    def action(new_action)
      @action = new_action.to_s.upcase
      self
    end

    alias :action! :action

    def to_s
      (target_sql(:update) + fields_sql + conditions_sql).strip
    end

    def to_sql_command
      OrientDB::SQLCommand.new to_s
    end

    private

    def fields_sql
      raise "Missing fields" if @fields.empty?
      str = "#{@action} "
      if @action == "REMOVE" && @values.empty?
        str += @fields.join(', ')
      else
        raise "Missing values" if @values.empty?
        raise "Unbalanced fields & values" unless @values.size == @fields.size
        ary = []
        @fields.each_with_index do |field, idx|
          ary << "#{field} = #{@values[idx]}"
        end
        str += ary.join(", ")
      end
      str + ' '
    end

    def values_sql
      "(#{@values.join(', ')})"
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
orientdb-1.7.8-java lib/orientdb/sql/update.rb
orientdb-1.6.3-java lib/orientdb/sql/update.rb
orientdb-1.5.0-java lib/orientdb/sql/update.rb
orientdb-1.3.0-java lib/orientdb/sql/update.rb
orientdb-1.2.0-java lib/orientdb/sql/update.rb
orientdb-1.2.0 lib/orientdb/sql/update.rb
orientdb-0.0.25-jruby lib/orientdb/sql/update.rb
orientdb-0.0.24-jruby lib/orientdb/sql/update.rb
orientdb-0.0.23-jruby lib/orientdb/sql/update.rb
orientdb-0.0.22-jruby lib/orientdb/sql/update.rb
orientdb-0.0.21-jruby lib/orientdb/sql/update.rb
orientdb-0.0.20-jruby lib/orientdb/sql/update.rb
orientdb-0.0.19-jruby lib/orientdb/sql/update.rb
orientdb-0.0.17-jruby lib/orientdb/sql/update.rb
orientdb-0.0.16-jruby lib/orientdb/sql/update.rb
orientdb-0.0.15-jruby lib/orientdb/sql/update.rb
orientdb-0.0.14-jruby lib/orientdb/sql/update.rb