Commit 78ebbb225eea809d0db196e68699ef6eb0af5fbc
1 parent
4bb9f71a
Exists in
master
and in
23 other branches
ActionItem265: we are going to need some functions in the database to georeferencing plugins
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1642 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
39 additions
and
0 deletions
Show diff stats
config/environment.rb
| @@ -91,6 +91,9 @@ Tag.hierarchical = true | @@ -91,6 +91,9 @@ Tag.hierarchical = true | ||
| 91 | # several local libraries | 91 | # several local libraries |
| 92 | require 'noosfero' | 92 | require 'noosfero' |
| 93 | 93 | ||
| 94 | +# sqlite extensions to able to test/develop georeference with sqlite | ||
| 95 | +require 'sqlite_extension' | ||
| 96 | + | ||
| 94 | # locally-developed modules | 97 | # locally-developed modules |
| 95 | require 'acts_as_filesystem' | 98 | require 'acts_as_filesystem' |
| 96 | require 'acts_as_searchable' | 99 | require 'acts_as_searchable' |
| @@ -0,0 +1,17 @@ | @@ -0,0 +1,17 @@ | ||
| 1 | +if ActiveRecord::Base.connection.adapter_name =~ /^sqlite$/i | ||
| 2 | + | ||
| 3 | + database = ActiveRecord::Base.connection.raw_connection | ||
| 4 | + | ||
| 5 | + database.create_function('sin', 1, :numeric) do |func, value| | ||
| 6 | + func.set_result(Math.sin(value)) | ||
| 7 | + end | ||
| 8 | + | ||
| 9 | + database.create_function('cos', 1, :numeric) do |func, value| | ||
| 10 | + func.set_result(Math.cos(value)) | ||
| 11 | + end | ||
| 12 | + | ||
| 13 | + database.create_function('pow', 2, :numeric) do |func, base, exponent| | ||
| 14 | + func.set_result(base.to_f ** exponent.to_f) | ||
| 15 | + end | ||
| 16 | + | ||
| 17 | +end |
| @@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
| 2 | + | ||
| 3 | +# if this test is run without SQLite (e.g. with mysql or postgres), the tests | ||
| 4 | +# will just pass. The idea is to test our local extensions to SQLite. | ||
| 5 | +class SQliteExtensionTest < Test::Unit::TestCase | ||
| 6 | + | ||
| 7 | + should 'have sine function' do | ||
| 8 | + assert_in_delta 0.0, ActiveRecord::Base.connection.execute('select sin(3.14159265358979) as sin').first['sin'], 0.0001 | ||
| 9 | + end | ||
| 10 | + | ||
| 11 | + should 'have cosine function' do | ||
| 12 | + assert_in_delta -1.0, ActiveRecord::Base.connection.execute('select cos(3.14159265358979) as cos').first['cos'], 0.0001 | ||
| 13 | + end | ||
| 14 | + | ||
| 15 | + should 'have power function' do | ||
| 16 | + assert_in_delta 8.0, ActiveRecord::Base.connection.execute('select pow(2.0, 3.0) as result').first['result'], 0.0001 | ||
| 17 | + end | ||
| 18 | + | ||
| 19 | +end |