arel_extensions 0.8.6 → 0.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d0b1c534a245cecea4ec121f0ab0744a8f2efdb
4
- data.tar.gz: d1ee62f0e19d702485656fd16ec3ed99b8608fc2
3
+ metadata.gz: e8d7cc16253e73e976d81b8beb558c2041c2915f
4
+ data.tar.gz: 7ff4c6640d063ef79b6ada768ae7b57cb9bf4dd4
5
5
  SHA512:
6
- metadata.gz: 152b5eafbeea38f4216436656d6e02a099bdeeed44b7f217ea9369ecf412ea32bcf130f577c1f0fcb5d37b6c267877a33b23963a1b9479c2faf2c4b67c7e5504
7
- data.tar.gz: d7d5ce6cffcd349cfd6033fc2b2d11d349f5081cdde32b514e884e900a1a0dc25cd89373f42baefa9a7cf1a1d3a91d6573b13153af2804847f2a5b9d3c269179
6
+ metadata.gz: 2b2748e84a31a944bc2a835036ff81be4528d3a85940ea34ee6d65389bf86c5c67230ec7dea7c726375395733da138cfd80920463475a54c4e97abc024f3cd76
7
+ data.tar.gz: 7779b7ef80ab54c3f08e1bf3016d0e9311393576f18be74d5795d7e86d8fc1390afaf12f6d9271cb47e0a5a6e57e947eafb204d9a06ddae5ae9dae04bf278c9f
data/Gemfile CHANGED
@@ -3,13 +3,18 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  group :test do
6
- gem "sqlite3", :platforms => [:ruby, :mswin, :mingw]
7
- gem "mysql2", :platforms => [:ruby, :mswin, :mingw]
6
+ gem "sqlite3", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
7
+ gem "mysql2", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
8
+ gem "pg", :platforms => [:mri, :mingw, :x64_mingw]
9
+
8
10
  gem "jdbc-sqlite3", :platforms => :jruby
9
11
  gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
10
12
  gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
11
13
  gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
12
14
 
15
+ gem "tiny_tds", :platforms => [:mri, :mingw, :x64_mingw]
16
+ gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
17
+
13
18
  gem 'activesupport', '~> 4.0'
14
19
  gem 'activemodel', '~> 4.0'
15
20
  gem 'activerecord', '~> 4.0'
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # Arel Extensions
2
2
 
