lazier 4.0.0 → 4.0.1

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/.travis-gemfile +1 -2
  3. data/Gemfile +1 -2
  4. data/doc/Lazier/Boolean.html +1 -1
  5. data/doc/Lazier/Configuration.html +1 -1
  6. data/doc/Lazier/DateTime/ClassMethods.html +1 -1
  7. data/doc/Lazier/DateTime.html +1 -1
  8. data/doc/Lazier/Exceptions/Debug.html +1 -1
  9. data/doc/Lazier/Exceptions/MissingTranslation.html +1 -1
  10. data/doc/Lazier/Exceptions/TranslationExceptionHandler.html +1 -1
  11. data/doc/Lazier/Exceptions.html +1 -1
  12. data/doc/Lazier/Hash.html +1 -1
  13. data/doc/Lazier/I18n.html +34 -24
  14. data/doc/Lazier/Math/ClassMethods.html +1 -1
  15. data/doc/Lazier/Math.html +1 -1
  16. data/doc/Lazier/Object.html +1 -1
  17. data/doc/Lazier/Pathname.html +1 -1
  18. data/doc/Lazier/Settings.html +172 -34
  19. data/doc/Lazier/String.html +1 -1
  20. data/doc/Lazier/TimeZone/ClassMethods.html +1 -1
  21. data/doc/Lazier/TimeZone.html +1 -1
  22. data/doc/Lazier/Version.html +2 -2
  23. data/doc/Lazier.html +83 -75
  24. data/doc/_index.html +1 -1
  25. data/doc/file.README.html +1 -1
  26. data/doc/index.html +1 -1
  27. data/doc/top-level-namespace.html +1 -1
  28. data/lazier.gemspec +1 -1
  29. data/lib/lazier/i18n.rb +1 -0
  30. data/lib/lazier/settings.rb +15 -2
  31. data/lib/lazier/version.rb +1 -1
  32. data/lib/lazier.rb +40 -32
  33. data/spec/lazier/boolean_spec.rb +1 -1
  34. data/spec/lazier/datetime_spec.rb +1 -1
  35. data/spec/lazier/hash_spec.rb +2 -2
  36. data/spec/lazier/i18n_spec.rb +17 -11
  37. data/spec/lazier/math_spec.rb +1 -1
  38. data/spec/lazier/object_spec.rb +1 -1
  39. data/spec/lazier/pathname_spec.rb +1 -1
  40. data/spec/lazier/settings_spec.rb +1 -1
  41. data/spec/lazier/string_spec.rb +1 -1
  42. data/spec/lazier/timezone_spec.rb +1 -1
  43. metadata +4 -4
data/doc/Lazier.html CHANGED
@@ -523,13 +523,13 @@ otherwise the duration alone as a number.</p>
523
523
  <pre class="lines">
524
524
 
525
525
 
526
- 139
527
- 140
528
- 141
529
- 142</pre>
526
+ 144
527
+ 145
528
+ 146
529
+ 147</pre>
530
530
  </td>
531
531
  <td>
532
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 139</span>
532
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 144</span>
533
533
 
534
534
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='label'>message:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>precision:</span> <span class='int'>0</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
535
535
  <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='const'>Benchmark</span><span class='period'>.</span><span class='id identifier rubyid_ms'>ms</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
@@ -636,18 +636,18 @@ Otherwise the class of the object will returned.</p>
636
636
  <pre class="lines">
637
637
 
638
638
 
639
- 122
640
- 123
641
- 124
642
- 125
643
- 126
644
639
  127
645
640
  128
646
641
  129
647
- 130</pre>
642
+ 130
643
+ 131
644
+ 132
645
+ 133
646
+ 134
647
+ 135</pre>
648
648
  </td>
649
649
  <td>
650
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 122</span>
650
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 127</span>
651
651
 
