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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.version +1 -1
  3. data/lib/adapters/sequel.rb +11 -33
  4. data/lib/typero.rb +8 -189
  5. data/lib/typero/params.rb +126 -0
  6. data/lib/typero/schema.rb +154 -0
  7. data/lib/typero/type/type.rb +125 -0
  8. data/lib/typero/type/types/boolean_type.rb +26 -0
  9. data/lib/typero/type/types/currency_type.rb +21 -0
  10. data/lib/typero/type/types/date_type.rb +35 -0
  11. data/lib/typero/type/types/datetime_type.rb +16 -0
  12. data/lib/typero/type/types/email_type.rb +20 -0
  13. data/lib/typero/type/types/float_type.rb +24 -0
  14. data/lib/typero/type/types/hash_type.rb +31 -0
  15. data/lib/typero/type/types/image_type.rb +22 -0
  16. data/lib/typero/type/types/integer_type.rb +16 -0
  17. data/lib/typero/type/types/label_type.rb +20 -0
  18. data/lib/typero/type/types/locale_type.rb +13 -0
  19. data/lib/typero/type/types/model_type.rb +23 -0
  20. data/lib/typero/type/{oib.rb → types/oib_type.rb} +16 -18
  21. data/lib/typero/type/types/point_type.rb +25 -0
  22. data/lib/typero/type/types/string_type.rb +20 -0
  23. data/lib/typero/type/types/text_type.rb +10 -0
  24. data/lib/typero/type/types/time_type.rb +5 -0
  25. data/lib/typero/type/types/timezone_type.rb +15 -0
  26. data/lib/typero/type/types/url_type.rb +13 -0
  27. data/lib/typero/typero.rb +98 -0
  28. metadata +33 -27
  29. data/lib/typero/type.rb +0 -32
  30. data/lib/typero/type/array.rb +0 -55
  31. data/lib/typero/type/boolean.rb +0 -16
  32. data/lib/typero/type/currency.rb +0 -17
  33. data/lib/typero/type/date.rb +0 -6
  34. data/lib/typero/type/datetime.rb +0 -6
  35. data/lib/typero/type/email.rb +0 -27
  36. data/lib/typero/type/float.rb +0 -27
  37. data/lib/typero/type/geography.rb +0 -13
  38. data/lib/typero/type/hash.rb +0 -18
  39. data/lib/typero/type/integer.rb +0 -25
  40. data/lib/typero/type/label.rb +0 -20
  41. data/lib/typero/type/point.rb +0 -25
  42. data/lib/typero/type/string.rb +0 -29
  43. data/lib/typero/type/text.rb +0 -7
  44. data/lib/typero/type/url.rb +0 -20
@@ -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
-
@@ -1,13 +0,0 @@
1
- # Posrgre geography data type
2
- # covert google loc to field, auto fix other values
3
-
4
- class Typero::GeographyType < Typero::Type
5
- def default
6
- false
7
- end
8
-
9
- def db_field
10
- [:geography]
11
- end
12
- end
13
-
@@ -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
-
@@ -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
-
@@ -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
@@ -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
-
@@ -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
-
@@ -1,7 +0,0 @@
1
- class Typero::TextType < Typero::StringType
2
- def db_field
3
- opts = {}
4
- opts[:null] = false if @opts[:req]
5
- [:text, opts]
6
- end
7
- end
@@ -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
-