diff --git a/lib/mysql_framework/sql_column.rb b/lib/mysql_framework/sql_column.rb index 1f06562..d5d6618 100644 --- a/lib/mysql_framework/sql_column.rb +++ b/lib/mysql_framework/sql_column.rb @@ -50,5 +50,15 @@ def lte(value) def as(name) "#{self} as `#{name}`" end + + # This method is called to create a LIKE condition for this column. + def like(value) + SqlCondition.new(column: to_s, comparison: 'LIKE', value: value) + end + + # This method is called to create a NOT LIKE condition for this column. + def not_like(value) + SqlCondition.new(column: to_s, comparison: 'NOT LIKE', value: value) + end end end diff --git a/lib/mysql_framework/version.rb b/lib/mysql_framework/version.rb index 8abd09c..da7ffed 100644 --- a/lib/mysql_framework/version.rb +++ b/lib/mysql_framework/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MysqlFramework - VERSION = '0.0.11' + VERSION = '0.0.12' end diff --git a/spec/lib/mysql_framework/sql_column_spec.rb b/spec/lib/mysql_framework/sql_column_spec.rb index b1fbc27..0e2c042 100644 --- a/spec/lib/mysql_framework/sql_column_spec.rb +++ b/spec/lib/mysql_framework/sql_column_spec.rb @@ -68,4 +68,20 @@ expect(subject.as('v')).to eq('`gems`.`version` as `v`') end end + + describe '#like' do + it 'returns a SqlCondition for the comparison' do + condition = subject.like('%foo%') + expect(condition).to be_a(MysqlFramework::SqlCondition) + expect(condition.to_s).to eq('`gems`.`version` LIKE ?') + end + end + + describe '#not_like' do + it 'returns a SqlCondition for the comparison' do + condition = subject.not_like('%foo%') + expect(condition).to be_a(MysqlFramework::SqlCondition) + expect(condition.to_s).to eq('`gems`.`version` NOT LIKE ?') + end + end end