padrino-core 0.12.0 → 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/padrino-core.rb +4 -4
  3. data/lib/padrino-core/application.rb +6 -195
  4. data/lib/padrino-core/application/application_setup.rb +199 -0
  5. data/lib/padrino-core/application/routing.rb +66 -25
  6. data/lib/padrino-core/cli/base.rb +8 -5
  7. data/lib/padrino-core/cli/rake.rb +12 -9
  8. data/lib/padrino-core/loader.rb +1 -1
  9. data/lib/padrino-core/logger.rb +25 -0
  10. data/lib/padrino-core/mounter.rb +8 -3
  11. data/lib/padrino-core/reloader.rb +2 -2
  12. data/lib/padrino-core/server.rb +50 -17
  13. data/lib/padrino-core/version.rb +1 -1
  14. data/padrino-core.gemspec +2 -10
  15. data/test/fixtures/apps/demo_app.rb +7 -0
  16. data/test/fixtures/apps/demo_demo.rb +7 -0
  17. data/test/helper.rb +6 -37
  18. data/test/test_application.rb +12 -13
  19. data/test/test_core.rb +12 -13
  20. data/test/test_csrf_protection.rb +49 -23
  21. data/test/test_dependencies.rb +7 -7
  22. data/test/test_filters.rb +41 -17
  23. data/test/test_flash.rb +24 -24
  24. data/test/test_locale.rb +1 -1
  25. data/test/test_logger.rb +39 -27
  26. data/test/test_mounter.rb +34 -20
  27. data/test/test_reloader_complex.rb +5 -6
  28. data/test/test_reloader_simple.rb +23 -20
  29. data/test/test_reloader_system.rb +10 -7
  30. data/test/test_restful_routing.rb +1 -1
  31. data/test/test_router.rb +7 -7
  32. data/test/test_routing.rb +177 -141
  33. metadata +14 -53
  34. data/lib/padrino-core/application/rendering.rb +0 -325
  35. data/lib/padrino-core/application/rendering/extensions/erubis.rb +0 -68
  36. data/lib/padrino-core/application/rendering/extensions/haml.rb +0 -29
  37. data/lib/padrino-core/application/rendering/extensions/slim.rb +0 -21
  38. data/lib/padrino-core/locale/cs.yml +0 -33
  39. data/lib/padrino-core/locale/da.yml +0 -33
  40. data/lib/padrino-core/locale/de.yml +0 -33
  41. data/lib/padrino-core/locale/en.yml +0 -33
  42. data/lib/padrino-core/locale/es.yml +0 -33
  43. data/lib/padrino-core/locale/fr.yml +0 -33
  44. data/lib/padrino-core/locale/hu.yml +0 -33
  45. data/lib/padrino-core/locale/it.yml +0 -39
  46. data/lib/padrino-core/locale/ja.yml +0 -33
  47. data/lib/padrino-core/locale/lv.yml +0 -33
  48. data/lib/padrino-core/locale/nl.yml +0 -33
  49. data/lib/padrino-core/locale/no.yml +0 -33
  50. data/lib/padrino-core/locale/pl.yml +0 -33
  51. data/lib/padrino-core/locale/pt_br.yml +0 -39
  52. data/lib/padrino-core/locale/ro.yml +0 -33
  53. data/lib/padrino-core/locale/ru.yml +0 -34
  54. data/lib/padrino-core/locale/sv.yml +0 -33
  55. data/lib/padrino-core/locale/tr.yml +0 -33
  56. data/lib/padrino-core/locale/uk.yml +0 -33
  57. data/lib/padrino-core/locale/zh_cn.yml +0 -33
  58. data/lib/padrino-core/locale/zh_tw.yml +0 -33
  59. data/lib/padrino-core/support_lite.rb +0 -259
  60. data/test/fixtures/apps/.components +0 -6
  61. data/test/fixtures/apps/.gitignore +0 -7
  62. data/test/fixtures/apps/render.rb +0 -13
  63. data/test/fixtures/apps/views/blog/post.erb +0 -1
  64. data/test/fixtures/layouts/layout.erb +0 -1
  65. data/test/mini_shoulda.rb +0 -45
  66. data/test/test_rendering.rb +0 -606
  67. data/test/test_rendering_extensions.rb +0 -14
  68. data/test/test_support_lite.rb +0 -56