652
652
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_find_class'>find_class</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>::@</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_only_in_scope'>only_in_scope</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
653
653
  <span class='kw'>if</span> <span class='lbracket'>[</span><span class='op'>::</span><span class='const'>String</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Symbol</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
@@ -733,21 +733,21 @@ Otherwise the class of the object will returned.</p>
733
733
  <pre class="lines">
734
734
 
735
735
 
736
- 53
737
736
  54
738
737
  55
739
738
  56
740
739
  57
741
740
  58
742
741
  59
743
- 60</pre>
742
+ 60
743
+ 61</pre>
744
744
  </td>
745
745
  <td>
746
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 53</span>
746
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 54</span>
747
747
 
748
748
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load!'>load!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_what'>what</span><span class='rparen'>)</span>
749
749
  <span class='id identifier rubyid_valid_modules'>valid_modules</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:object</span><span class='comma'>,</span> <span class='symbol'>:boolean</span><span class='comma'>,</span> <span class='symbol'>:string</span><span class='comma'>,</span> <span class='symbol'>:hash</span><span class='comma'>,</span> <span class='symbol'>:datetime</span><span class='comma'>,</span> <span class='symbol'>:math</span><span class='comma'>,</span> <span class='symbol'>:pathname</span><span class='rbracket'>]</span>
750
- <span class='id identifier rubyid_modules'>modules</span> <span class='op'>=</span> <span class='id identifier rubyid_what'>what</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_what'>what</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_valid_modules'>valid_modules</span>
750
+ <span class='id identifier rubyid_modules'>modules</span> <span class='op'>=</span> <span class='id identifier rubyid_what'>what</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_what'>what</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_valid_modules'>valid_modules</span>
751
751
  <span class='lparen'>(</span><span class='id identifier rubyid_modules'>modules</span> <span class='op'>&amp;</span> <span class='id identifier rubyid_valid_modules'>valid_modules</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_w'>w</span><span class='op'>|</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>load_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_w'>w</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
752
752
 
753
753
  <span class='kw'>yield</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
@@ -783,8 +783,6 @@ Otherwise the class of the object will returned.</p>
783
783
  <pre class="lines">
784
784
 
785
785
 
786
- 68
787
- 69
788
786
  70
789
787
  71
790
788
  72
@@ -793,20 +791,20 @@ Otherwise the class of the object will returned.</p>
793
791
  75
794
792
  76
795
793
  77
796
- 78</pre>
794
+ 78
795
+ 79</pre>
797
796
  </td>
798
797
  <td>
799
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 68</span>
798
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 70</span>
800
799
 
801
800
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_boolean'>load_boolean</span>
802
- <span class='op'>::</span><span class='const'>TrueClass</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='kw'>do</span>
803
- <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Object</span>
804
- <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Boolean</span>
805
- <span class='kw'>end</span>
806
-
807
- <span class='op'>::</span><span class='const'>FalseClass</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='kw'>do</span>
808
- <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Object</span>
809
- <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Boolean</span>
801
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:boolean</span><span class='rparen'>)</span> <span class='kw'>do</span>
802
+ <span class='lbracket'>[</span><span class='op'>::</span><span class='const'>TrueClass</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>FalseClass</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_klass'>klass</span><span class='op'>|</span>
803
+ <span class='id identifier rubyid_klass'>klass</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='kw'>do</span>
804
+ <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Object</span>
805
+ <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Boolean</span>
806
+ <span class='kw'>end</span>
807
+ <span class='kw'>end</span>
810
808
  <span class='kw'>end</span>
811
809
  <span class='kw'>end</span></pre>
812
810
  </td>
@@ -839,27 +837,31 @@ Otherwise the class of the object will returned.</p>
839
837
  <pre class="lines">
840
838
 
841
839
 
842
- 93
843
- 94
844
- 95
845
- 96
846
840
  97
847
841
  98
848
842
  99
849
843
  100
850
- 101</pre>
844
+ 101
845
+ 102
846
+ 103
847
+ 104
848
+ 105
849
+ 106
850
+ 107</pre>
851
851
  </td>
852
852
  <td>
853
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 93</span>
853
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 97</span>
854
854
 
855
855
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_datetime'>load_datetime</span>
856
856
  <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_load_object'>load_object</span>
857
857
 
858
- <span class='lbracket'>[</span><span class='op'>::</span><span class='const'>Time</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Date</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>DateTime</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span>
859
- <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>DateTime</span> <span class='rbrace'>}</span>
860
- <span class='kw'>end</span>
858
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:datetime</span><span class='rparen'>)</span> <span class='kw'>do</span>
859
+ <span class='lbracket'>[</span><span class='op'>::</span><span class='const'>Time</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Date</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>DateTime</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span>
860
+ <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>DateTime</span> <span class='rbrace'>}</span>
861
+ <span class='kw'>end</span>
861
862
 
