lib/polars/string_expr.rb in polars-df-0.1.0 vs lib/polars/string_expr.rb in polars-df-0.1.1

- old
+ new

@@ -4,14 +4,131 @@ def initialize(expr) self._rbexpr = expr._rbexpr end + # def strptime + # end + def lengths Utils.wrap_expr(_rbexpr.str_lengths) end + def n_chars + Utils.wrap_expr(_rbexpr.str_n_chars) + end + + def concat(delimiter = "-") + Utils.wrap_expr(_rbexpr.str_concat(delimiter)) + end + + def to_uppercase + Utils.wrap_expr(_rbexpr.str_to_uppercase) + end + + def to_lowercase + Utils.wrap_expr(_rbexpr.str_to_lowercase) + end + + def strip(matches = nil) + if !matches.nil? && matches.length > 1 + raise ArgumentError, "matches should contain a single character" + end + Utils.wrap_expr(_rbexpr.str_strip(matches)) + end + + def lstrip(matches = nil) + if !matches.nil? && matches.length > 1 + raise ArgumentError, "matches should contain a single character" + end + Utils.wrap_expr(_rbexpr.str_lstrip(matches)) + end + + def rstrip(matches = nil) + if !matches.nil? && matches.length > 1 + raise ArgumentError, "matches should contain a single character" + end + Utils.wrap_expr(_rbexpr.str_rstrip(matches)) + end + + def zfill(alignment) + Utils.wrap_expr(_rbexpr.str_zfill(alignment)) + end + + def ljust(width, fillchar = " ") + Utils.wrap_expr(_rbexpr.str_ljust(width, fillchar)) + end + + def rjust(width, fillchar = " ") + Utils.wrap_expr(_rbexpr.str_rjust(width, fillchar)) + end + def contains(pattern, literal: false) Utils.wrap_expr(_rbexpr.str_contains(pattern, literal)) + end + + def ends_with(sub) + Utils.wrap_expr(_rbexpr.str_ends_with(sub)) + end + + def starts_with(sub) + Utils.wrap_expr(_rbexpr.str_starts_with(sub)) + end + + # def json_path_match + # end + + # def decode + # end + + # def encode + # end + + def extract(pattern, group_index: 1) + Utils.wrap_expr(_rbexpr.str_extract(pattern, group_index)) + end + + def extract_all(pattern) + Utils.wrap_expr(_rbexpr.str_extract_all(pattern)) + end + + def count_match(pattern) + Utils.wrap_expr(_rbexpr.count_match(pattern)) + end + + def split(by, inclusive: false) + if inclusive + Utils.wrap_expr(_rbexpr.str_split_inclusive(by)) + else + Utils.wrap_expr(_rbexpr.str_split(by)) + end + end + + def split_exact(by, n, inclusive: false) + if inclusive + Utils.wrap_expr(_rbexpr.str_split_exact_inclusive(by, n)) + else + Utils.wrap_expr(_rbexpr.str_split_exact(by, n)) + end + end + + def splitn(by, n) + Utils.wrap_expr(_rbexpr.str_splitn(by, n)) + end + + def replace(pattern, literal: false) + pattern = Utils.expr_to_lit_or_expr(pattern, str_to_lit: true) + value = Utils.expr_to_lit_or_expr(value, str_to_lit: true) + Utils.wrap_expr(_rbexpr.str_replace(pattern._rbexpr, value._rbexpr, literal)) + end + + def replace_all(pattern, literal: false) + pattern = Utils.expr_to_lit_or_expr(pattern, str_to_lit: true) + value = Utils.expr_to_lit_or_expr(value, str_to_lit: true) + Utils.wrap_expr(_rbexpr.str_replace_all(pattern._rbexpr, value._rbexpr, literal)) + end + + def slice(offset, length = nil) + Utils.wrap_expr(_rbexpr.str_slice(offset, length)) end end end