Class: AnbtSql::Rule
- Inherits:
-
Object
- Object
- AnbtSql::Rule
- Includes:
- StringUtil
- Defined in:
- lib/anbt-sql-formatter/rule.rb
Constant Summary collapse
- KEYWORD_NONE =
キーワードの変換規則: 何もしない
0- KEYWORD_UPPER_CASE =
キーワードの変換規則: 大文字にする
1- KEYWORD_LOWER_CASE =
キーワードの変換規則: 小文字にする
2
Instance Attribute Summary collapse
-
#function_names ⇒ Object
Returns the value of attribute function_names.
-
#indent_string ⇒ Object
Returns the value of attribute indent_string.
-
#keyword ⇒ Object
Returns the value of attribute keyword.
-
#kw_minus1_indent_nl_x_plus1_indent ⇒ Object
Returns the value of attribute kw_minus1_indent_nl_x_plus1_indent.
-
#kw_multi_words ⇒ Object
Returns the value of attribute kw_multi_words.
-
#kw_nl_x ⇒ Object
Returns the value of attribute kw_nl_x.
-
#kw_nl_x_plus1_indent ⇒ Object
Returns the value of attribute kw_nl_x_plus1_indent.
-
#kw_plus1_indent_x_nl ⇒ Object
nl: New Line x: the keyword.
-
#space_after_comma ⇒ Object
Returns the value of attribute space_after_comma.
Instance Method Summary collapse
- #function?(name) ⇒ Boolean
-
#initialize ⇒ Rule
constructor
A new instance of Rule.
Methods included from StringUtil
Constructor Details
#initialize ⇒ Rule
Returns a new instance of Rule.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/anbt-sql-formatter/rule.rb', line 45 def initialize # キーワードの変換規則. @keyword = KEYWORD_UPPER_CASE # インデントの文字列. 設定は自由入力とする。 # 通常は " ", " ", "\t" のいずれか。 @indent_string = " " @space_after_comma = false # __foo # ____KW @kw_plus1_indent_x_nl = %w(INSERT INTO CREATE DROP TRUNCATE TABLE CASE) # ____foo # __KW # ____bar @kw_minus1_indent_nl_x_plus1_indent = %w(FROM WHERE SET HAVING) @kw_minus1_indent_nl_x_plus1_indent.concat ["ORDER BY", "GROUP BY"] # __foo # ____KW @kw_nl_x_plus1_indent = %w(ON USING) # __foo # __KW @kw_nl_x = %w(OR THEN ELSE) # @kw_nl_x = %w(OR WHEN ELSE) @kw_multi_words = ["ORDER BY", "GROUP BY"] # 関数の名前。 # Java版は初期値 null @function_names = [ # getNumericFunctions "ABS", "ACOS", "ASIN", "ATAN", "ATAN2", "BIT_COUNT", "CEILING", "COS", "COT", "DEGREES", "EXP", "FLOOR", "LOG", "LOG10", "MAX", "MIN", "MOD", "PI", "POW", "POWER", "RADIANS", "RAND", "ROUND", "SIN", "SQRT", "TAN", "TRUNCATE", # getStringFunctions "ASCII", "BIN", "BIT_LENGTH", "CHAR", "CHARACTER_LENGTH", "CHAR_LENGTH", "CONCAT", "CONCAT_WS", "CONV", "ELT", "EXPORT_SET", "FIELD", "FIND_IN_SET", "HEX,INSERT", "INSTR", "LCASE", "LEFT", "LENGTH", "LOAD_FILE", "LOCATE", "LOCATE", "LOWER", "LPAD", "LTRIM", "MAKE_SET", "MATCH", "MID", "OCT", "OCTET_LENGTH", "ORD", "POSITION", "QUOTE", "REPEAT", "REPLACE", "REVERSE", "RIGHT", "RPAD", "RTRIM", "SOUNDEX", "SPACE", "STRCMP", "SUBSTRING", "SUBSTRING", "SUBSTRING", "SUBSTRING", "SUBSTRING_INDEX", "TRIM", "UCASE", "UPPER", # getSystemFunctions "DATABASE", "USER", "SYSTEM_USER", "SESSION_USER", "PASSWORD", "ENCRYPT", "LAST_INSERT_ID", "VERSION", # getTimeDateFunctions "DAYOFWEEK", "WEEKDAY", "DAYOFMONTH", "DAYOFYEAR", "MONTH", "DAYNAME", "MONTHNAME", "QUARTER", "WEEK", "YEAR", "HOUR", "MINUTE", "SECOND", "PERIOD_ADD", "PERIOD_DIFF", "TO_DAYS", "FROM_DAYS", "DATE_FORMAT", "TIME_FORMAT", "CURDATE", "CURRENT_DATE", "CURTIME", "CURRENT_TIME", "NOW", "SYSDATE", "CURRENT_TIMESTAMP", "UNIX_TIMESTAMP", "FROM_UNIXTIME", "SEC_TO_TIME", "TIME_TO_SEC" ] end |
Instance Attribute Details
#function_names ⇒ Object
Returns the value of attribute function_names.
25 26 27 |
# File 'lib/anbt-sql-formatter/rule.rb', line 25 def function_names @function_names end |
#indent_string ⇒ Object
Returns the value of attribute indent_string.
25 26 27 |
# File 'lib/anbt-sql-formatter/rule.rb', line 25 def indent_string @indent_string end |
#keyword ⇒ Object
Returns the value of attribute keyword.
25 26 27 |
# File 'lib/anbt-sql-formatter/rule.rb', line 25 def keyword @keyword end |
#kw_minus1_indent_nl_x_plus1_indent ⇒ Object
Returns the value of attribute kw_minus1_indent_nl_x_plus1_indent.
31 32 33 |
# File 'lib/anbt-sql-formatter/rule.rb', line 31 def kw_minus1_indent_nl_x_plus1_indent @kw_minus1_indent_nl_x_plus1_indent end |
#kw_multi_words ⇒ Object
Returns the value of attribute kw_multi_words.
26 27 28 |
# File 'lib/anbt-sql-formatter/rule.rb', line 26 def kw_multi_words @kw_multi_words end |
#kw_nl_x ⇒ Object
Returns the value of attribute kw_nl_x.
32 33 34 |
# File 'lib/anbt-sql-formatter/rule.rb', line 32 def kw_nl_x @kw_nl_x end |
#kw_nl_x_plus1_indent ⇒ Object
Returns the value of attribute kw_nl_x_plus1_indent.
33 34 35 |
# File 'lib/anbt-sql-formatter/rule.rb', line 33 def kw_nl_x_plus1_indent @kw_nl_x_plus1_indent end |
#kw_plus1_indent_x_nl ⇒ Object
nl: New Line x: the keyword
30 31 32 |
# File 'lib/anbt-sql-formatter/rule.rb', line 30 def kw_plus1_indent_x_nl @kw_plus1_indent_x_nl end |
#space_after_comma ⇒ Object
Returns the value of attribute space_after_comma.
25 26 27 |
# File 'lib/anbt-sql-formatter/rule.rb', line 25 def space_after_comma @space_after_comma end |
Instance Method Details
#function?(name) ⇒ Boolean
110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/anbt-sql-formatter/rule.rb', line 110 def function?(name) if (@function_names == nil) return false end for i in 0...(@function_names.length) if (equals_ignore_case(@function_names[i], name)) return true end end return false end |