862
- <span class='op'>::</span><span class='const'>ActiveSupport</span><span class='op'>::</span><span class='const'>TimeZone</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>TimeZone</span> <span class='rbrace'>}</span>
863
+ <span class='op'>::</span><span class='const'>ActiveSupport</span><span class='op'>::</span><span class='const'>TimeZone</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>TimeZone</span> <span class='rbrace'>}</span>
864
+ <span class='kw'>end</span>
863
865
  <span class='kw'>end</span></pre>
864
866
  </td>
865
867
  </tr>
@@ -891,19 +893,25 @@ Otherwise the class of the object will returned.</p>
891
893
  <pre class="lines">
892
894
 
893
895
 
894
- 86
895
896
  87
896
897
  88
897
898
  89
898
- 90</pre>
899
+ 90
900
+ 91
901
+ 92
902
+ 93
903
+ 94</pre>
899
904
  </td>
900
905
  <td>
901
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 86</span>
906
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 87</span>
902
907
 
903
908
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_hash'>load_hash</span>
904
- <span class='id identifier rubyid_clean_hash_compact'>clean_hash_compact</span>
905
909
  <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_load_object'>load_object</span>
906
- <span class='op'>::</span><span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Hash</span> <span class='rbrace'>}</span>
910
+
911
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:hash</span><span class='rparen'>)</span> <span class='kw'>do</span>
912
+ <span class='id identifier rubyid_clean_hash_compact'>clean_hash_compact</span>
913
+ <span class='op'>::</span><span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Hash</span> <span class='rbrace'>}</span>
914
+ <span class='kw'>end</span>
907
915
  <span class='kw'>end</span></pre>
908
916
  </td>
909
917
  </tr>
@@ -935,17 +943,17 @@ Otherwise the class of the object will returned.</p>
935
943
  <pre class="lines">
936
944
 
937
945
 
938
- 104
939
- 105
940
- 106
941
- 107</pre>
946
+ 110
947
+ 111
948
+ 112
949
+ 113</pre>
942
950
  </td>
943
951
  <td>
944
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 104</span>
952
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 110</span>
945
953
 
946
954
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_math'>load_math</span>
947
955
  <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_load_object'>load_object</span>
948
- <span class='op'>::</span><span class='const'>Math</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Math</span> <span class='rbrace'>}</span>
956
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:math</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Math</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Math</span><span class='rparen'>)</span>
949
957
  <span class='kw'>end</span></pre>
950
958
  </td>
951
959
  </tr>
@@ -977,15 +985,17 @@ Otherwise the class of the object will returned.</p>
977
985
  <pre class="lines">
978
986
 
979
987
 
980
- 63
981
988
  64
982
- 65</pre>
989
+ 65
990
+ 66
991
+ 67</pre>
983
992
  </td>
984
993
  <td>
985
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 63</span>
994
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 64</span>
986
995
 
987
996
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_object'>load_object</span>
988
- <span class='op'>::</span><span class='const'>Object</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Object</span> <span class='rbrace'>}</span>
997
+ <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_load_boolean'>load_boolean</span>
998
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:object</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Object</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Object</span><span class='rparen'>)</span>
989
999
  <span class='kw'>end</span></pre>
990
1000
  </td>
991
1001
  </tr>
@@ -1017,17 +1027,15 @@ Otherwise the class of the object will returned.</p>
1017
1027
  <pre class="lines">
1018
1028
 
1019
1029
 
1020
- 110
1021
- 111
1022
- 112
1023
- 113</pre>
1030
+ 116
1031
+ 117
1032
+ 118</pre>
1024
1033
  </td>
1025
1034
  <td>
1026
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 110</span>
1035
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 116</span>
1027
1036
 
1028
1037
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_pathname'>load_pathname</span>
1029
- <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pathname</span><span class='tstring_end'>&quot;</span></span>
1030
- <span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Pathname</span> <span class='rbrace'>}</span>
1038
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:pathname</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Pathname</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Pathname</span><span class='rparen'>)</span>
1031
1039
  <span class='kw'>end</span></pre>
1032
1040
  </td>
1033
1041
  </tr>
@@ -1059,15 +1067,15 @@ Otherwise the class of the object will returned.</p>
1059
1067
  <pre class="lines">
1060
1068
 
1061
1069
 
1062
- 81
1063
1070
  82
1064
- 83</pre>
1071
+ 83
1072
+ 84</pre>
1065
1073
  </td>
