Sha256: 52eea8fbe6897094a673e083dd5bf1b67580b055cfdceb93d4d430150b486fc2

Contents?: true

Size: 1.95 KB

Versions: 20

Compression:

Stored size: 1.95 KB

Contents

module Rgviz
  class MySqlAdapter
    def accept_scalar_function_column(node, visitor)
      case node.function
      when ScalarFunctionColumn::Year
        visitor << "year("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Month
        visitor << "month("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Day
        visitor << "day("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Hour
        visitor << "hour("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Minute
        visitor << "minute("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Second
        visitor << "second("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Millisecond
        raise NotSupported.new "The millisecond function is not supported"
      when ScalarFunctionColumn::Quarter
        visitor << "quarter("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::DayOfWeek
        visitor << "dayofweek("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Now
        visitor << "now()"
      when ScalarFunctionColumn::DateDiff
        visitor << "datediff("
        node.arguments[0].accept visitor
        visitor << ","
        node.arguments[1].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::ToDate
        visitor << "date_format("
        node.arguments[0].accept visitor
        visitor << ", '%Y-%m-%d')"
      when ScalarFunctionColumn::Upper
        visitor << "upper("
        node.arguments[0].accept visitor
        visitor << ")"
      when ScalarFunctionColumn::Lower
        visitor << "lower("
        node.arguments[0].accept visitor
        visitor << ")"
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
rgviz-rails-0.30 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.29 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.28 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.26 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.25 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.23 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.22 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.21 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.20 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.19 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.18 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.17 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.16 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.15 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.14 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.13 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.12 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.11 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.10 lib/rgviz_rails/adapters/mysql_adapter.rb
rgviz-rails-0.9 lib/rgviz_rails/adapters/mysql_adapter.rb