arel_extensions 0.8.6 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
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