1066
1074
  <td>
1067
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 81</span>
1075
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 82</span>
1068
1076
 
1069
1077
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_string'>load_string</span>
1070
- <span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>String</span> <span class='rbrace'>}</span>
1078
+ <span class='id identifier rubyid_perform_load'>perform_load</span><span class='lparen'>(</span><span class='symbol'>:string</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>String</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>String</span><span class='rparen'>)</span>
1071
1079
  <span class='kw'>end</span></pre>
1072
1080
  </td>
1073
1081
  </tr>
@@ -1129,20 +1137,20 @@ Otherwise the class of the object will returned.</p>
1129
1137
  <pre class="lines">
1130
1138
 
1131
1139
 
1132
- 148
1133
- 149
1134
- 150
1135
- 151
1136
- 152
1137
1140
  153
1138
1141
  154
1139
1142
  155
1140
1143
  156
1141
1144
  157
1142
- 158</pre>
1145
+ 158
1146
+ 159
1147
+ 160
1148
+ 161
1149
+ 162
1150
+ 163</pre>
1143
1151
  </td>
1144
1152
  <td>
1145
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 148</span>
1153
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 153</span>
1146
1154
 
1147
1155
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='lparen'>(</span><span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
1148
1156
  <span class='ivar'>@platform</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
@@ -1202,12 +1210,12 @@ Otherwise the class of the object will returned.</p>
1202
1210
  <pre class="lines">
1203
1211
 
1204
1212
 
1205
- 36
1206
1213
  37
1207
- 38</pre>
1214
+ 38
1215
+ 39</pre>
1208
1216
  </td>
1209
1217
  <td>
1210
- <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 36</span>
1218
+ <pre class="code"><span class="info file"># File 'lib/lazier.rb', line 37</span>
1211
1219
 
1212
1220
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span>
1213
1221
  <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Settings</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
@@ -1222,7 +1230,7 @@ Otherwise the class of the object will returned.</p>
1222
1230
  </div>
1223
1231
 
1224
1232
  <div id="footer">
1225
- Generated on Sun Jun 1 15:50:05 2014 by
1233
+ Generated on Fri Jun 6 11:15:48 2014 by
1226
1234
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1227
1235
  0.8.7.4 (ruby-2.1.2).
1228
1236
  </div>
data/doc/_index.html CHANGED
@@ -333,7 +333,7 @@
333
333
  </div>
334
334
 
335
335
  <div id="footer">
336
- Generated on Sun Jun 1 15:50:05 2014 by
336
+ Generated on Fri Jun 6 11:15:47 2014 by
337
337
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
338
338
  0.8.7.4 (ruby-2.1.2).
339
339
  </div>
data/doc/file.README.html CHANGED
@@ -110,7 +110,7 @@ See documentation for more informations.</p>
110
110
  </div></div>
111
111
 
112
112
  <div id="footer">
113
- Generated on Sun Jun 1 15:50:05 2014 by
113
+ Generated on Fri Jun 6 11:15:47 2014 by
114
114
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
115
115
  0.8.7.4 (ruby-2.1.2).
116
116
  </div>
data/doc/index.html CHANGED
@@ -110,7 +110,7 @@ See documentation for more informations.</p>
110
110
  </div></div>
111
111
 
112
112
  <div id="footer">
113
- Generated on Sun Jun 1 15:50:05 2014 by
113
+ Generated on Fri Jun 6 11:15:47 2014 by
114
114
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
115
115
  0.8.7.4 (ruby-2.1.2).
116
116
  </div>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Sun Jun 1 15:50:05 2014 by
106
+ Generated on Fri Jun 6 11:15:47 2014 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.4 (ruby-2.1.2).
109
109
  </div>
data/lazier.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |gem|
26
26
  gem.required_ruby_version = ">= 2.1"
27
27
 
28
28
  gem.add_dependency("activesupport", "~> 4.1")
29
- gem.add_dependency("hashie", "~> 2.1")
29
+ gem.add_dependency("hashie", "~> 3.0")
30
30
 
31
31
  if RUBY_ENGINE != "jruby"
32
32
  gem.add_dependency("oj", "~> 2.9")
data/lib/lazier/i18n.rb CHANGED
@@ -39,6 +39,7 @@ module Lazier
39
39
  # @param root [Symbol] The root level of the translation.
40
40
  # @param path [String] The path where the translations are stored.
41
41
  def initialize(locale = nil, root: :lazier, path: nil)
42
+ Lazier.load_object
42
43
  path ||= Lazier::ROOT + "/locales"
43
44
  @root = root.to_sym
44
45
  @path = File.absolute_path(path.to_s)
@@ -30,6 +30,7 @@ module Lazier
30
30
 
31
31
  # Initializes a new settings object.
32
32
  def initialize
33
+ Lazier.load_datetime
33
34
  @i18n = Lazier::I18n.instance
34
35
  setup
35
36
  end
@@ -94,14 +95,26 @@ module Lazier
94
95
  # @param short_days [Array] The abbreviated string representation of days.
95
96
  # @return [Hash] The new representations.
96
97
  def setup_date_names(long_months: nil, short_months: nil, long_days: nil, short_days: nil)
97
- definitions = i18n.translate("date").ensure_access(:dotted)
98
+ definitions = prepare_definitions
98
99
 
99
100
  @date_names = {
100
101
  long_months: long_months.ensure(definitions.long_months),
101
102
  short_months: short_months.ensure(definitions.short_months),
102
103
  long_days: long_days.ensure(definitions.long_days),
103
104
  short_days: short_days.ensure(definitions.short_days)
104
- }.ensure_access(:indifferent, :dotted)
105
+ }
106
+
107
+ @date_names.extend(Lazier::Hash)
108
+ @date_names = @date_names.ensure_access(:dotted, :indifferent)
109
+ end
110
+
111
+ private
112
+
113
+ # :nodoc:
114
+ def prepare_definitions
115
+ definitions = i18n.translate("date")
116
+ definitions.extend(Lazier::Hash)
117
+ definitions.ensure_access(:dotted)
105
118
  end
