typero 0.5.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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
-