3
3
  [![Build Status](https://secure.travis-ci.org/Faveod/arel-extensions.svg)](http://travis-ci.org/Faveod/arel-extensions)
4
-
4
+ [![Latest Release](https://img.shields.io/gem/v/arel_extensions.svg)](https://rubygems.org/gems/arel_extensions)
5
+ ![](http://img.shields.io/badge/license-MIT-brightgreen.svg)
6
+ ![](https://ruby-gem-downloads-badge.herokuapp.com/arel_extensions?type=total)
7
+ ![](https://ruby-gem-downloads-badge.herokuapp.com/arel_extensions?label=downloads-current-version)
5
8
 
6
9
  Arel Extensions adds shortcuts, fixes and new ORM mappings (ruby to SQL) to Arel.
7
10
  It aims to ensure pure ruby syntax for the biggest number of usual cases.
@@ -29,6 +32,9 @@ t is an Arel::Table for table my_table
29
32
  # => my_table.nb > 42
30
33
  ```
31
34
 
35
+ Other operators : <, >=, <=, =~
36
+
37
+
32
38
  ## Maths
33
39
 
34
40
  Currently in Arel:
@@ -57,8 +63,11 @@ Other functions : ABS, RAND, ROUND, FLOOR, CEIL, FORMAT
57
63
  (t[:name] + ' append').to_sql
58
64
  # => CONCAT(my_table.name, ' append')
59
65
 
60
- (t[:name].if_null('default')).to_sql
61
- # => ISNULL(my_table.name, 'default')
66
+ (t[:name].coalesce('default')).to_sql
67
+ # => COALESCE(my_table.name, 'default')
68
+
69
+ (t[:name].blank).to_sql
70
+ # => TRIM(TRIM(TRIM(COALESCE(my_table.name, '')), '\t'), '\n') = ''
62
71
 
63
72
  (t[:name] =~ /\A[a-d_]+/).to_sql
64
73
  # => my_table.name REGEXP '\^[a-d_]+'
@@ -96,6 +105,9 @@ t[:birthdate].month.to_sql
96
105
 
97
106
  t[:birthdate].year.to_sql
98
107
  # => YEAR(my_table.birthdate)
108
+
109
+ t[:birthdate].format('%Y-%m-%d').to_sql
110
+ # => DATE_FORMAT(my_table.birthdate, '%Y-%m-%d')
99
111
  ```
100
112
 
101
113
  ## Unions (in next version)
data/TODO ADDED
@@ -0,0 +1,26 @@
1
+ Code quality:
2
+ - codeclimate.com
3
+ - coveralls.io
4
+ - gemnasium
5
+ - inch-ci.org
6
+ - appveyor.com (windows)
7
+ - hakiri.io
8
+
9
+ [![Gem Version](https://img.shields.io/gem/v/arel_extensions.svg)][gem]
10
+ [![Build Status](https://img.shields.io/travis/faveod/arel_extensions.svg)][travis]
11
+ [![Dependency Status](https://img.shields.io/gemnasium/faveod/arel_extensions.svg)][https://gemnasium.com/faveod/arel_extensions]
12
+ [![Code Climate](https://img.shields.io/codeclimate/github/faveod/arel_extensions.svg)][https://codeclimate.com/github/faveod/arel_extensions]
13
+ [![Coverage Status](https://img.shields.io/coveralls/faveod/arel_extensions.svg)][https://coveralls.io/r/faveod/arel_extensions]
14
+ [![Inline docs](http://inch-ci.org/github/faveod/arel_extensions.svg)][https://inch-ci.org/github/faveod/https://gemnasium.com/faveod/arel_extensions]
15
+ [![security](https://hakiri.io/github/faveod/arel_extensions/master.svg)](https://hakiri.io/github/faveod/arel_extensions/master)
16
+ [![codebeat](https://codebeat.co/badges/<change>)](https://codebeat.co/projects/github-com-faveod-arel_extensions)
17
+
18
+
19
+ New features:
20
+ - POSIX format numbers (%.2f)
21
+ - easy unions
22
+ - cast
23
+
24
+ Tests improvements:
25
+ - SQL Server
26
+ - DB2
data/appveyor.yml ADDED
@@ -0,0 +1,43 @@
1
+ version: "{build}"
2
+
3
+ cache:
4
+ - vendor/bundle
5
+
6
+ branches:
7
+ only:
8
+ - master
9
+
10
+ services:
11
+ - mssql2014
12
+
13
+
14
+ install:
15
+ - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
16
+ - bundle config --local path vendor/bundle
17
+ - bundle install
18
+
19
+ # Disable normal Windows builds in favor of our test script.
20
+ build: off
21
+
22
+
23
+ before_test:
24
+ - ruby -v
25
+ - gem -v
26
+ - bundle -v
27
+
28
+ test_script:
29
+ - ruby --version
30
+ - gem --version
31
+ - bundler --version
32
+ - bundle exec rake test
33
+ - ps: Start-Service 'MSSQL$SQL2014'
34
+ - timeout /t 4 /nobreak > NUL
35
+ - bundle exec rake test:mssql
36
+
37
+ environment:
38
+ matrix:
39
+ - RUBY_VERSION: 200
40
+ - RUBY_VERSION: 21
41
+ - RUBY_VERSION: 22
42
+ - RUBY_VERSION: 23
43
+ - RUBY_VERSION: "23-x64"
@@ -4,7 +4,7 @@ $:.push File.expand_path("../lib", __FILE__)
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "arel_extensions"
7
- s.version = '0.8.6'
7
+ s.version = '0.8.7'
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Yann Azoury", "Mathilde Pechdimaldjian", "Félix Bellanger"]
10
10
  s.email = ["yann.azoury@faveod.com", "mathilde.pechdimaldjian@gmail.com", "felix.bellanger@faveod.com"]
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
22
  s.require_paths = ["lib"]
23
23
 
24
- s.add_dependency('arel', '>= 6.0')
24
+ s.add_dependency('arel', '~> 6.0')
25
25
 
26
26
  s.add_development_dependency('minitest', '~> 5.9')
27
27
  s.add_development_dependency('rdoc', '~> 4.0')
@@ -7,11 +7,14 @@ group :development, :test do
7
7
  gem 'activemodel', '~> 4.0'
8
8
  gem 'activerecord', '~> 4.0'
9
9
 
10
- gem "sqlite3", :platforms => [:ruby, :mswin, :mingw]
11
- gem "mysql2", :platforms => [:ruby, :mswin, :mingw]
12
- gem "pg", :platforms => [:ruby, :mswin, :mingw]
10
+ gem "sqlite3", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
11
+ gem "mysql2", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
12
+ gem "pg", :platforms => [:mri, :mingw, :x64_mingw]
13
13
 
14
- gem 'ruby-oci8', :platforms => [:ruby, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
14
+ gem "tiny_tds", :platforms => [:mri, :mingw, :x64_mingw]
15
+ gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
16
+
17
+ gem 'ruby-oci8', :platforms => [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
15
18
  gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0' if ENV.has_key? 'ORACLE_HOME'
16
19
 
17
20
  # for JRuby
@@ -7,11 +7,14 @@ group :development, :test do
7
7
  gem 'activemodel', '~> 5'
8
8
  gem 'activerecord', '~> 5'
9
9
 
10
- gem "sqlite3", :platforms => [:ruby, :mswin, :mingw]
11
- gem "mysql2", :platforms => [:ruby, :mswin, :mingw]
12
- gem "pg", :platforms => [:ruby, :mswin, :mingw]
10
+ gem "sqlite3", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
11
+ gem "mysql2", :platforms => [:mri, :mswin, :mingw, :x64_mingw]
12
+ gem "pg", :platforms => [:mri, :mingw, :x64_mingw]
13
13
 
14
- gem 'ruby-oci8', :platforms => [:ruby, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
14
+ gem "tiny_tds", :platforms => [:mri, :mingw, :x64_mingw]
15
+ # gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
16
+
17
+ gem 'ruby-oci8', :platforms => [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
15
18
  gem 'activerecord-oracle_enhanced-adapter', '~> 1.7.0' if ENV.has_key? 'ORACLE_HOME'
16
19
 
17
20
  # for JRuby
@@ -0,0 +1,11 @@
1
+ module ArelExtensions
2
+ module Nodes
3
+ class Blank < Function
4
+ @@return_type = :boolean
5
+
6
+ def initialize expr
7
+ super [expr.first.coalesce('').trim.trim("\t").trim("\n")]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -15,5 +15,12 @@ module ArelExtensions
15
15
  end
16
16
 
17
17
  end
18
+
19
+ class Ltrim < Trim
20
+ end
21
+
22
+ class Rtrim < Trim
23
+ end
24
+
18
25
  end
19
26
  end
@@ -6,8 +6,7 @@ require 'arel_extensions/nodes/find_in_set'
6
6
  require 'arel_extensions/nodes/replace'
7
7
  require 'arel_extensions/nodes/soundex'
8
8
  require 'arel_extensions/nodes/trim'
9
- require 'arel_extensions/nodes/ltrim'
10
- require 'arel_extensions/nodes/rtrim'
9
+ require 'arel_extensions/nodes/blank'
11
10
  require 'arel_extensions/nodes/format'
12
11
 
13
12
  module ArelExtensions
@@ -68,17 +67,21 @@ module ArelExtensions
68
67
  end
69
68
 
70
69
  #Function returns a string after removing left, right or the both prefixes or suffixes int argument
71
- def trim other
70
+ def trim other = ' '
72
71
  ArelExtensions::Nodes::Trim.new [self, other]
73
72
  end
74
73
 
75
- def ltrim other
74
+ def ltrim other = ' '
76
75
  ArelExtensions::Nodes::Ltrim.new [self, other]
77
76
  end
78
77
 
79
- def rtrim other
78
+ def rtrim other = ' '
80
79
  ArelExtensions::Nodes::Rtrim.new [self, other]
81
80
  end
82
81
 
82
+ def blank
83
+ ArelExtensions::Nodes::Blank.new [self]
84
+ end
85
+
83
86
  end
84
87
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module ArelExtensions
3
- VERSION = "0.8.6".freeze
3
+ VERSION = "0.8.7".freeze
4
4
  end
@@ -30,7 +30,7 @@ module ArelExtensions
30
30
  else
31
31
  collector = visit o.left, collector
32
32
  collector << " + '"
33
- collector << "#{o.right}'"
33
+ collector = visit o.right, collector
34
34
  collector
35
35
  end
36
36
  end
@@ -38,13 +38,8 @@ module ArelExtensions
38
38
  def visit_ArelExtensions_Nodes_DateDiff o, collector
39
39
  collector << "DATEDIFF(day,"
40
40
  collector = visit o.left, collector
41
- collector<< ","
42
- if(o.right.is_a?(Arel::Attributes::Attribute))
43
- collector = visit o.right, collector
44
- else
45
- collector<< "'#{o.right}'"
46
-
47
- end
41
+ collector << Arel::Visitors::MSSQL::COMMA
42
+ collector = visit o.right, collector
48
43
  collector << ")"
49
44
  collector
50
45
  end
@@ -62,11 +57,7 @@ module ArelExtensions
62
57
  collector << "YEAR("
63
58
  end
64
59
  #visit right
65
- if(o.right.is_a?(Arel::Attributes::Attribute))
66
- collector = visit o.right, collector
67
- else
68
- collector << "'#{o.right}'"
69
- end
60
+ collector = visit o.right, collector
70
61
  collector << ")"
71
62
  collector
72
63
  end
@@ -82,10 +73,10 @@ module ArelExtensions
82
73
  def visit_ArelExtensions_Nodes_Locate o, collector
83
74
  collector << "CHARINDEX("
84
75
  collector = visit o.val, collector
85
- collector << ","
86
- collector = visit o.expr, collector
87
- collector << ")"
88
- collector
76
+ collector << Arel::Visitors::MSSQL::COMMA
77
+ collector = visit o.expr, collector
78
+ collector << ")"
79
+ collector
89
80
  end
90
81
 
91
82
  def visit_ArelExtensions_Nodes_Format o, collector
@@ -116,22 +107,15 @@ module ArelExtensions
116
107
  end
117
108
 
118
109
  def visit_ArelExtensions_Nodes_Replace o, collector
119
- collector << "REPLACE("
120
- collector = visit o.expr,collector
121
- collector << ","
122
- if(o.left.is_a?(Arel::Attributes::Attribute))
123
- collector = visit o.left, collector
124
- else
125
- collector << "'#{o.left}'"
126
- end
127
- collector << ","
128
- if(o.right.is_a?(Arel::Attributes::Attribute))
129
- collector = visit o.right, collector
130
- else
131
- collector << "'#{o.right}'"
132
- end
133
- collector << ")"
134
- collector
110
+ collector << "REPLACE("
111
+ collector = visit o.expr,collector
112
+ collector << Arel::Visitors::MSSQL::COMMA
113
+ collector = visit o.left, collector
114
+
115
+ collector << Arel::Visitors::MSSQL::COMMA
116
+ collector = visit o.right, collector
117
+ collector << ")"
118
+ collector
135
119
  end
136
120
 
137
121
 
@@ -138,13 +138,6 @@ module ArelExtensions
138
138
  collector
139
139
  end
140
140
 
141
- def visit_ArelExtensions_Nodes_Soundex o, collector
142
- collector << "SOUNDEX("
143
- collector = visit o.expr, collector
144
- collector << ")"
145
- collector
146
- end
147
-
148
141
  def visit_ArelExtensions_Nodes_Locate o, collector
149
142
  collector << "INSTR("
150
143
  o.expressions.each_with_index { |arg, i|
@@ -155,11 +148,22 @@ module ArelExtensions
155
148
  collector
156
149
  end
157
150
 
158
- def visit_ArelExtensions_Nodes_Trim o , collector
151
+ def visit_ArelExtensions_Nodes_Trim o, collector
159
152
  collector << 'TRIM(' # BOTH
160
- collector = visit o.right, collector
153
+ case o.right.expr
154
+ when "\t"
155
+ collector << 'CHR(9)'
156
+ when "\n"
157
+ collector << 'CHR(10)'
158
+ when "\r"
159
+ collector << 'CHR(13)'
160
+ else
161
+ collector = visit o.right, collector
162
+ end
161
163
  collector << ' FROM '
164
+ collector << '(' if o.left.is_a? ArelExtensions::Nodes::Trim
162
165
  collector = visit o.left, collector
166
+ collector << ')' if o.left.is_a? ArelExtensions::Nodes::Trim
163
167
  collector << ")"
164
168
  collector
165
169
  end
@@ -182,6 +186,13 @@ module ArelExtensions
182
186
  collector
183
187
  end
184
188
 
189
+ def visit_ArelExtensions_Nodes_Blank o, collector
190
+ collector << '(CASE WHEN ('
191
+ collector = visit o.left, collector
192
+ collector << " = '') THEN 1 ELSE 0 END)"
193
+ collector
194
+ end
195
+
185
196
  def visit_ArelExtensions_Nodes_DateAdd o, collector
186
197
  collector << '('
187
198
  collector = visit o.left, collector
@@ -196,7 +207,7 @@ module ArelExtensions
196
207
  collector = visit o.left, collector
197
208
  collector << Arel::Visitors::Oracle::COMMA
198
209
 
199
- f = o.iso_format.dup
210
+ f = o.iso_format.gsub(/\ (\w+)/, ' "\1"')
200
211
  Arel::Visitors::Oracle::DATE_FORMAT_DIRECTIVES.each { |d, r| f.gsub!(d, r) }
201
212
  collector = visit Arel::Nodes.build_quoted(f), collector
202
213
 
@@ -152,6 +152,13 @@ module ArelExtensions
152
152
  collector
153
153
  end
154
154
 
155
+ def visit_ArelExtensions_Nodes_Blank o, collector
156
+ collector << '('
157
+ collector = visit o.left, collector
158
+ collector << " = '')"
159
+ collector
160
+ end
161
+
155
162
  def visit_ArelExtensions_Nodes_Format o, collector
156
163
  case o.col_type
157
164
  when :date, :datetime
data/test/database.yml CHANGED
@@ -37,4 +37,11 @@ jdbc-oracle:
37
37
  ibm_db:
38
38
  adapter: ibm_db
39
39
  username: travis
40
- database: arext_test
40
+ database: arext_test
41
+ mssql:
42
+ adapter: sqlserver
43
+ host: localhost
44
+ dataserver: localhost\SQL2014
45
+ database: master
46
+ username: sa
47
+ password: Password12!
@@ -212,13 +212,29 @@ module ArelExtensions
212
212
  end
213
213
 
214
214
  def test_trim
215
+ assert_equal "Myung", t(@myung, @name.trim)
215
216
  assert_equal "Myun", t(@myung, @name.rtrim("g"))
216
217
  assert_equal "yung", t(@myung, @name.ltrim("M"))
218
+ assert_equal "Myung", t(@myung, @name.trim.ltrim.rtrim)
217
219
  assert_equal "yung", t(@myung, (@name + "M").trim("M"))
218
220
  skip "Oracle does not accept multi char trim" if @env_db == 'oracle'
219
221
  assert_equal "", t(@myung, @name.rtrim(@name))
220
222
  end
221
223
 
224
+ def test_blank
225
+ if @env_db == 'postgresql'
226
+ assert_includes [false, 'f'], t(@myung, @name.blank) # depends of adapter
227
+ else
228
+ assert_equal 0, t(@myung, @name.blank)
229
+ end
230
+ skip "Oracle requires cast for CLOB" if @env_db == 'oracle' # comments is CLOB, CHAR expected
231
+ if @env_db == 'postgresql'
232
+ assert_includes [true, 't'], t(@myung, @comments.blank) # depends of adapter
233
+ else
234
+ assert_equal 1, t(@myung, @comments.blank)
235
+ end
236
+ end
237
+
222
238
  def test_format
223
239
  assert_equal '2016-05-23', t(@lucas, @created_at.format('%Y-%m-%d'))
224
240
  assert_equal '2014/03/03 12:42:00', t(@lucas, @updated_at.format('%Y/%m/%d %H:%M:%S'))
@@ -311,7 +327,7 @@ module ArelExtensions
311
327
 
312
328
  def test_wday
313
329
  d = Date.new(2016, 6, 26)
314
- assert_equal (@env_db == 'oracle' ? 2 : 1), t(@myung, @created_at.wday).to_i # monday
330
+ assert_equal(@env_db == 'oracle' ? 2 : 1, t(@myung, @created_at.wday).to_i) # monday
315
331
  assert_equal 0, User.select(d.wday).as("res").first.to_i
316
332
  end
317
333
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.6
4
+ version: 0.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury
@@ -10,20 +10,20 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-17 00:00:00.000000000 Z
13
+ date: 2016-09-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: arel
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '6.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '6.0'
29
29
  - !ruby/object:Gem::Dependency
@@ -90,6 +90,8 @@ files:
90
90
  - MIT-LICENSE.txt
91
91
  - README.md
92
92
  - Rakefile
93
+ - TODO
94
+ - appveyor.yml
93
95
  - arel_extensions.gemspec
94
96
  - functions.html
95
97
  - gemfiles/rails3.gemfile
@@ -110,6 +112,7 @@ files:
110
112
  - lib/arel_extensions/math_functions.rb
111
113
  - lib/arel_extensions/nodes.rb
112
114
  - lib/arel_extensions/nodes/abs.rb
115
+ - lib/arel_extensions/nodes/blank.rb
113
116
  - lib/arel_extensions/nodes/ceil.rb
114
117
  - lib/arel_extensions/nodes/coalesce.rb
115
118
  - lib/arel_extensions/nodes/concat.rb
@@ -122,12 +125,10 @@ files:
122
125
  - lib/arel_extensions/nodes/is_null.rb
123
126
  - lib/arel_extensions/nodes/length.rb
124
127
  - lib/arel_extensions/nodes/locate.rb
125
- - lib/arel_extensions/nodes/ltrim.rb
126
128
  - lib/arel_extensions/nodes/matches.rb
127
129
  - lib/arel_extensions/nodes/rand.rb
128
130
  - lib/arel_extensions/nodes/replace.rb
129
131
  - lib/arel_extensions/nodes/round.rb
130
- - lib/arel_extensions/nodes/rtrim.rb
131
132
  - lib/arel_extensions/nodes/soundex.rb
132
133
  - lib/arel_extensions/nodes/trim.rb
133
134
  - lib/arel_extensions/nodes/wday.rb
@@ -1,18 +0,0 @@
1
- module ArelExtensions
2
- module Nodes
3
- class Ltrim < Function
4
-
5
- def initialize expr
6
- tab = expr.map { |arg|
7
- convert_to_node(arg)
8
- }
9
- return super(tab)
10
- end
11
-
12
- def +(other)
13
- return ArelExtensions::Nodes::Concat.new(self.expressions + [other])
14
- end
15
-
16
- end
17
- end
18
- end
@@ -1,18 +0,0 @@
1
- module ArelExtensions
2
- module Nodes
3
- class Rtrim < Function
4
-
5
- def initialize expr
6
- tab = expr.map { |arg|
7
- convert_to_node(arg)
8
- }
9
- return super(tab)
10
- end
11
-
12
- def +(other)
13
- return ArelExtensions::Nodes::Concat.new(self.expressions + [other])
14
- end
15
-
16
- end
17
- end
18
- end