106
119
  end
107
120
  end
@@ -15,7 +15,7 @@ module Lazier
15
15
  MINOR = 0
16
16
 
17
17
  # The patch version.
18
- PATCH = 0
18
+ PATCH = 1
19
19
 
20
20
  # The current version of lazier.
21
21
  STRING = [MAJOR, MINOR, PATCH].compact.join(".")
data/lib/lazier.rb CHANGED
@@ -10,6 +10,7 @@ require "active_support"
10
10
  require "active_support/core_ext"
11
11
  require "i18n"
12
12
  require "hashie"
13
+ require "pathname"
13
14
 
14
15
  require "lazier/version" unless defined?(Lazier::Version)
15
16
  require "lazier/exceptions"
@@ -52,7 +53,7 @@ module Lazier
52
53
  # @return [Settings] The settings for the extensions.
53
54
  def self.load!(*what)
54
55
  valid_modules = [:object, :boolean, :string, :hash, :datetime, :math, :pathname]
55
- modules = what.present? ? what.flatten.uniq.compact.map(&:to_s) : valid_modules
56
+ modules = what.present? ? what.flatten.uniq.compact.map(&:to_sym) : valid_modules
56
57
  (modules & valid_modules).each { |w| ::Lazier.send("load_#{w}") }
57
58
 
58
59
  yield if block_given?
@@ -61,55 +62,59 @@ module Lazier
61
62
 
62
63
  # Loads Object extensions.
63
64
  def self.load_object
64
- ::Object.class_eval { include ::Lazier::Object }
65
+ Lazier.load_boolean
66
+ perform_load(:object, ::Object, ::Lazier::Object)
65
67
  end
66
68
 
67
69
  # Loads Boolean extensions.
68
70
  def self.load_boolean
69
- ::TrueClass.class_eval do
70
- include ::Lazier::Object
71
- include ::Lazier::Boolean
72
- end
73
-
74
- ::FalseClass.class_eval do
75
- include ::Lazier::Object
76
- include ::Lazier::Boolean
71
+ perform_load(:boolean) do
72
+ [::TrueClass, ::FalseClass].each do |klass|
73
+ klass.class_eval do
74
+ include ::Lazier::Object
75
+ include ::Lazier::Boolean
76
+ end
77
+ end
77
78
  end
78
79
  end
79
80
 
80
81
  # Loads String extensions.
81
82
  def self.load_string
82
- ::String.class_eval { include ::Lazier::String }
83
+ perform_load(:string, ::String, ::Lazier::String)
83
84
  end
84
85
 
