typero 0.5.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|