typero 0.5.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.version +1 -1
- data/lib/adapters/sequel.rb +11 -33
- data/lib/typero.rb +8 -189
- data/lib/typero/params.rb +126 -0
- data/lib/typero/schema.rb +154 -0
- data/lib/typero/type/type.rb +125 -0
- data/lib/typero/type/types/boolean_type.rb +26 -0
- data/lib/typero/type/types/currency_type.rb +21 -0
- data/lib/typero/type/types/date_type.rb +35 -0
- data/lib/typero/type/types/datetime_type.rb +16 -0
- data/lib/typero/type/types/email_type.rb +20 -0
- data/lib/typero/type/types/float_type.rb +24 -0
- data/lib/typero/type/types/hash_type.rb +31 -0
- data/lib/typero/type/types/image_type.rb +22 -0
- data/lib/typero/type/types/integer_type.rb +16 -0
- data/lib/typero/type/types/label_type.rb +20 -0
- data/lib/typero/type/types/locale_type.rb +13 -0
- data/lib/typero/type/types/model_type.rb +23 -0
- data/lib/typero/type/{oib.rb → types/oib_type.rb} +16 -18
- data/lib/typero/type/types/point_type.rb +25 -0
- data/lib/typero/type/types/string_type.rb +20 -0
- data/lib/typero/type/types/text_type.rb +10 -0
- data/lib/typero/type/types/time_type.rb +5 -0
- data/lib/typero/type/types/timezone_type.rb +15 -0
- data/lib/typero/type/types/url_type.rb +13 -0
- data/lib/typero/typero.rb +98 -0
- metadata +33 -27
- data/lib/typero/type.rb +0 -32
- data/lib/typero/type/array.rb +0 -55
- data/lib/typero/type/boolean.rb +0 -16
- data/lib/typero/type/currency.rb +0 -17
- data/lib/typero/type/date.rb +0 -6
- data/lib/typero/type/datetime.rb +0 -6
- data/lib/typero/type/email.rb +0 -27
- data/lib/typero/type/float.rb +0 -27
- data/lib/typero/type/geography.rb +0 -13
- data/lib/typero/type/hash.rb +0 -18
- data/lib/typero/type/integer.rb +0 -25
- data/lib/typero/type/label.rb +0 -20
- data/lib/typero/type/point.rb +0 -25
- data/lib/typero/type/string.rb +0 -29
- data/lib/typero/type/text.rb +0 -7
- data/lib/typero/type/url.rb +0 -20
data/lib/typero/type/float.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
class Typero::FloatType < Typero::Type
|
2
|
-
|
3
|
-
def set
|
4
|
-
@value = @value.to_f
|
5
|
-
end
|
6
|
-
|
7
|
-
def validate
|
8
|
-
raise TypeError, error_for(:min_length_error) % @opts[:min] if @opts[:min] && value < @opts[:min]
|
9
|
-
raise TypeError, error_for(:max_length_error) % @opts[:max] if @opts[:max] && value > @opts[:max]
|
10
|
-
end
|
11
|
-
|
12
|
-
def min_length_error
|
13
|
-
"min lenght is %s"
|
14
|
-
end
|
15
|
-
|
16
|
-
def max_length_error
|
17
|
-
"max lenght is %s"
|
18
|
-
end
|
19
|
-
|
20
|
-
def db_field
|
21
|
-
opts = {}
|
22
|
-
opts[:null] = false if @opts[:req]
|
23
|
-
[:float, opts]
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
data/lib/typero/type/hash.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
class Typero::HashType < Typero::Type
|
2
|
-
def default
|
3
|
-
{}
|
4
|
-
end
|
5
|
-
|
6
|
-
def validate
|
7
|
-
raise TypeError, error_for(:not_hash_type_error) unless @value.is_a?(Hash)
|
8
|
-
end
|
9
|
-
|
10
|
-
def not_hash_type_error
|
11
|
-
'value is not hash type'
|
12
|
-
end
|
13
|
-
|
14
|
-
def db_field
|
15
|
-
[:jsonb, {}]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
data/lib/typero/type/integer.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
class Typero::IntegerType < Typero::Type
|
2
|
-
def set
|
3
|
-
@value = @value.to_i
|
4
|
-
end
|
5
|
-
|
6
|
-
def validate
|
7
|
-
raise TypeError, error_for(:min_value_error) % [@opts[:min], @value] if @opts[:min] && @value < @opts[:min]
|
8
|
-
raise TypeError, error_for(:max_value_error) % [@opts[:max], @value] if @opts[:max] && @value > @opts[:max]
|
9
|
-
end
|
10
|
-
|
11
|
-
def min_value_error
|
12
|
-
'min is %s, got %s'
|
13
|
-
end
|
14
|
-
|
15
|
-
def max_value_error
|
16
|
-
'max is %s, got %s'
|
17
|
-
end
|
18
|
-
|
19
|
-
def db_field
|
20
|
-
opts = {}
|
21
|
-
opts[:null] = false if @opts[:req]
|
22
|
-
[:integer, opts]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
data/lib/typero/type/label.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
class Typero::LabelType < Typero::Type
|
2
|
-
def set
|
3
|
-
@value = @value.to_s.gsub(/\s+/,'-').gsub(/[^\w\-]/,'').gsub(/\-+/, '-')[0,30].downcase
|
4
|
-
end
|
5
|
-
|
6
|
-
def validate
|
7
|
-
raise TypeError, error_for(:unallowed_characters_error) unless @value =~ /^[\w\-]+$/
|
8
|
-
end
|
9
|
-
|
10
|
-
def unallowed_characters_error
|
11
|
-
'label is having unallowed characters'
|
12
|
-
end
|
13
|
-
|
14
|
-
def db_field
|
15
|
-
opts = {}
|
16
|
-
opts[:null] = false if @opts[:req]
|
17
|
-
opts[:limit] = 30
|
18
|
-
[:string, opts]
|
19
|
-
end
|
20
|
-
end
|
data/lib/typero/type/point.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
class Typero::PointType < Typero::Type
|
2
|
-
def set
|
3
|
-
if @value.present?
|
4
|
-
if @value.include?('/@')
|
5
|
-
point = @value.split('/@', 2).last.split(',')
|
6
|
-
@value = [point[0], point[1]].join(',')
|
7
|
-
end
|
8
|
-
|
9
|
-
unless @value.include?('POINT')
|
10
|
-
point = @value.sub(/,\s*/, ' ')
|
11
|
-
@value = 'SRID=4326;POINT(%s)' % point
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def validate
|
17
|
-
raise TypeError, error_for(:unallowed_characters_error) unless @value =~ /^SRID=4326;POINT\(/
|
18
|
-
end
|
19
|
-
|
20
|
-
def db_field
|
21
|
-
[:geography, {}]
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
data/lib/typero/type/string.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
class Typero::StringType < Typero::Type
|
2
|
-
def set
|
3
|
-
@value = @value.to_s unless @value.is_a?(String)
|
4
|
-
@value = @value.downcase if @opts[:downcase]
|
5
|
-
end
|
6
|
-
|
7
|
-
def validate
|
8
|
-
raise TypeError, error_for(:min_length_error) % [@opts[:min], @value.length] if @opts[:min] && @value.length < @opts[:min]
|
9
|
-
raise TypeError, error_for(:max_length_error) % [@opts[:max], @value.length] if @opts[:max] && @value.length > @opts[:max]
|
10
|
-
end
|
11
|
-
|
12
|
-
# ready for localization
|
13
|
-
|
14
|
-
def min_length_error
|
15
|
-
'min lenght is %s, you have %s'
|
16
|
-
end
|
17
|
-
|
18
|
-
def max_length_error
|
19
|
-
'max lenght is %s, you have %s'
|
20
|
-
end
|
21
|
-
|
22
|
-
def db_field
|
23
|
-
opts = {}
|
24
|
-
opts[:limit] = @opts[:max] || 255
|
25
|
-
opts[:null] = false if @opts[:req]
|
26
|
-
[:string, opts]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
data/lib/typero/type/text.rb
DELETED
data/lib/typero/type/url.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
class Typero::UrlType < Typero::Type
|
2
|
-
def set
|
3
|
-
@value = 'http://%s' % @value unless @value.include?('://')
|
4
|
-
end
|
5
|
-
|
6
|
-
def validate
|
7
|
-
raise TypeError, error_for(:not_starting_error) unless @value =~ /^https?:\/\/./
|
8
|
-
end
|
9
|
-
|
10
|
-
def not_starting_error
|
11
|
-
'URL is not starting with http'
|
12
|
-
end
|
13
|
-
|
14
|
-
def db_field
|
15
|
-
opts = {}
|
16
|
-
opts[:null] = false if @opts[:req]
|
17
|
-
[:string, opts]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|