85
86
  # Loads Hash extensions.
86
87
  def self.load_hash
87
- clean_hash_compact
88
88
  Lazier.load_object
89
- ::Hash.class_eval { include ::Lazier::Hash }
89
+
90
+ perform_load(:hash) do
91
+ clean_hash_compact
92
+ ::Hash.class_eval { include ::Lazier::Hash }
93
+ end
90
94
  end
91
95
 
92
96
  # Loads DateTime extensions.
93
97
  def self.load_datetime
94
98
  Lazier.load_object
95
99
 
96
- [::Time, ::Date, ::DateTime].each do |c|
97
- c.class_eval { include ::Lazier::DateTime }
98
- end
100
+ perform_load(:datetime) do
101
+ [::Time, ::Date, ::DateTime].each do |c|
102
+ c.class_eval { include ::Lazier::DateTime }
103
+ end
99
104
 
100
- ::ActiveSupport::TimeZone.class_eval { include ::Lazier::TimeZone }
105
+ ::ActiveSupport::TimeZone.class_eval { include ::Lazier::TimeZone }
106
+ end
101
107
  end
102
108
 
103
109
  # Loads Math extensions.
104
110
  def self.load_math
105
111
  Lazier.load_object
106
- ::Math.class_eval { include ::Lazier::Math }
112
+ perform_load(:math, ::Math, ::Lazier::Math)
107
113
  end
108
114
 
109
115
  # Loads Pathname extensions.
110
116
  def self.load_pathname
111
- require "pathname"
112
- ::Pathname.class_eval { include ::Lazier::Pathname }
117
+ perform_load(:pathname, ::Pathname, ::Lazier::Pathname)
113
118
  end
114
119
 
115
120
  # Finds a class to instantiate.
@@ -159,27 +164,30 @@ module Lazier
159
164
 
160
165
  private
161
166
 
162
- # Removes existing `compact` and `compact!` methods from the Hash class to avoid conflicts with ActiveSupport.
167
+ # :nodoc:
163
168
  def self.clean_hash_compact
164
169
  ::Hash.class_eval do
165
- begin
166
- remove_method(:compact)
167
- remove_method(:compact!)
168
- rescue
169
- nil
170
- end
170
+ remove_method(:compact) if {}.respond_to?(:compact)
171
+ remove_method(:compact!) if {}.respond_to?(:compact!)
171
172
  end
172
173
  end
173
174
 
174
- # Tries to search a class.
175
- #
176
- # @param cls [String] The class to search.
177
- # @param scope [String] Scope to find the class. `%CLASS%`, `%`, `$`, `?` and `@` will be substituted with the class name.
178
- # @return [Class] The instantiated class.
175
+ # :nodoc:
179
176
  def self.search_class(cls, scope = nil)
180
177
  cls = scope.gsub(/%CLASS%|[@%$?]/, cls)
181
178
  cls.constantize
182
179
  rescue
183
180
  nil
184
181
  end
182
+
183
+ # :nodoc:
184
+ # TODO@PI: On 4.1, make loaded accessible publicly and add a Lazier.loaded? method.
185
+ def self.perform_load(mod, target = nil, extension = nil, &block)
186
+ @loaded ||= []
187
+
188
+ unless @loaded.include?(mod)
189
+ block_given? ? block.call : target.class_eval { include extension }
190
+ @loaded << mod
191
+ end
192
+ end
185
193
  end
@@ -7,7 +7,7 @@ require "spec_helper"
7
7
 
8
8
  describe Lazier::Boolean do
9
9
  before(:all) do
10
- ::Lazier.load!
10
+ ::Lazier.load!(:boolean)
11
11
  end
12
12
 
13
13
  describe "#to_i" do
@@ -12,7 +12,7 @@ describe Lazier::DateTime do
12
12
  let(:zone_without_dst) { ::ActiveSupport::TimeZone["International Date Line West"] }
13
13
 
14
14
  before(:all) do
15
- Lazier.load!
15
+ Lazier.load!(:datetime)
16
16
  end
17
17
 
18
18
  describe ".days" do
@@ -12,8 +12,8 @@ describe Object do
12
12
  rv
13
13
  }
14
14
 
15
- before(:each) do
16
- ::Lazier.load!
15
+ before(:all) do
16
+ ::Lazier.load!(:hash)
17
17
  end
18
18
 
19
19
  describe "#compact" do