@@ -1,33 +0,0 @@
1
- nl:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d-%m-%Y"
8
- short: "%d %b"
9
- long: "%d %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag]
13
- abbr_day_names: [zo, ma, di, wo, do, vr, za]
14
- month_names: [~, januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december]
15
- abbr_month_names: [~, jan, feb, maa, apr, mei, jun, jul, aug, sep, okt, nov, dec]
16
- order:
17
- - day
18
- - month
19
- - year
20
-
21
- time:
22
- formats:
23
- default: "%a %d %b %Y %H:%M:%S %z"
24
- short: "%d %b %H:%M"
25
- long: "%d %B %Y %H:%M"
26
- am: "am"
27
- pm: "pm"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " en "
33
- last_word_connector: " en "
@@ -1,33 +0,0 @@
1
- "no":
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d.%m.%Y"
8
- short: "%e. %b %Y"
9
- long: "%e. %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [søndag, mandag, tirsdag, onsdag, torsdag, fredag, lørdag]
13
- abbr_day_names: [sø, ma, ti, 'on', to, fr, lø]
14
- month_names: [~, januar, februar, mars, april, mai, juni, juli, august, september, oktober, november, desember]
15
- abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, des]
16
- order:
17
- - day
18
- - month
19
- - year
20
-
21
- time:
22
- formats:
23
- default: "%e. %B %Y, %H:%M"
24
- short: "%e. %b %Y, %H:%M"
25
- long: "%A, %e. %B %Y, %H:%M"
26
- am: ""
27
- pm: ""
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " og "
33
- last_word_connector: " og "
@@ -1,33 +0,0 @@
1
- pl:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%Y-%m-%d"
8
- short: "%d %b"
9
- long: "%d %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota]
13
- abbr_day_names: [nie, pon, wto, śro, czw, pia, sob]
14
- month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień]
15
- abbr_month_names: [~, sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru]
16
- order:
17
- - year
18
- - month
19
- - day
20
-
21
- time:
22
- formats:
23
- default: "%a, %d %b %Y, %H:%M:%S %z"
24
- short: "%d %b, %H:%M"
25
- long: "%d %B %Y, %H:%M"
26
- am: "przed południem"
27
- pm: "po południu"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " i "
33
- last_word_connector: " i "
@@ -1,39 +0,0 @@
1
- pt_br:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d-%m-%Y"
8
- short: "%d %b"
9
- long: "%d %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Domingo, Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado]
13
- abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sab]
14
- month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
15
- abbr_month_names: [~, Jan, Fev, Mar, Abr, Maio, Jun, Jul, Ago, Set, Out, Nov, Dez]
16
- order:
17
- - day
18
- - month
19
- - year
20
-
21
- time:
22
- formats:
23
- default: "%a %d %b %Y, %H:%M:%S %z"
24
- time: "%H:%M"
25
- short: "%d %b %H:%M"
26
- long: "%d %B %Y %H:%M"
27
- only_second: "%S"
28
-
29
- datetime:
30
- formats:
31
- default: "%d-%m-%YT%H:%M:%S%Z"
32
-
33
- am: 'am'
34
- pm: 'pm'
35
-
36
- support:
37
- array:
38
- sentence_connector: "e"
39
- skip_last_comma: false
@@ -1,33 +0,0 @@
1
- ro:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d.%m.%Y"
8
- short: "%d %b"
9
- long: "%d %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Duminică, Luni, Marți, Miercuri, Joi, Vineri, Sâmbătă]
13
- abbr_day_names: [Dum, Lun, Mar, Mie, Joi, Vin, Sâm]
14
- month_names: [~, Ianuarie, Februarie, Martie, Aprilie, Mai, Iunie, Iulie, August, Septembrie, Octombrie, Noiembrie, Decembrie]
15
- abbr_month_names: [~, Ian, Feb, Mar, Apr, Mai, Iun, Iul, Aug, Sep, Oct, Noi, Dec]
16
- order:
17
- - day
18
- - month
19
- - year
20
-
21
- time:
22
- formats:
23
- default: "%a, %d %b %Y %H:%M:%S %z"
24
- short: "%d %b %H:%M"
25
- long: "%d, %B %Y %H:%M"
26
- am: "am"
27
- pm: "pm"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " și "
33
- last_word_connector: " și "
@@ -1,34 +0,0 @@
1
- ru:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d.%m.%Y"
8
- short: "%d %b"
9
- long: "%e %B, %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Воскресенье, Понедельник, Вторник, Среда, Четверг, Пятница, Суббота]
13
- abbr_day_names: [Вс, Пн, Вт, Ср, Чт, Пт, Сб]
14
- month_names: [~, Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь]
15
- abbr_month_names: [~, Янв, Фев, Мар, Апр, Май, Июн, Июл, Авг, Сен, Окт, Ноя, Дек]
16
- order:
17
- - year
18
- - month
19
- - day
20
-
21
- time:
22
- formats:
23
- default: "%a, %d %b %Y %H:%M:%S %z"
24
- short: "%d %b %H:%M"
25
- long: "%e %B, %Y %H:%M"
26
- am: "д.п."
27
- pm: "п.п."
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " и "
33
- last_word_connector: " и "
34
-
@@ -1,33 +0,0 @@
1
- sv:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%Y-%m-%d"
8
- short: "%b %d"
9
- long: "%B %d, %Y"
10
- only_day: "%e"
11
-
12
- day_names: [söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag]
13
- abbr_day_names: [sön, mån, tis, ons, tors, fre, lör]
14
- month_names: [~, januari, februari, mars, april, maj, juni, juli, augusti, september, oktober, november, december]
15
- abbr_month_names: [~, jan, feb, mar, apr, may, jun, jul, aug, sep, okt, nov, dec]
16
- order:
17
- - år
18
- - månad
19
- - dag
20
-
21
- time:
22
- formats:
23
- default: "%a, %d %b %Y %H:%M:%S %z"
24
- short: "%d %b %H:%M"
25
- long: "%B %d, %Y %H:%M"
26
- am: "fm"
27
- pm: "em"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " och "
33
- last_word_connector: ", och "
@@ -1,33 +0,0 @@
1
- tr:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d/%m/%Y"
8
- short: "%d %b"
9
- long: "%d %B %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi]
13
- abbr_day_names: [Paz, Pts, Sal, Çar, Per, Cum, Cts]
14
- month_names: [~, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık]
15
- abbr_month_names: [~, Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara]
16
- order:
17
- - day
18
- - month
19
- - year
20
-
21
- time:
22
- formats:
23
- default: "%a, %b %b %Y %H:%M:%S %z"
24
- short: "%b %d %H:%M"
25
- long: "%d %B, %Y %H:%M"
26
- am: "öö"
27
- pm: "ös"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " ve "
33
- last_word_connector: " ve "
@@ -1,33 +0,0 @@
1
- uk:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%d.%m.%Y"
8
- short: "%d %b"
9
- long: "%e %B, %Y"
10
- only_day: "%e"
11
-
12
- day_names: [Неділя, Понеділок, Вівторок, Середа, Четвер, Пятница, Субота]
13
- abbr_day_names: [Нд, Пн, Вт, Ср, Чт, Пт, Сб]
14
- month_names: [~, Січено, Лютий, Березень, Квітень, Травень, Червень, Липень, Серпень, Вересень, Жовтень, Листопад, Грудень]
15
- abbr_month_names: [~, Січ, Лют, Бер, Кві, Тра, Чер, Лип, Сер, Вер, Жов, Лис, Гру]
16
- order:
17
- - year
18
- - month
19
- - day
20
-
21
- time:
22
- formats:
23
- default: "%a, %d %b %Y %H:%M:%S %z"
24
- short: "%d %b %H:%M"
25
- long: "%e %B, %Y %H:%M"
26
- am: "д.п."
27
- pm: "п.п"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " і "
33
- last_word_connector: ", і "
@@ -1,33 +0,0 @@
1
- zh_cn:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%Y年%m月%d日"
8
- short: "%b月%d日"
9
- long: "%Y年%B月%d日"
10
- only_day: "%e"
11
-
12
- day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
13
- abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
14
- month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
15
- abbr_month_names: [~, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
16
- order:
17
- - year
18
- - month
19
- - day
20
-
21
- time:
22
- formats:
23
- default: "%Y年%b月%d日 %H:%M:%S %z"
24
- short: "%b月%d日 %H:%M"
25
- long: "%Y年%B%d日 %H时%M分"
26
- am: "上午"
27
- pm: "下午"
28
-
29
- support:
30
- array:
31
- words_connector: ","
32
- two_words_connector: "和"
33
- last_word_connector: ",还有"
@@ -1,33 +0,0 @@
1
- zh_tw:
2
- date:
3
- formats:
4
- # Use the strftime parameters for formats.
5
- # When no format has been given, it uses default.
6
- # You can provide other formats here if you like!
7
- default: "%Y-%m-%d"
8
- short: "%b%d日"
9
- long: "%Y年%b%d日"
10
- only_day: "%e"
11
-
12
- day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
13
- abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
14
- month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
15
- abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
16
- order:
17
- - year
18
- - month
19
- - day
20
-
21
- time:
22
- formats:
23
- default: "%Y年%b%d日 %A %H:%M:%S %Z"
24
- short: "%b%d日 %H:%M"
25
- long: "%Y年%b%d日 %H:%M"
26
- am: "上午"
27
- pm: "下午"
28
-
29
- support:
30
- array:
31
- words_connector: ", "
32
- two_words_connector: " 和 "
33
- last_word_connector: ", 和 "
@@ -1,259 +0,0 @@
1
- ##
2
- # This file loads certain extensions required by Padrino from ActiveSupport.
3
- #
4
- require 'active_support/core_ext/module/aliasing' # alias_method_chain
5
- require 'active_support/core_ext/hash/reverse_merge' # reverse_merge
6
- require 'active_support/core_ext/hash/keys' # symbolize_keys
7
- require 'active_support/core_ext/hash/indifferent_access' # params[:foo]
8
- require 'active_support/core_ext/hash/slice' # slice
9
- require 'active_support/core_ext/object/blank' # present?
10
- require 'active_support/core_ext/array/extract_options' # extract_options
11
- require 'active_support/inflector/methods' # constantize
12
- require 'active_support/inflector/inflections' # pluralize
13
- require 'active_support/core_ext/string/output_safety' # SafeBuffer and html_safe
14
- require 'active_support/inflections' # load default inflections
15
- require 'yaml' unless defined?(YAML) # load yaml for i18n
16
- require 'win32console' if RUBY_PLATFORM =~ /(win|m)32/ # ruby color support for win
17
-
18
- ##
19
- # This is an adapted version of active_support/core_ext/string/inflections.rb
20
- # to prevent loading several dependencies including I18n gem.
21
- #
22
- # Issue: https://github.com/rails/rails/issues/1526
23
- #
24
- class String
25
- ##
26
- # Returns the plural form of the word in the string.
27
- #
28
- # "post".pluralize # => "posts"
29
- # "octopus".pluralize # => "octopi"
30
- # "sheep".pluralize # => "sheep"
31
- # "words".pluralize # => "words"
32
- # "the blue mailman".pluralize # => "the blue mailmen"
33
- # "CamelOctopus".pluralize # => "CamelOctopi"
34
- #
35
- def pluralize
36
- ActiveSupport::Inflector.pluralize(self)
37
- end
38
-
39
- ##
40
- # Returns the singular form of the word in the string.
41
- #
42
- # "posts".singularize # => "post"
43
- # "octopi".singularize # => "octopus"
44
- # "sheep".singularize # => "sheep"
45
- # "words".singularize # => "word"
46
- # "the blue mailmen".singularize # => "the blue mailman"
47
- # "CamelOctopi".singularize # => "CamelOctopus"
48
- #
49
- def singularize
50
- ActiveSupport::Inflector.singularize(self)
51
- end
52
-
53
- ##
54
- # +constantize+ tries to find a declared constant with the name specified
55
- # in the string. It raises a NameError when the name is not in CamelCase
56
- # or is not initialized.
57
- #
58
- # "Module".constantize # => Module
59
- # "Class".constantize # => Class
60
- #
61
- def constantize
62
- ActiveSupport::Inflector.constantize(self)
63
- end
64
-
65
- ##
66
- # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
67
- #
68
- # +underscore+ will also change '::' to '/' to convert namespaces to paths.
69
- #
70
- # "ActiveRecord".underscore # => "active_record"
71
- # "ActiveRecord::Errors".underscore # => active_record/errors
72
- #
73
- def underscore
74
- ActiveSupport::Inflector.underscore(self)
75
- end
76
-
77
- ##
78
- # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize
79
- # is set to <tt>:lower</tt> then camelize produces lowerCamelCase.
80
- #
81
- # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces.
82
- #
83
- # "active_record".camelize # => "ActiveRecord"
84
- # "active_record".camelize(:lower) # => "activeRecord"
85
- # "active_record/errors".camelize # => "ActiveRecord::Errors"
86
- # "active_record/errors".camelize(:lower) # => "activeRecord::Errors"
87
- #
88
- def camelize(first_letter = :upper)
89
- case first_letter
90
- when :upper then ActiveSupport::Inflector.camelize(self, true)
91
- when :lower then ActiveSupport::Inflector.camelize(self, false)
92
- end
93
- end
94
- alias_method :camelcase, :camelize
95
-
96
- ##
97
- # Create a class name from a plural table name like Rails does for table names to models.
98
- # Note that this returns a string and not a class. (To convert to an actual class
99
- # follow +classify+ with +constantize+.)
100
- #
101
- # "egg_and_hams".classify # => "EggAndHam"
102
- # "posts".classify # => "Post"
103
- #
104
- # Singular names are not handled correctly.
105
- #
106
- # "business".classify # => "Busines"
107
- #
108
- def classify
109
- ActiveSupport::Inflector.classify(self)
110
- end
111
- end
112
-
113
- module ObjectSpace
114
- class << self
115
- ##
116
- # Returns all the classes in the object space.
117
- # Optionally, a block can be passed, for example the following code
118
- # would return the classes that start with the character "A":
119
- #
120
- # ObjectSpace.classes do |klass|
121
- # if klass.to_s[0] == "A"
122
- # klass
123
- # end
124
- # end
125
- #
126
- def classes(&block)
127
- rs = Set.new
128
-
129
- ObjectSpace.each_object(Class).each do |klass|
130
- if block
131
- if r = block.call(klass)
132
- # add the returned value if the block returns something
133
- rs << r
134
- end
135
- else
136
- rs << klass
137
- end
138
- end
139
-
140
- rs
141
- end
142
-
143
- ##
144
- # Returns a list of existing classes that are not included in "snapshot"
145
- # This method is useful to get the list of new classes that were loaded
146
- # after an event like requiring a file.
147
- # Usage:
148
- #
149
- # snapshot = ObjectSpace.classes
150
- # # require a file
151
- # ObjectSpace.new_classes(snapshot)
152
- #
153
- def new_classes(snapshot)
154
- self.classes do |klass|
155
- if !snapshot.include?(klass)
156
- klass
157
- end
158
- end
159
- end
160
- end
161
- end
162
-
163
- ##
164
- # FileSet helper method for iterating and interacting with files inside a directory
165
- #
166
- module FileSet
167
- extend self
168
- ##
169
- # Iterates over every file in the glob pattern and yields to a block
170
- # Returns the list of files matching the glob pattern
171
- # FileSet.glob('padrino-core/application/*.rb', __FILE__) { |file| load file }
172
- #
173
- def glob(glob_pattern, file_path=nil, &block)
174
- glob_pattern = File.join(File.dirname(file_path), glob_pattern) if file_path
175
- file_list = Dir.glob(glob_pattern).sort
176
- file_list.each { |file| block.call(file) }
177
- file_list
178
- end
179
-
180
- ##
181
- # Requires each file matched in the glob pattern into the application
182
- # FileSet.glob_require('padrino-core/application/*.rb', __FILE__)
183
- #
184
- def glob_require(glob_pattern, file_path=nil)
185
- glob(glob_pattern, file_path) { |f| require f }
186
- end
187
- end
188
-
189
- ##
190
- # Removes indentation
191
- # Add colors
192
- #
193
- # @example
194
- # help <<-EOS.undent
195
- # Here my help usage
196
- # sample_code
197
- #
198
- # Fix
199
- # EOS
200
- # puts help.red.bold
201
- #
202
- class String
203
- # colorize(:red)
204
- def colorize(color)
205
- Colorizer.send(color, self)
206
- end
207
-
208
- # Used to colorize strings for the shell
209
- class Colorizer
210
- # Returns colors integer mapping
211
- def self.colors
212
- @_colors ||= {
213
- :clear => 0,
214
- :bold => 1,
215
- :black => 30,
216
- :red => 31,
217
- :green => 32,
218
- :yellow => 33,
219
- :blue => 34,
220
- :magenta => 35,
221
- :cyan => 36,
222
- :white => 37
223
- }
224
- end
225
-
226
- # Defines class level color methods
227
- # i.e Colorizer.red("hello")
228
- class << self
229
- Colorizer.colors.each do |color, value|
230
- define_method(color) do |target|
231
- "\e[#{value}m" << target << "\e[0m"
232
- end
233
- end
234
- end
235
- end
236
-
237
- # Strip unnecessary indentation of the front of a string
238
- def undent
239
- gsub(/^.{#{slice(/^ +/).size}}/, '')
240
- end
241
- end
242
-
243
- ##
244
- # Make sure we can always use the class name
245
- # In reloader for accessing class_name Foo._orig_klass_name
246
- #
247
- class Module
248
- alias :_orig_klass_name :to_s
249
- end
250
-
251
- ##
252
- # Loads our locale configuration files
253
- #
254
- I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n)
255
-
256
- ##
257
- # Used to determine if this file has already been required
258
- #
259
- module SupportLite; end