mbrao 1.2.3 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/CHANGELOG.md +5 -0
- data/doc/ActionView/Template/Handlers/MbraoTemplate.html +87 -20
- data/doc/ActionView/Template/Handlers.html +1 -1
- data/doc/HTML/Pipeline/KramdownFilter.html +1 -1
- data/doc/HTML/Pipeline.html +1 -1
- data/doc/HTML.html +1 -1
- data/doc/Mbrao/Author.html +337 -67
- data/doc/Mbrao/Content.html +1268 -444
- data/doc/Mbrao/ContentPublicInterface.html +24 -20
- data/doc/Mbrao/Exceptions/InvalidDate.html +1 -1
- data/doc/Mbrao/Exceptions/InvalidMetadata.html +1 -1
- data/doc/Mbrao/Exceptions/Parsing.html +1 -1
- data/doc/Mbrao/Exceptions/Rendering.html +1 -1
- data/doc/Mbrao/Exceptions/UnavailableLocalization.html +1 -1
- data/doc/Mbrao/Exceptions/Unimplemented.html +1 -1
- data/doc/Mbrao/Exceptions/UnknownEngine.html +1 -1
- data/doc/Mbrao/Exceptions.html +1 -1
- data/doc/Mbrao/Parser.html +11 -11
- data/doc/Mbrao/ParsingEngines/Base.html +25 -24
- data/doc/Mbrao/ParsingEngines/PlainText.html +17 -16
- data/doc/Mbrao/ParsingEngines.html +1 -1
- data/doc/Mbrao/PublicInterface/ClassMethods.html +312 -19
- data/doc/Mbrao/PublicInterface.html +1 -1
- data/doc/Mbrao/RenderingEngines/Base.html +7 -7
- data/doc/Mbrao/RenderingEngines/HtmlPipeline.html +27 -15
- data/doc/Mbrao/RenderingEngines.html +1 -1
- data/doc/Mbrao/Validations/ClassMethods.html +21 -21
- data/doc/Mbrao/Validations.html +1 -1
- data/doc/Mbrao/Version.html +3 -3
- data/doc/Mbrao.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +86 -62
- data/doc/top-level-namespace.html +1 -1
- data/lib/mbrao/author.rb +18 -4
- data/lib/mbrao/content.rb +93 -44
- data/lib/mbrao/integrations/rails.rb +12 -5
- data/lib/mbrao/parser.rb +23 -0
- data/lib/mbrao/parsing_engines/base.rb +12 -11
- data/lib/mbrao/parsing_engines/plain_text.rb +29 -23
- data/lib/mbrao/rendering_engines/base.rb +4 -4
- data/lib/mbrao/rendering_engines/html_pipeline.rb +7 -2
- data/lib/mbrao/version.rb +2 -2
- data/spec/mbrao/author_spec.rb +32 -16
- data/spec/mbrao/content_spec.rb +144 -85
- data/spec/mbrao/integrations/rails_spec.rb +14 -0
- data/spec/mbrao/parser_spec.rb +19 -19
- data/spec/mbrao/parsing_engines/base_spec.rb +12 -12
- data/spec/mbrao/parsing_engines/plain_text_spec.rb +21 -21
- data/spec/mbrao/rendering_engines/base_spec.rb +2 -2
- data/spec/mbrao/rendering_engines/html_pipeline_spec.rb +31 -31
- metadata +2 -2
data/doc/Mbrao/Content.html
CHANGED
@@ -451,6 +451,29 @@
|
|
451
451
|
<li class="public ">
|
452
452
|
<span class="summary_signature">
|
453
453
|
|
454
|
+
<a href="#as_json-instance_method" title="#as_json (instance method)">- (Hash) <strong>as_json</strong>(options = {}) </a>
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
</span>
|
459
|
+
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
<span class="summary_desc"><div class='inline'><p>Returns the content as an Hash.</p>
|
469
|
+
</div></span>
|
470
|
+
|
471
|
+
</li>
|
472
|
+
|
473
|
+
|
474
|
+
<li class="public ">
|
475
|
+
<span class="summary_signature">
|
476
|
+
|
454
477
|
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Content) <strong>initialize</strong>(uid = nil) </a>
|
455
478
|
|
456
479
|
|
@@ -536,12 +559,12 @@
|
|
536
559
|
<pre class="lines">
|
537
560
|
|
538
561
|
|
539
|
-
|
540
|
-
|
541
|
-
|
562
|
+
134
|
563
|
+
135
|
564
|
+
136</pre>
|
542
565
|
</td>
|
543
566
|
<td>
|
544
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
567
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 134</span>
|
545
568
|
|
546
569
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_uid'>uid</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
547
570
|
<span class='ivar'>@uid</span> <span class='op'>=</span> <span class='id identifier rubyid_uid'>uid</span>
|
@@ -600,16 +623,6 @@
|
|
600
623
|
<pre class="lines">
|
601
624
|
|
602
625
|
|
603
|
-
107
|
604
|
-
108
|
605
|
-
109
|
606
|
-
110
|
607
|
-
111
|
608
|
-
112
|
609
|
-
113
|
610
|
-
114
|
611
|
-
115
|
612
|
-
116
|
613
626
|
117
|
614
627
|
118
|
615
628
|
119
|
@@ -790,10 +803,59 @@
|
|
790
803
|
294
|
791
804
|
295
|
792
805
|
296
|
793
|
-
297
|
806
|
+
297
|
807
|
+
298
|
808
|
+
299
|
809
|
+
300
|
810
|
+
301
|
811
|
+
302
|
812
|
+
303
|
813
|
+
304
|
814
|
+
305
|
815
|
+
306
|
816
|
+
307
|
817
|
+
308
|
818
|
+
309
|
819
|
+
310
|
820
|
+
311
|
821
|
+
312
|
822
|
+
313
|
823
|
+
314
|
824
|
+
315
|
825
|
+
316
|
826
|
+
317
|
827
|
+
318
|
828
|
+
319
|
829
|
+
320
|
830
|
+
321
|
831
|
+
322
|
832
|
+
323
|
833
|
+
324
|
834
|
+
325
|
835
|
+
326
|
836
|
+
327
|
837
|
+
328
|
838
|
+
329
|
839
|
+
330
|
840
|
+
331
|
841
|
+
332
|
842
|
+
333
|
843
|
+
334
|
844
|
+
335
|
845
|
+
336
|
846
|
+
337
|
847
|
+
338
|
848
|
+
339
|
849
|
+
340
|
850
|
+
341
|
851
|
+
342
|
852
|
+
343
|
853
|
+
344
|
854
|
+
345
|
855
|
+
346</pre>
|
794
856
|
</td>
|
795
857
|
<td>
|
796
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
858
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
797
859
|
|
798
860
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
799
861
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -825,9 +887,10 @@
|
|
825
887
|
|
826
888
|
<span class='comment'># Sets the `title` attribute.
|
827
889
|
</span> <span class='comment'>#
|
828
|
-
</span> <span class='comment'># @param
|
829
|
-
</span> <span class='
|
830
|
-
|
890
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
891
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
892
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
893
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
831
894
|
<span class='kw'>end</span>
|
832
895
|
|
833
896
|
<span class='comment'># Sets the `body` attribute.
|
@@ -839,33 +902,35 @@
|
|
839
902
|
|
840
903
|
<span class='comment'># Sets the `tags` attribute.
|
841
904
|
</span> <span class='comment'>#
|
842
|
-
</span> <span class='comment'># @param
|
843
|
-
</span> <span class='
|
844
|
-
|
845
|
-
|
905
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
906
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
907
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
908
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
909
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
846
910
|
<span class='kw'>else</span>
|
847
|
-
<span class='id identifier
|
911
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
848
912
|
<span class='kw'>end</span>
|
849
913
|
<span class='kw'>end</span>
|
850
914
|
|
851
915
|
<span class='comment'># Sets the `more` attribute.
|
852
916
|
</span> <span class='comment'>#
|
853
|
-
</span> <span class='comment'># @param
|
854
|
-
</span> <span class='
|
855
|
-
|
917
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
918
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
919
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
920
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
856
921
|
<span class='kw'>end</span>
|
857
922
|
|
858
923
|
<span class='comment'># Sets the `author` attribute.
|
859
924
|
</span> <span class='comment'>#
|
860
|
-
</span> <span class='comment'># @param
|
861
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
862
|
-
<span class='kw'>if</span> <span class='id identifier
|
863
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
864
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
865
|
-
<span class='id identifier
|
866
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
925
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
926
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
927
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
928
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
929
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
930
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
931
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
867
932
|
<span class='kw'>else</span>
|
868
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
933
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
869
934
|
<span class='kw'>end</span>
|
870
935
|
<span class='kw'>end</span>
|
871
936
|
|
@@ -893,18 +958,32 @@
|
|
893
958
|
|
894
959
|
<span class='comment'># Sets the `metadata` attribute.
|
895
960
|
</span> <span class='comment'>#
|
896
|
-
</span> <span class='comment'># @param
|
897
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
898
|
-
<span class='kw'>if</span> <span class='id identifier
|
899
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
961
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
962
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
963
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
964
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
900
965
|
<span class='kw'>else</span>
|
901
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
966
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
902
967
|
<span class='kw'>end</span>
|
903
968
|
<span class='kw'>end</span>
|
904
969
|
|
970
|
+
<span class='comment'># Returns the content as an Hash.
|
971
|
+
</span> <span class='comment'>#
|
972
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
973
|
+
</span> <span class='comment'># The only supported value are:
|
974
|
+
</span> <span class='comment'>#
|
975
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
976
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
977
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
978
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
979
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
980
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
981
|
+
<span class='kw'>end</span>
|
982
|
+
|
905
983
|
<span class='comment'># Validates locales for attribute retrieval.
|
906
984
|
</span> <span class='comment'>#
|
907
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
985
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
986
|
+
</span> <span class='comment'># used.
|
908
987
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
909
988
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
910
989
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -969,22 +1048,44 @@
|
|
969
1048
|
<span class='comment'># Extracts a date and time from a value.
|
970
1049
|
</span> <span class='comment'>#
|
971
1050
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
972
|
-
</span> <span class='comment'># @return [DateTime] The
|
1051
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
973
1052
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
974
1053
|
<span class='kw'>begin</span>
|
975
|
-
<span class='
|
976
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
977
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
978
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
979
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
980
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
981
|
-
<span class='kw'>end</span>
|
982
|
-
|
1054
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
983
1055
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
984
1056
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
985
1057
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
986
1058
|
<span class='kw'>end</span>
|
987
1059
|
<span class='kw'>end</span>
|
1060
|
+
|
1061
|
+
<span class='comment'># Parse a datetime
|
1062
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
1063
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
1064
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1065
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1066
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
1067
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1068
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
1069
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1070
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1071
|
+
<span class='kw'>end</span>
|
1072
|
+
<span class='kw'>end</span>
|
1073
|
+
|
1074
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
1075
|
+
</span> <span class='comment'>#
|
1076
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
1077
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
1078
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1079
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1080
|
+
<span class='kw'>end</span>
|
1081
|
+
|
1082
|
+
<span class='comment'># Check if value is an Hash.
|
1083
|
+
</span> <span class='comment'>#
|
1084
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
1085
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
1086
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1087
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
1088
|
+
<span class='kw'>end</span>
|
988
1089
|
<span class='kw'>end</span></pre>
|
989
1090
|
</td>
|
990
1091
|
</tr>
|
@@ -1004,7 +1105,8 @@
|
|
1004
1105
|
|
1005
1106
|
</h3><div class="docstring">
|
1006
1107
|
<div class="discussion">
|
1007
|
-
<p>Returns The content’s body. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple contents are specified
|
1108
|
+
<p>Returns The content’s body. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple contents are specified
|
1109
|
+
for multiple locales.</p>
|
1008
1110
|
|
1009
1111
|
|
1010
1112
|
</div>
|
@@ -1022,7 +1124,8 @@
|
|
1022
1124
|
|
1023
1125
|
|
1024
1126
|
—
|
1025
|
-
<div class='inline'><p>The content’s body. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple contents are specified
|
1127
|
+
<div class='inline'><p>The content’s body. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple contents are specified
|
1128
|
+
for multiple locales.</p>
|
1026
1129
|
</div>
|
1027
1130
|
|
1028
1131
|
</li>
|
@@ -1035,16 +1138,6 @@
|
|
1035
1138
|
<pre class="lines">
|
1036
1139
|
|
1037
1140
|
|
1038
|
-
107
|
1039
|
-
108
|
1040
|
-
109
|
1041
|
-
110
|
1042
|
-
111
|
1043
|
-
112
|
1044
|
-
113
|
1045
|
-
114
|
1046
|
-
115
|
1047
|
-
116
|
1048
1141
|
117
|
1049
1142
|
118
|
1050
1143
|
119
|
@@ -1225,10 +1318,59 @@
|
|
1225
1318
|
294
|
1226
1319
|
295
|
1227
1320
|
296
|
1228
|
-
297
|
1321
|
+
297
|
1322
|
+
298
|
1323
|
+
299
|
1324
|
+
300
|
1325
|
+
301
|
1326
|
+
302
|
1327
|
+
303
|
1328
|
+
304
|
1329
|
+
305
|
1330
|
+
306
|
1331
|
+
307
|
1332
|
+
308
|
1333
|
+
309
|
1334
|
+
310
|
1335
|
+
311
|
1336
|
+
312
|
1337
|
+
313
|
1338
|
+
314
|
1339
|
+
315
|
1340
|
+
316
|
1341
|
+
317
|
1342
|
+
318
|
1343
|
+
319
|
1344
|
+
320
|
1345
|
+
321
|
1346
|
+
322
|
1347
|
+
323
|
1348
|
+
324
|
1349
|
+
325
|
1350
|
+
326
|
1351
|
+
327
|
1352
|
+
328
|
1353
|
+
329
|
1354
|
+
330
|
1355
|
+
331
|
1356
|
+
332
|
1357
|
+
333
|
1358
|
+
334
|
1359
|
+
335
|
1360
|
+
336
|
1361
|
+
337
|
1362
|
+
338
|
1363
|
+
339
|
1364
|
+
340
|
1365
|
+
341
|
1366
|
+
342
|
1367
|
+
343
|
1368
|
+
344
|
1369
|
+
345
|
1370
|
+
346</pre>
|
1229
1371
|
</td>
|
1230
1372
|
<td>
|
1231
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
1373
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
1232
1374
|
|
1233
1375
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
1234
1376
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -1260,9 +1402,10 @@
|
|
1260
1402
|
|
1261
1403
|
<span class='comment'># Sets the `title` attribute.
|
1262
1404
|
</span> <span class='comment'>#
|
1263
|
-
</span> <span class='comment'># @param
|
1264
|
-
</span> <span class='
|
1265
|
-
|
1405
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1406
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
1407
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
1408
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
1266
1409
|
<span class='kw'>end</span>
|
1267
1410
|
|
1268
1411
|
<span class='comment'># Sets the `body` attribute.
|
@@ -1274,33 +1417,35 @@
|
|
1274
1417
|
|
1275
1418
|
<span class='comment'># Sets the `tags` attribute.
|
1276
1419
|
</span> <span class='comment'>#
|
1277
|
-
</span> <span class='comment'># @param
|
1278
|
-
</span> <span class='
|
1279
|
-
|
1280
|
-
|
1420
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1421
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
1422
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
1423
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1424
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1281
1425
|
<span class='kw'>else</span>
|
1282
|
-
<span class='id identifier
|
1426
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
1283
1427
|
<span class='kw'>end</span>
|
1284
1428
|
<span class='kw'>end</span>
|
1285
1429
|
|
1286
1430
|
<span class='comment'># Sets the `more` attribute.
|
1287
1431
|
</span> <span class='comment'>#
|
1288
|
-
</span> <span class='comment'># @param
|
1289
|
-
</span> <span class='
|
1290
|
-
|
1432
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1433
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
1434
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
1435
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
1291
1436
|
<span class='kw'>end</span>
|
1292
1437
|
|
1293
1438
|
<span class='comment'># Sets the `author` attribute.
|
1294
1439
|
</span> <span class='comment'>#
|
1295
|
-
</span> <span class='comment'># @param
|
1296
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
1297
|
-
<span class='kw'>if</span> <span class='id identifier
|
1298
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
1299
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
1300
|
-
<span class='id identifier
|
1301
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
1440
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
1441
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
1442
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1443
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
1444
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1445
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
1446
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
1302
1447
|
<span class='kw'>else</span>
|
1303
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
1448
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1304
1449
|
<span class='kw'>end</span>
|
1305
1450
|
<span class='kw'>end</span>
|
1306
1451
|
|
@@ -1328,18 +1473,32 @@
|
|
1328
1473
|
|
1329
1474
|
<span class='comment'># Sets the `metadata` attribute.
|
1330
1475
|
</span> <span class='comment'>#
|
1331
|
-
</span> <span class='comment'># @param
|
1332
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
1333
|
-
<span class='kw'>if</span> <span class='id identifier
|
1334
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
1476
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
1477
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
1478
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1479
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
1335
1480
|
<span class='kw'>else</span>
|
1336
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
1481
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1337
1482
|
<span class='kw'>end</span>
|
1338
1483
|
<span class='kw'>end</span>
|
1339
1484
|
|
1485
|
+
<span class='comment'># Returns the content as an Hash.
|
1486
|
+
</span> <span class='comment'>#
|
1487
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
1488
|
+
</span> <span class='comment'># The only supported value are:
|
1489
|
+
</span> <span class='comment'>#
|
1490
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
1491
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
1492
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
1493
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1494
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
1495
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1496
|
+
<span class='kw'>end</span>
|
1497
|
+
|
1340
1498
|
<span class='comment'># Validates locales for attribute retrieval.
|
1341
1499
|
</span> <span class='comment'>#
|
1342
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
1500
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
1501
|
+
</span> <span class='comment'># used.
|
1343
1502
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
1344
1503
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
1345
1504
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -1404,22 +1563,44 @@
|
|
1404
1563
|
<span class='comment'># Extracts a date and time from a value.
|
1405
1564
|
</span> <span class='comment'>#
|
1406
1565
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
1407
|
-
</span> <span class='comment'># @return [DateTime] The
|
1566
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
1408
1567
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1409
1568
|
<span class='kw'>begin</span>
|
1410
|
-
<span class='
|
1411
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1412
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
1413
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1414
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1415
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1416
|
-
<span class='kw'>end</span>
|
1417
|
-
|
1569
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
1418
1570
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1419
1571
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
1420
1572
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1421
1573
|
<span class='kw'>end</span>
|
1422
1574
|
<span class='kw'>end</span>
|
1575
|
+
|
1576
|
+
<span class='comment'># Parse a datetime
|
1577
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
1578
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
1579
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1580
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1581
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
1582
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1583
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
1584
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1585
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1586
|
+
<span class='kw'>end</span>
|
1587
|
+
<span class='kw'>end</span>
|
1588
|
+
|
1589
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
1590
|
+
</span> <span class='comment'>#
|
1591
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
1592
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
1593
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1594
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1595
|
+
<span class='kw'>end</span>
|
1596
|
+
|
1597
|
+
<span class='comment'># Check if value is an Hash.
|
1598
|
+
</span> <span class='comment'>#
|
1599
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
1600
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
1601
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1602
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
1603
|
+
<span class='kw'>end</span>
|
1423
1604
|
<span class='kw'>end</span></pre>
|
1424
1605
|
</td>
|
1425
1606
|
</tr>
|
@@ -1470,16 +1651,6 @@
|
|
1470
1651
|
<pre class="lines">
|
1471
1652
|
|
1472
1653
|
|
1473
|
-
107
|
1474
|
-
108
|
1475
|
-
109
|
1476
|
-
110
|
1477
|
-
111
|
1478
|
-
112
|
1479
|
-
113
|
1480
|
-
114
|
1481
|
-
115
|
1482
|
-
116
|
1483
1654
|
117
|
1484
1655
|
118
|
1485
1656
|
119
|
@@ -1660,10 +1831,59 @@
|
|
1660
1831
|
294
|
1661
1832
|
295
|
1662
1833
|
296
|
1663
|
-
297
|
1834
|
+
297
|
1835
|
+
298
|
1836
|
+
299
|
1837
|
+
300
|
1838
|
+
301
|
1839
|
+
302
|
1840
|
+
303
|
1841
|
+
304
|
1842
|
+
305
|
1843
|
+
306
|
1844
|
+
307
|
1845
|
+
308
|
1846
|
+
309
|
1847
|
+
310
|
1848
|
+
311
|
1849
|
+
312
|
1850
|
+
313
|
1851
|
+
314
|
1852
|
+
315
|
1853
|
+
316
|
1854
|
+
317
|
1855
|
+
318
|
1856
|
+
319
|
1857
|
+
320
|
1858
|
+
321
|
1859
|
+
322
|
1860
|
+
323
|
1861
|
+
324
|
1862
|
+
325
|
1863
|
+
326
|
1864
|
+
327
|
1865
|
+
328
|
1866
|
+
329
|
1867
|
+
330
|
1868
|
+
331
|
1869
|
+
332
|
1870
|
+
333
|
1871
|
+
334
|
1872
|
+
335
|
1873
|
+
336
|
1874
|
+
337
|
1875
|
+
338
|
1876
|
+
339
|
1877
|
+
340
|
1878
|
+
341
|
1879
|
+
342
|
1880
|
+
343
|
1881
|
+
344
|
1882
|
+
345
|
1883
|
+
346</pre>
|
1664
1884
|
</td>
|
1665
1885
|
<td>
|
1666
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
1886
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
1667
1887
|
|
1668
1888
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
1669
1889
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -1695,9 +1915,10 @@
|
|
1695
1915
|
|
1696
1916
|
<span class='comment'># Sets the `title` attribute.
|
1697
1917
|
</span> <span class='comment'>#
|
1698
|
-
</span> <span class='comment'># @param
|
1699
|
-
</span> <span class='
|
1700
|
-
|
1918
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1919
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
1920
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
1921
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
1701
1922
|
<span class='kw'>end</span>
|
1702
1923
|
|
1703
1924
|
<span class='comment'># Sets the `body` attribute.
|
@@ -1709,33 +1930,35 @@
|
|
1709
1930
|
|
1710
1931
|
<span class='comment'># Sets the `tags` attribute.
|
1711
1932
|
</span> <span class='comment'>#
|
1712
|
-
</span> <span class='comment'># @param
|
1713
|
-
</span> <span class='
|
1714
|
-
|
1715
|
-
|
1933
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1934
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
1935
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
1936
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1937
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1716
1938
|
<span class='kw'>else</span>
|
1717
|
-
<span class='id identifier
|
1939
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
1718
1940
|
<span class='kw'>end</span>
|
1719
1941
|
<span class='kw'>end</span>
|
1720
1942
|
|
1721
1943
|
<span class='comment'># Sets the `more` attribute.
|
1722
1944
|
</span> <span class='comment'>#
|
1723
|
-
</span> <span class='comment'># @param
|
1724
|
-
</span> <span class='
|
1725
|
-
|
1945
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
1946
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
1947
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
1948
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
1726
1949
|
<span class='kw'>end</span>
|
1727
1950
|
|
1728
1951
|
<span class='comment'># Sets the `author` attribute.
|
1729
1952
|
</span> <span class='comment'>#
|
1730
|
-
</span> <span class='comment'># @param
|
1731
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
1732
|
-
<span class='kw'>if</span> <span class='id identifier
|
1733
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
1734
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
1735
|
-
<span class='id identifier
|
1736
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
1953
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
1954
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
1955
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1956
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
1957
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1958
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
1959
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
1737
1960
|
<span class='kw'>else</span>
|
1738
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
1961
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1739
1962
|
<span class='kw'>end</span>
|
1740
1963
|
<span class='kw'>end</span>
|
1741
1964
|
|
@@ -1763,18 +1986,32 @@
|
|
1763
1986
|
|
1764
1987
|
<span class='comment'># Sets the `metadata` attribute.
|
1765
1988
|
</span> <span class='comment'>#
|
1766
|
-
</span> <span class='comment'># @param
|
1767
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
1768
|
-
<span class='kw'>if</span> <span class='id identifier
|
1769
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
1989
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
1990
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
1991
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1992
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
1770
1993
|
<span class='kw'>else</span>
|
1771
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
1994
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1772
1995
|
<span class='kw'>end</span>
|
1773
1996
|
<span class='kw'>end</span>
|
1774
1997
|
|
1998
|
+
<span class='comment'># Returns the content as an Hash.
|
1999
|
+
</span> <span class='comment'>#
|
2000
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
2001
|
+
</span> <span class='comment'># The only supported value are:
|
2002
|
+
</span> <span class='comment'>#
|
2003
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
2004
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
2005
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
2006
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
2007
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
2008
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2009
|
+
<span class='kw'>end</span>
|
2010
|
+
|
1775
2011
|
<span class='comment'># Validates locales for attribute retrieval.
|
1776
2012
|
</span> <span class='comment'>#
|
1777
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
2013
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
2014
|
+
</span> <span class='comment'># used.
|
1778
2015
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
1779
2016
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
1780
2017
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -1839,22 +2076,44 @@
|
|
1839
2076
|
<span class='comment'># Extracts a date and time from a value.
|
1840
2077
|
</span> <span class='comment'>#
|
1841
2078
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
1842
|
-
</span> <span class='comment'># @return [DateTime] The
|
2079
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
1843
2080
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1844
2081
|
<span class='kw'>begin</span>
|
1845
|
-
<span class='
|
1846
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1847
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
1848
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
1849
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
1850
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1851
|
-
<span class='kw'>end</span>
|
1852
|
-
|
2082
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
1853
2083
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
1854
2084
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
1855
2085
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1856
2086
|
<span class='kw'>end</span>
|
1857
2087
|
<span class='kw'>end</span>
|
2088
|
+
|
2089
|
+
<span class='comment'># Parse a datetime
|
2090
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
2091
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
2092
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2093
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
2094
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
2095
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2096
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
2097
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2098
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
2099
|
+
<span class='kw'>end</span>
|
2100
|
+
<span class='kw'>end</span>
|
2101
|
+
|
2102
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
2103
|
+
</span> <span class='comment'>#
|
2104
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
2105
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
2106
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2107
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2108
|
+
<span class='kw'>end</span>
|
2109
|
+
|
2110
|
+
<span class='comment'># Check if value is an Hash.
|
2111
|
+
</span> <span class='comment'>#
|
2112
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
2113
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
2114
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2115
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
2116
|
+
<span class='kw'>end</span>
|
1858
2117
|
<span class='kw'>end</span></pre>
|
1859
2118
|
</td>
|
1860
2119
|
</tr>
|
@@ -1905,16 +2164,6 @@
|
|
1905
2164
|
<pre class="lines">
|
1906
2165
|
|
1907
2166
|
|
1908
|
-
107
|
1909
|
-
108
|
1910
|
-
109
|
1911
|
-
110
|
1912
|
-
111
|
1913
|
-
112
|
1914
|
-
113
|
1915
|
-
114
|
1916
|
-
115
|
1917
|
-
116
|
1918
2167
|
117
|
1919
2168
|
118
|
1920
2169
|
119
|
@@ -2095,10 +2344,59 @@
|
|
2095
2344
|
294
|
2096
2345
|
295
|
2097
2346
|
296
|
2098
|
-
297
|
2347
|
+
297
|
2348
|
+
298
|
2349
|
+
299
|
2350
|
+
300
|
2351
|
+
301
|
2352
|
+
302
|
2353
|
+
303
|
2354
|
+
304
|
2355
|
+
305
|
2356
|
+
306
|
2357
|
+
307
|
2358
|
+
308
|
2359
|
+
309
|
2360
|
+
310
|
2361
|
+
311
|
2362
|
+
312
|
2363
|
+
313
|
2364
|
+
314
|
2365
|
+
315
|
2366
|
+
316
|
2367
|
+
317
|
2368
|
+
318
|
2369
|
+
319
|
2370
|
+
320
|
2371
|
+
321
|
2372
|
+
322
|
2373
|
+
323
|
2374
|
+
324
|
2375
|
+
325
|
2376
|
+
326
|
2377
|
+
327
|
2378
|
+
328
|
2379
|
+
329
|
2380
|
+
330
|
2381
|
+
331
|
2382
|
+
332
|
2383
|
+
333
|
2384
|
+
334
|
2385
|
+
335
|
2386
|
+
336
|
2387
|
+
337
|
2388
|
+
338
|
2389
|
+
339
|
2390
|
+
340
|
2391
|
+
341
|
2392
|
+
342
|
2393
|
+
343
|
2394
|
+
344
|
2395
|
+
345
|
2396
|
+
346</pre>
|
2099
2397
|
</td>
|
2100
2398
|
<td>
|
2101
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
2399
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
2102
2400
|
|
2103
2401
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
2104
2402
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -2130,9 +2428,10 @@
|
|
2130
2428
|
|
2131
2429
|
<span class='comment'># Sets the `title` attribute.
|
2132
2430
|
</span> <span class='comment'>#
|
2133
|
-
</span> <span class='comment'># @param
|
2134
|
-
</span> <span class='
|
2135
|
-
|
2431
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2432
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
2433
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
2434
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
2136
2435
|
<span class='kw'>end</span>
|
2137
2436
|
|
2138
2437
|
<span class='comment'># Sets the `body` attribute.
|
@@ -2144,33 +2443,35 @@
|
|
2144
2443
|
|
2145
2444
|
<span class='comment'># Sets the `tags` attribute.
|
2146
2445
|
</span> <span class='comment'>#
|
2147
|
-
</span> <span class='comment'># @param
|
2148
|
-
</span> <span class='
|
2149
|
-
|
2150
|
-
|
2446
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2447
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
2448
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
2449
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2450
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2151
2451
|
<span class='kw'>else</span>
|
2152
|
-
<span class='id identifier
|
2452
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
2153
2453
|
<span class='kw'>end</span>
|
2154
2454
|
<span class='kw'>end</span>
|
2155
2455
|
|
2156
2456
|
<span class='comment'># Sets the `more` attribute.
|
2157
2457
|
</span> <span class='comment'>#
|
2158
|
-
</span> <span class='comment'># @param
|
2159
|
-
</span> <span class='
|
2160
|
-
|
2458
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2459
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
2460
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
2461
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
2161
2462
|
<span class='kw'>end</span>
|
2162
2463
|
|
2163
2464
|
<span class='comment'># Sets the `author` attribute.
|
2164
2465
|
</span> <span class='comment'>#
|
2165
|
-
</span> <span class='comment'># @param
|
2166
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
2167
|
-
<span class='kw'>if</span> <span class='id identifier
|
2168
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
2169
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
2170
|
-
<span class='id identifier
|
2171
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
2466
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
2467
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
2468
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2469
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
2470
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2471
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
2472
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
2172
2473
|
<span class='kw'>else</span>
|
2173
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
2474
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2174
2475
|
<span class='kw'>end</span>
|
2175
2476
|
<span class='kw'>end</span>
|
2176
2477
|
|
@@ -2198,18 +2499,32 @@
|
|
2198
2499
|
|
2199
2500
|
<span class='comment'># Sets the `metadata` attribute.
|
2200
2501
|
</span> <span class='comment'>#
|
2201
|
-
</span> <span class='comment'># @param
|
2202
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
2203
|
-
<span class='kw'>if</span> <span class='id identifier
|
2204
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
2502
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
2503
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
2504
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2505
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
2205
2506
|
<span class='kw'>else</span>
|
2206
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
2507
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
2207
2508
|
<span class='kw'>end</span>
|
2208
2509
|
<span class='kw'>end</span>
|
2209
2510
|
|
2511
|
+
<span class='comment'># Returns the content as an Hash.
|
2512
|
+
</span> <span class='comment'>#
|
2513
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
2514
|
+
</span> <span class='comment'># The only supported value are:
|
2515
|
+
</span> <span class='comment'>#
|
2516
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
2517
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
2518
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
2519
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
2520
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
2521
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2522
|
+
<span class='kw'>end</span>
|
2523
|
+
|
2210
2524
|
<span class='comment'># Validates locales for attribute retrieval.
|
2211
2525
|
</span> <span class='comment'>#
|
2212
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
2526
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
2527
|
+
</span> <span class='comment'># used.
|
2213
2528
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
2214
2529
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
2215
2530
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -2274,22 +2589,44 @@
|
|
2274
2589
|
<span class='comment'># Extracts a date and time from a value.
|
2275
2590
|
</span> <span class='comment'>#
|
2276
2591
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
2277
|
-
</span> <span class='comment'># @return [DateTime] The
|
2592
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
2278
2593
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2279
2594
|
<span class='kw'>begin</span>
|
2280
|
-
<span class='
|
2281
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2282
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
2283
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2284
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2285
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
2286
|
-
<span class='kw'>end</span>
|
2287
|
-
|
2595
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
2288
2596
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2289
2597
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
2290
2598
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
2291
2599
|
<span class='kw'>end</span>
|
2292
2600
|
<span class='kw'>end</span>
|
2601
|
+
|
2602
|
+
<span class='comment'># Parse a datetime
|
2603
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
2604
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
2605
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2606
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
2607
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
2608
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2609
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
2610
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2611
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
2612
|
+
<span class='kw'>end</span>
|
2613
|
+
<span class='kw'>end</span>
|
2614
|
+
|
2615
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
2616
|
+
</span> <span class='comment'>#
|
2617
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
2618
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
2619
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2620
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2621
|
+
<span class='kw'>end</span>
|
2622
|
+
|
2623
|
+
<span class='comment'># Check if value is an Hash.
|
2624
|
+
</span> <span class='comment'>#
|
2625
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
2626
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
2627
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2628
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
2629
|
+
<span class='kw'>end</span>
|
2293
2630
|
<span class='kw'>end</span></pre>
|
2294
2631
|
</td>
|
2295
2632
|
</tr>
|
@@ -2340,16 +2677,6 @@
|
|
2340
2677
|
<pre class="lines">
|
2341
2678
|
|
2342
2679
|
|
2343
|
-
107
|
2344
|
-
108
|
2345
|
-
109
|
2346
|
-
110
|
2347
|
-
111
|
2348
|
-
112
|
2349
|
-
113
|
2350
|
-
114
|
2351
|
-
115
|
2352
|
-
116
|
2353
2680
|
117
|
2354
2681
|
118
|
2355
2682
|
119
|
@@ -2530,10 +2857,59 @@
|
|
2530
2857
|
294
|
2531
2858
|
295
|
2532
2859
|
296
|
2533
|
-
297
|
2860
|
+
297
|
2861
|
+
298
|
2862
|
+
299
|
2863
|
+
300
|
2864
|
+
301
|
2865
|
+
302
|
2866
|
+
303
|
2867
|
+
304
|
2868
|
+
305
|
2869
|
+
306
|
2870
|
+
307
|
2871
|
+
308
|
2872
|
+
309
|
2873
|
+
310
|
2874
|
+
311
|
2875
|
+
312
|
2876
|
+
313
|
2877
|
+
314
|
2878
|
+
315
|
2879
|
+
316
|
2880
|
+
317
|
2881
|
+
318
|
2882
|
+
319
|
2883
|
+
320
|
2884
|
+
321
|
2885
|
+
322
|
2886
|
+
323
|
2887
|
+
324
|
2888
|
+
325
|
2889
|
+
326
|
2890
|
+
327
|
2891
|
+
328
|
2892
|
+
329
|
2893
|
+
330
|
2894
|
+
331
|
2895
|
+
332
|
2896
|
+
333
|
2897
|
+
334
|
2898
|
+
335
|
2899
|
+
336
|
2900
|
+
337
|
2901
|
+
338
|
2902
|
+
339
|
2903
|
+
340
|
2904
|
+
341
|
2905
|
+
342
|
2906
|
+
343
|
2907
|
+
344
|
2908
|
+
345
|
2909
|
+
346</pre>
|
2534
2910
|
</td>
|
2535
2911
|
<td>
|
2536
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
2912
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
2537
2913
|
|
2538
2914
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
2539
2915
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -2565,9 +2941,10 @@
|
|
2565
2941
|
|
2566
2942
|
<span class='comment'># Sets the `title` attribute.
|
2567
2943
|
</span> <span class='comment'>#
|
2568
|
-
</span> <span class='comment'># @param
|
2569
|
-
</span> <span class='
|
2570
|
-
|
2944
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2945
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
2946
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
2947
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
2571
2948
|
<span class='kw'>end</span>
|
2572
2949
|
|
2573
2950
|
<span class='comment'># Sets the `body` attribute.
|
@@ -2579,33 +2956,35 @@
|
|
2579
2956
|
|
2580
2957
|
<span class='comment'># Sets the `tags` attribute.
|
2581
2958
|
</span> <span class='comment'>#
|
2582
|
-
</span> <span class='comment'># @param
|
2583
|
-
</span> <span class='
|
2584
|
-
|
2585
|
-
|
2959
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2960
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
2961
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
2962
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2963
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2586
2964
|
<span class='kw'>else</span>
|
2587
|
-
<span class='id identifier
|
2965
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
2588
2966
|
<span class='kw'>end</span>
|
2589
2967
|
<span class='kw'>end</span>
|
2590
2968
|
|
2591
2969
|
<span class='comment'># Sets the `more` attribute.
|
2592
2970
|
</span> <span class='comment'>#
|
2593
|
-
</span> <span class='comment'># @param
|
2594
|
-
</span> <span class='
|
2595
|
-
|
2971
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
2972
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
2973
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
2974
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
2596
2975
|
<span class='kw'>end</span>
|
2597
2976
|
|
2598
2977
|
<span class='comment'># Sets the `author` attribute.
|
2599
2978
|
</span> <span class='comment'>#
|
2600
|
-
</span> <span class='comment'># @param
|
2601
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
2602
|
-
<span class='kw'>if</span> <span class='id identifier
|
2603
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
2604
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
2605
|
-
<span class='id identifier
|
2606
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
2979
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
2980
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
2981
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2982
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
2983
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2984
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
2985
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
2607
2986
|
<span class='kw'>else</span>
|
2608
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
2987
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2609
2988
|
<span class='kw'>end</span>
|
2610
2989
|
<span class='kw'>end</span>
|
2611
2990
|
|
@@ -2633,18 +3012,32 @@
|
|
2633
3012
|
|
2634
3013
|
<span class='comment'># Sets the `metadata` attribute.
|
2635
3014
|
</span> <span class='comment'>#
|
2636
|
-
</span> <span class='comment'># @param
|
2637
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
2638
|
-
<span class='kw'>if</span> <span class='id identifier
|
2639
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
3015
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
3016
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
3017
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3018
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
2640
3019
|
<span class='kw'>else</span>
|
2641
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
3020
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
2642
3021
|
<span class='kw'>end</span>
|
2643
3022
|
<span class='kw'>end</span>
|
2644
3023
|
|
3024
|
+
<span class='comment'># Returns the content as an Hash.
|
3025
|
+
</span> <span class='comment'>#
|
3026
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
3027
|
+
</span> <span class='comment'># The only supported value are:
|
3028
|
+
</span> <span class='comment'>#
|
3029
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
3030
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
3031
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
3032
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
3033
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
3034
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
3035
|
+
<span class='kw'>end</span>
|
3036
|
+
|
2645
3037
|
<span class='comment'># Validates locales for attribute retrieval.
|
2646
3038
|
</span> <span class='comment'>#
|
2647
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
3039
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
3040
|
+
</span> <span class='comment'># used.
|
2648
3041
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
2649
3042
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
2650
3043
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -2709,22 +3102,44 @@
|
|
2709
3102
|
<span class='comment'># Extracts a date and time from a value.
|
2710
3103
|
</span> <span class='comment'>#
|
2711
3104
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
2712
|
-
</span> <span class='comment'># @return [DateTime] The
|
3105
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
2713
3106
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
2714
3107
|
<span class='kw'>begin</span>
|
2715
|
-
<span class='
|
2716
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2717
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
2718
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
2719
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
2720
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
2721
|
-
<span class='kw'>end</span>
|
2722
|
-
|
3108
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
2723
3109
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
2724
3110
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
2725
3111
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
2726
3112
|
<span class='kw'>end</span>
|
2727
3113
|
<span class='kw'>end</span>
|
3114
|
+
|
3115
|
+
<span class='comment'># Parse a datetime
|
3116
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
3117
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
3118
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3119
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
3120
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
3121
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3122
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
3123
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3124
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
3125
|
+
<span class='kw'>end</span>
|
3126
|
+
<span class='kw'>end</span>
|
3127
|
+
|
3128
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
3129
|
+
</span> <span class='comment'>#
|
3130
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
3131
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
3132
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3133
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
3134
|
+
<span class='kw'>end</span>
|
3135
|
+
|
3136
|
+
<span class='comment'># Check if value is an Hash.
|
3137
|
+
</span> <span class='comment'>#
|
3138
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
3139
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
3140
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3141
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
3142
|
+
<span class='kw'>end</span>
|
2728
3143
|
<span class='kw'>end</span></pre>
|
2729
3144
|
</td>
|
2730
3145
|
</tr>
|
@@ -2758,12 +3173,12 @@
|
|
2758
3173
|
<pre class="lines">
|
2759
3174
|
|
2760
3175
|
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
3176
|
+
125
|
3177
|
+
126
|
3178
|
+
127</pre>
|
2764
3179
|
</td>
|
2765
3180
|
<td>
|
2766
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
3181
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 125</span>
|
2767
3182
|
|
2768
3183
|
<span class='kw'>def</span> <span class='id identifier rubyid_more'>more</span>
|
2769
3184
|
<span class='ivar'>@more</span>
|
@@ -2786,7 +3201,8 @@
|
|
2786
3201
|
|
2787
3202
|
</h3><div class="docstring">
|
2788
3203
|
<div class="discussion">
|
2789
|
-
<p>Returns The tags associated with the content. Can be an <code>Array</code> or an <code>HashWithIndifferentAccess</code>, if multiple tags set
|
3204
|
+
<p>Returns The tags associated with the content. Can be an <code>Array</code> or an <code>HashWithIndifferentAccess</code>, if multiple tags set
|
3205
|
+
are specified for multiple locales.</p>
|
2790
3206
|
|
2791
3207
|
|
2792
3208
|
</div>
|
@@ -2804,7 +3220,8 @@
|
|
2804
3220
|
|
2805
3221
|
|
2806
3222
|
—
|
2807
|
-
<div class='inline'><p>The tags associated with the content. Can be an <code>Array</code> or an <code>HashWithIndifferentAccess</code>, if multiple tags set
|
3223
|
+
<div class='inline'><p>The tags associated with the content. Can be an <code>Array</code> or an <code>HashWithIndifferentAccess</code>, if multiple tags set
|
3224
|
+
are specified for multiple locales.</p>
|
2808
3225
|
</div>
|
2809
3226
|
|
2810
3227
|
</li>
|
@@ -2817,16 +3234,6 @@
|
|
2817
3234
|
<pre class="lines">
|
2818
3235
|
|
2819
3236
|
|
2820
|
-
107
|
2821
|
-
108
|
2822
|
-
109
|
2823
|
-
110
|
2824
|
-
111
|
2825
|
-
112
|
2826
|
-
113
|
2827
|
-
114
|
2828
|
-
115
|
2829
|
-
116
|
2830
3237
|
117
|
2831
3238
|
118
|
2832
3239
|
119
|
@@ -3007,10 +3414,59 @@
|
|
3007
3414
|
294
|
3008
3415
|
295
|
3009
3416
|
296
|
3010
|
-
297
|
3417
|
+
297
|
3418
|
+
298
|
3419
|
+
299
|
3420
|
+
300
|
3421
|
+
301
|
3422
|
+
302
|
3423
|
+
303
|
3424
|
+
304
|
3425
|
+
305
|
3426
|
+
306
|
3427
|
+
307
|
3428
|
+
308
|
3429
|
+
309
|
3430
|
+
310
|
3431
|
+
311
|
3432
|
+
312
|
3433
|
+
313
|
3434
|
+
314
|
3435
|
+
315
|
3436
|
+
316
|
3437
|
+
317
|
3438
|
+
318
|
3439
|
+
319
|
3440
|
+
320
|
3441
|
+
321
|
3442
|
+
322
|
3443
|
+
323
|
3444
|
+
324
|
3445
|
+
325
|
3446
|
+
326
|
3447
|
+
327
|
3448
|
+
328
|
3449
|
+
329
|
3450
|
+
330
|
3451
|
+
331
|
3452
|
+
332
|
3453
|
+
333
|
3454
|
+
334
|
3455
|
+
335
|
3456
|
+
336
|
3457
|
+
337
|
3458
|
+
338
|
3459
|
+
339
|
3460
|
+
340
|
3461
|
+
341
|
3462
|
+
342
|
3463
|
+
343
|
3464
|
+
344
|
3465
|
+
345
|
3466
|
+
346</pre>
|
3011
3467
|
</td>
|
3012
3468
|
<td>
|
3013
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
3469
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
3014
3470
|
|
3015
3471
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
3016
3472
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -3042,9 +3498,10 @@
|
|
3042
3498
|
|
3043
3499
|
<span class='comment'># Sets the `title` attribute.
|
3044
3500
|
</span> <span class='comment'>#
|
3045
|
-
</span> <span class='comment'># @param
|
3046
|
-
</span> <span class='
|
3047
|
-
|
3501
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
3502
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
3503
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
3504
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3048
3505
|
<span class='kw'>end</span>
|
3049
3506
|
|
3050
3507
|
<span class='comment'># Sets the `body` attribute.
|
@@ -3056,33 +3513,35 @@
|
|
3056
3513
|
|
3057
3514
|
<span class='comment'># Sets the `tags` attribute.
|
3058
3515
|
</span> <span class='comment'>#
|
3059
|
-
</span> <span class='comment'># @param
|
3060
|
-
</span> <span class='
|
3061
|
-
|
3062
|
-
|
3516
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
3517
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
3518
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
3519
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3520
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
3063
3521
|
<span class='kw'>else</span>
|
3064
|
-
<span class='id identifier
|
3522
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
3065
3523
|
<span class='kw'>end</span>
|
3066
3524
|
<span class='kw'>end</span>
|
3067
3525
|
|
3068
3526
|
<span class='comment'># Sets the `more` attribute.
|
3069
3527
|
</span> <span class='comment'>#
|
3070
|
-
</span> <span class='comment'># @param
|
3071
|
-
</span> <span class='
|
3072
|
-
|
3528
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
3529
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
3530
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
3531
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3073
3532
|
<span class='kw'>end</span>
|
3074
3533
|
|
3075
3534
|
<span class='comment'># Sets the `author` attribute.
|
3076
3535
|
</span> <span class='comment'>#
|
3077
|
-
</span> <span class='comment'># @param
|
3078
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
3079
|
-
<span class='kw'>if</span> <span class='id identifier
|
3080
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
3081
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
3082
|
-
<span class='id identifier
|
3083
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
3536
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
3537
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
3538
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3539
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
3540
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3541
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
3542
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
3084
3543
|
<span class='kw'>else</span>
|
3085
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
3544
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3086
3545
|
<span class='kw'>end</span>
|
3087
3546
|
<span class='kw'>end</span>
|
3088
3547
|
|
@@ -3110,18 +3569,32 @@
|
|
3110
3569
|
|
3111
3570
|
<span class='comment'># Sets the `metadata` attribute.
|
3112
3571
|
</span> <span class='comment'>#
|
3113
|
-
</span> <span class='comment'># @param
|
3114
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
3115
|
-
<span class='kw'>if</span> <span class='id identifier
|
3116
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
3572
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
3573
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
3574
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3575
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
3117
3576
|
<span class='kw'>else</span>
|
3118
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
3577
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
3119
3578
|
<span class='kw'>end</span>
|
3120
3579
|
<span class='kw'>end</span>
|
3121
3580
|
|
3581
|
+
<span class='comment'># Returns the content as an Hash.
|
3582
|
+
</span> <span class='comment'>#
|
3583
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
3584
|
+
</span> <span class='comment'># The only supported value are:
|
3585
|
+
</span> <span class='comment'>#
|
3586
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
3587
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
3588
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
3589
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
3590
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
3591
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
3592
|
+
<span class='kw'>end</span>
|
3593
|
+
|
3122
3594
|
<span class='comment'># Validates locales for attribute retrieval.
|
3123
3595
|
</span> <span class='comment'>#
|
3124
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
3596
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
3597
|
+
</span> <span class='comment'># used.
|
3125
3598
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
3126
3599
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
3127
3600
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -3186,22 +3659,44 @@
|
|
3186
3659
|
<span class='comment'># Extracts a date and time from a value.
|
3187
3660
|
</span> <span class='comment'>#
|
3188
3661
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
3189
|
-
</span> <span class='comment'># @return [DateTime] The
|
3662
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
3190
3663
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3191
3664
|
<span class='kw'>begin</span>
|
3192
|
-
<span class='
|
3193
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3194
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
3195
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3196
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3197
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
3198
|
-
<span class='kw'>end</span>
|
3199
|
-
|
3665
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
3200
3666
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3201
3667
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
3202
3668
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
3203
3669
|
<span class='kw'>end</span>
|
3204
3670
|
<span class='kw'>end</span>
|
3671
|
+
|
3672
|
+
<span class='comment'># Parse a datetime
|
3673
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
3674
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
3675
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3676
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
3677
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
3678
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3679
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
3680
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3681
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
3682
|
+
<span class='kw'>end</span>
|
3683
|
+
<span class='kw'>end</span>
|
3684
|
+
|
3685
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
3686
|
+
</span> <span class='comment'>#
|
3687
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
3688
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
3689
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3690
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
3691
|
+
<span class='kw'>end</span>
|
3692
|
+
|
3693
|
+
<span class='comment'># Check if value is an Hash.
|
3694
|
+
</span> <span class='comment'>#
|
3695
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
3696
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
3697
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3698
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
3699
|
+
<span class='kw'>end</span>
|
3205
3700
|
<span class='kw'>end</span></pre>
|
3206
3701
|
</td>
|
3207
3702
|
</tr>
|
@@ -3221,7 +3716,8 @@
|
|
3221
3716
|
|
3222
3717
|
</h3><div class="docstring">
|
3223
3718
|
<div class="discussion">
|
3224
|
-
<p>Returns The content’s title. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple title are specified for
|
3719
|
+
<p>Returns The content’s title. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple title are specified for
|
3720
|
+
multiple locales.</p>
|
3225
3721
|
|
3226
3722
|
|
3227
3723
|
</div>
|
@@ -3239,7 +3735,8 @@
|
|
3239
3735
|
|
3240
3736
|
|
3241
3737
|
—
|
3242
|
-
<div class='inline'><p>The content’s title. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple title are specified for
|
3738
|
+
<div class='inline'><p>The content’s title. Can be a <code>String</code> or an <code>HashWithIndifferentAccess</code>, if multiple title are specified for
|
3739
|
+
multiple locales.</p>
|
3243
3740
|
</div>
|
3244
3741
|
|
3245
3742
|
</li>
|
@@ -3252,16 +3749,6 @@
|
|
3252
3749
|
<pre class="lines">
|
3253
3750
|
|
3254
3751
|
|
3255
|
-
107
|
3256
|
-
108
|
3257
|
-
109
|
3258
|
-
110
|
3259
|
-
111
|
3260
|
-
112
|
3261
|
-
113
|
3262
|
-
114
|
3263
|
-
115
|
3264
|
-
116
|
3265
3752
|
117
|
3266
3753
|
118
|
3267
3754
|
119
|
@@ -3442,10 +3929,59 @@
|
|
3442
3929
|
294
|
3443
3930
|
295
|
3444
3931
|
296
|
3445
|
-
297
|
3932
|
+
297
|
3933
|
+
298
|
3934
|
+
299
|
3935
|
+
300
|
3936
|
+
301
|
3937
|
+
302
|
3938
|
+
303
|
3939
|
+
304
|
3940
|
+
305
|
3941
|
+
306
|
3942
|
+
307
|
3943
|
+
308
|
3944
|
+
309
|
3945
|
+
310
|
3946
|
+
311
|
3947
|
+
312
|
3948
|
+
313
|
3949
|
+
314
|
3950
|
+
315
|
3951
|
+
316
|
3952
|
+
317
|
3953
|
+
318
|
3954
|
+
319
|
3955
|
+
320
|
3956
|
+
321
|
3957
|
+
322
|
3958
|
+
323
|
3959
|
+
324
|
3960
|
+
325
|
3961
|
+
326
|
3962
|
+
327
|
3963
|
+
328
|
3964
|
+
329
|
3965
|
+
330
|
3966
|
+
331
|
3967
|
+
332
|
3968
|
+
333
|
3969
|
+
334
|
3970
|
+
335
|
3971
|
+
336
|
3972
|
+
337
|
3973
|
+
338
|
3974
|
+
339
|
3975
|
+
340
|
3976
|
+
341
|
3977
|
+
342
|
3978
|
+
343
|
3979
|
+
344
|
3980
|
+
345
|
3981
|
+
346</pre>
|
3446
3982
|
</td>
|
3447
3983
|
<td>
|
3448
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
3984
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
3449
3985
|
|
3450
3986
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
3451
3987
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -3477,9 +4013,10 @@
|
|
3477
4013
|
|
3478
4014
|
<span class='comment'># Sets the `title` attribute.
|
3479
4015
|
</span> <span class='comment'>#
|
3480
|
-
</span> <span class='comment'># @param
|
3481
|
-
</span> <span class='
|
3482
|
-
|
4016
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4017
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
4018
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
4019
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3483
4020
|
<span class='kw'>end</span>
|
3484
4021
|
|
3485
4022
|
<span class='comment'># Sets the `body` attribute.
|
@@ -3491,33 +4028,35 @@
|
|
3491
4028
|
|
3492
4029
|
<span class='comment'># Sets the `tags` attribute.
|
3493
4030
|
</span> <span class='comment'>#
|
3494
|
-
</span> <span class='comment'># @param
|
3495
|
-
</span> <span class='
|
3496
|
-
|
3497
|
-
|
4031
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4032
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
4033
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
4034
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4035
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
3498
4036
|
<span class='kw'>else</span>
|
3499
|
-
<span class='id identifier
|
4037
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
3500
4038
|
<span class='kw'>end</span>
|
3501
4039
|
<span class='kw'>end</span>
|
3502
4040
|
|
3503
4041
|
<span class='comment'># Sets the `more` attribute.
|
3504
4042
|
</span> <span class='comment'>#
|
3505
|
-
</span> <span class='comment'># @param
|
3506
|
-
</span> <span class='
|
3507
|
-
|
4043
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4044
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
4045
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
4046
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3508
4047
|
<span class='kw'>end</span>
|
3509
4048
|
|
3510
4049
|
<span class='comment'># Sets the `author` attribute.
|
3511
4050
|
</span> <span class='comment'>#
|
3512
|
-
</span> <span class='comment'># @param
|
3513
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
3514
|
-
<span class='kw'>if</span> <span class='id identifier
|
3515
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
3516
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
3517
|
-
<span class='id identifier
|
3518
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
4051
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
4052
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
4053
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4054
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
4055
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4056
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
4057
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
3519
4058
|
<span class='kw'>else</span>
|
3520
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
4059
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3521
4060
|
<span class='kw'>end</span>
|
3522
4061
|
<span class='kw'>end</span>
|
3523
4062
|
|
@@ -3545,18 +4084,32 @@
|
|
3545
4084
|
|
3546
4085
|
<span class='comment'># Sets the `metadata` attribute.
|
3547
4086
|
</span> <span class='comment'>#
|
3548
|
-
</span> <span class='comment'># @param
|
3549
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
3550
|
-
<span class='kw'>if</span> <span class='id identifier
|
3551
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
4087
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
4088
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
4089
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4090
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
3552
4091
|
<span class='kw'>else</span>
|
3553
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
4092
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
3554
4093
|
<span class='kw'>end</span>
|
3555
4094
|
<span class='kw'>end</span>
|
3556
4095
|
|
4096
|
+
<span class='comment'># Returns the content as an Hash.
|
4097
|
+
</span> <span class='comment'>#
|
4098
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
4099
|
+
</span> <span class='comment'># The only supported value are:
|
4100
|
+
</span> <span class='comment'>#
|
4101
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
4102
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
4103
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
4104
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
4105
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
4106
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
4107
|
+
<span class='kw'>end</span>
|
4108
|
+
|
3557
4109
|
<span class='comment'># Validates locales for attribute retrieval.
|
3558
4110
|
</span> <span class='comment'>#
|
3559
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
4111
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
4112
|
+
</span> <span class='comment'># used.
|
3560
4113
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
3561
4114
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
3562
4115
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -3621,22 +4174,44 @@
|
|
3621
4174
|
<span class='comment'># Extracts a date and time from a value.
|
3622
4175
|
</span> <span class='comment'>#
|
3623
4176
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
3624
|
-
</span> <span class='comment'># @return [DateTime] The
|
4177
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
3625
4178
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
3626
4179
|
<span class='kw'>begin</span>
|
3627
|
-
<span class='
|
3628
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3629
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
3630
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
3631
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
3632
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
3633
|
-
<span class='kw'>end</span>
|
3634
|
-
|
4180
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
3635
4181
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3636
4182
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
3637
4183
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
3638
4184
|
<span class='kw'>end</span>
|
3639
4185
|
<span class='kw'>end</span>
|
4186
|
+
|
4187
|
+
<span class='comment'># Parse a datetime
|
4188
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
4189
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
4190
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4191
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
4192
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
4193
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4194
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
4195
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
4196
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
4197
|
+
<span class='kw'>end</span>
|
4198
|
+
<span class='kw'>end</span>
|
4199
|
+
|
4200
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
4201
|
+
</span> <span class='comment'>#
|
4202
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
4203
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
4204
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4205
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
4206
|
+
<span class='kw'>end</span>
|
4207
|
+
|
4208
|
+
<span class='comment'># Check if value is an Hash.
|
4209
|
+
</span> <span class='comment'>#
|
4210
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
4211
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
4212
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4213
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
4214
|
+
<span class='kw'>end</span>
|
3640
4215
|
<span class='kw'>end</span></pre>
|
3641
4216
|
</td>
|
3642
4217
|
</tr>
|
@@ -3687,16 +4262,6 @@
|
|
3687
4262
|
<pre class="lines">
|
3688
4263
|
|
3689
4264
|
|
3690
|
-
107
|
3691
|
-
108
|
3692
|
-
109
|
3693
|
-
110
|
3694
|
-
111
|
3695
|
-
112
|
3696
|
-
113
|
3697
|
-
114
|
3698
|
-
115
|
3699
|
-
116
|
3700
4265
|
117
|
3701
4266
|
118
|
3702
4267
|
119
|
@@ -3877,10 +4442,59 @@
|
|
3877
4442
|
294
|
3878
4443
|
295
|
3879
4444
|
296
|
3880
|
-
297
|
4445
|
+
297
|
4446
|
+
298
|
4447
|
+
299
|
4448
|
+
300
|
4449
|
+
301
|
4450
|
+
302
|
4451
|
+
303
|
4452
|
+
304
|
4453
|
+
305
|
4454
|
+
306
|
4455
|
+
307
|
4456
|
+
308
|
4457
|
+
309
|
4458
|
+
310
|
4459
|
+
311
|
4460
|
+
312
|
4461
|
+
313
|
4462
|
+
314
|
4463
|
+
315
|
4464
|
+
316
|
4465
|
+
317
|
4466
|
+
318
|
4467
|
+
319
|
4468
|
+
320
|
4469
|
+
321
|
4470
|
+
322
|
4471
|
+
323
|
4472
|
+
324
|
4473
|
+
325
|
4474
|
+
326
|
4475
|
+
327
|
4476
|
+
328
|
4477
|
+
329
|
4478
|
+
330
|
4479
|
+
331
|
4480
|
+
332
|
4481
|
+
333
|
4482
|
+
334
|
4483
|
+
335
|
4484
|
+
336
|
4485
|
+
337
|
4486
|
+
338
|
4487
|
+
339
|
4488
|
+
340
|
4489
|
+
341
|
4490
|
+
342
|
4491
|
+
343
|
4492
|
+
344
|
4493
|
+
345
|
4494
|
+
346</pre>
|
3881
4495
|
</td>
|
3882
4496
|
<td>
|
3883
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
4497
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
3884
4498
|
|
3885
4499
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
3886
4500
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -3912,9 +4526,10 @@
|
|
3912
4526
|
|
3913
4527
|
<span class='comment'># Sets the `title` attribute.
|
3914
4528
|
</span> <span class='comment'>#
|
3915
|
-
</span> <span class='comment'># @param
|
3916
|
-
</span> <span class='
|
3917
|
-
|
4529
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4530
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
4531
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
4532
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3918
4533
|
<span class='kw'>end</span>
|
3919
4534
|
|
3920
4535
|
<span class='comment'># Sets the `body` attribute.
|
@@ -3926,33 +4541,35 @@
|
|
3926
4541
|
|
3927
4542
|
<span class='comment'># Sets the `tags` attribute.
|
3928
4543
|
</span> <span class='comment'>#
|
3929
|
-
</span> <span class='comment'># @param
|
3930
|
-
</span> <span class='
|
3931
|
-
|
3932
|
-
|
4544
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4545
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
4546
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
4547
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4548
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
3933
4549
|
<span class='kw'>else</span>
|
3934
|
-
<span class='id identifier
|
4550
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
3935
4551
|
<span class='kw'>end</span>
|
3936
4552
|
<span class='kw'>end</span>
|
3937
4553
|
|
3938
4554
|
<span class='comment'># Sets the `more` attribute.
|
3939
4555
|
</span> <span class='comment'>#
|
3940
|
-
</span> <span class='comment'># @param
|
3941
|
-
</span> <span class='
|
3942
|
-
|
4556
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
4557
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
4558
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
4559
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
3943
4560
|
<span class='kw'>end</span>
|
3944
4561
|
|
3945
4562
|
<span class='comment'># Sets the `author` attribute.
|
3946
4563
|
</span> <span class='comment'>#
|
3947
|
-
</span> <span class='comment'># @param
|
3948
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
3949
|
-
<span class='kw'>if</span> <span class='id identifier
|
3950
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
3951
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
3952
|
-
<span class='id identifier
|
3953
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
4564
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
4565
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
4566
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4567
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
4568
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4569
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
4570
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
3954
4571
|
<span class='kw'>else</span>
|
3955
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
4572
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
3956
4573
|
<span class='kw'>end</span>
|
3957
4574
|
<span class='kw'>end</span>
|
3958
4575
|
|
@@ -3980,18 +4597,32 @@
|
|
3980
4597
|
|
3981
4598
|
<span class='comment'># Sets the `metadata` attribute.
|
3982
4599
|
</span> <span class='comment'>#
|
3983
|
-
</span> <span class='comment'># @param
|
3984
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
3985
|
-
<span class='kw'>if</span> <span class='id identifier
|
3986
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
4600
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
4601
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
4602
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4603
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
3987
4604
|
<span class='kw'>else</span>
|
3988
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
4605
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
3989
4606
|
<span class='kw'>end</span>
|
3990
4607
|
<span class='kw'>end</span>
|
3991
4608
|
|
4609
|
+
<span class='comment'># Returns the content as an Hash.
|
4610
|
+
</span> <span class='comment'>#
|
4611
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
4612
|
+
</span> <span class='comment'># The only supported value are:
|
4613
|
+
</span> <span class='comment'>#
|
4614
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
4615
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
4616
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
4617
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
4618
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
4619
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
4620
|
+
<span class='kw'>end</span>
|
4621
|
+
|
3992
4622
|
<span class='comment'># Validates locales for attribute retrieval.
|
3993
4623
|
</span> <span class='comment'>#
|
3994
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
4624
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
4625
|
+
</span> <span class='comment'># used.
|
3995
4626
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
3996
4627
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
3997
4628
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -4056,22 +4687,44 @@
|
|
4056
4687
|
<span class='comment'># Extracts a date and time from a value.
|
4057
4688
|
</span> <span class='comment'>#
|
4058
4689
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
4059
|
-
</span> <span class='comment'># @return [DateTime] The
|
4690
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
4060
4691
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4061
4692
|
<span class='kw'>begin</span>
|
4062
|
-
<span class='
|
4063
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4064
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
4065
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4066
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4067
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
4068
|
-
<span class='kw'>end</span>
|
4069
|
-
|
4693
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
4070
4694
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
4071
4695
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
4072
4696
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
4073
4697
|
<span class='kw'>end</span>
|
4074
4698
|
<span class='kw'>end</span>
|
4699
|
+
|
4700
|
+
<span class='comment'># Parse a datetime
|
4701
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
4702
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
4703
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4704
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
4705
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
4706
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4707
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
4708
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
4709
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
4710
|
+
<span class='kw'>end</span>
|
4711
|
+
<span class='kw'>end</span>
|
4712
|
+
|
4713
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
4714
|
+
</span> <span class='comment'>#
|
4715
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
4716
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
4717
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4718
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
4719
|
+
<span class='kw'>end</span>
|
4720
|
+
|
4721
|
+
<span class='comment'># Check if value is an Hash.
|
4722
|
+
</span> <span class='comment'>#
|
4723
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
4724
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
4725
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4726
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
4727
|
+
<span class='kw'>end</span>
|
4075
4728
|
<span class='kw'>end</span></pre>
|
4076
4729
|
</td>
|
4077
4730
|
</tr>
|
@@ -4122,16 +4775,6 @@
|
|
4122
4775
|
<pre class="lines">
|
4123
4776
|
|
4124
4777
|
|
4125
|
-
107
|
4126
|
-
108
|
4127
|
-
109
|
4128
|
-
110
|
4129
|
-
111
|
4130
|
-
112
|
4131
|
-
113
|
4132
|
-
114
|
4133
|
-
115
|
4134
|
-
116
|
4135
4778
|
117
|
4136
4779
|
118
|
4137
4780
|
119
|
@@ -4312,10 +4955,59 @@
|
|
4312
4955
|
294
|
4313
4956
|
295
|
4314
4957
|
296
|
4315
|
-
297
|
4958
|
+
297
|
4959
|
+
298
|
4960
|
+
299
|
4961
|
+
300
|
4962
|
+
301
|
4963
|
+
302
|
4964
|
+
303
|
4965
|
+
304
|
4966
|
+
305
|
4967
|
+
306
|
4968
|
+
307
|
4969
|
+
308
|
4970
|
+
309
|
4971
|
+
310
|
4972
|
+
311
|
4973
|
+
312
|
4974
|
+
313
|
4975
|
+
314
|
4976
|
+
315
|
4977
|
+
316
|
4978
|
+
317
|
4979
|
+
318
|
4980
|
+
319
|
4981
|
+
320
|
4982
|
+
321
|
4983
|
+
322
|
4984
|
+
323
|
4985
|
+
324
|
4986
|
+
325
|
4987
|
+
326
|
4988
|
+
327
|
4989
|
+
328
|
4990
|
+
329
|
4991
|
+
330
|
4992
|
+
331
|
4993
|
+
332
|
4994
|
+
333
|
4995
|
+
334
|
4996
|
+
335
|
4997
|
+
336
|
4998
|
+
337
|
4999
|
+
338
|
5000
|
+
339
|
5001
|
+
340
|
5002
|
+
341
|
5003
|
+
342
|
5004
|
+
343
|
5005
|
+
344
|
5006
|
+
345
|
5007
|
+
346</pre>
|
4316
5008
|
</td>
|
4317
5009
|
<td>
|
4318
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
5010
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 117</span>
|
4319
5011
|
|
4320
5012
|
<span class='kw'>class</span> <span class='const'>Content</span>
|
4321
5013
|
<span class='id identifier rubyid_include'>include</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>ContentPublicInterface</span>
|
@@ -4347,9 +5039,10 @@
|
|
4347
5039
|
|
4348
5040
|
<span class='comment'># Sets the `title` attribute.
|
4349
5041
|
</span> <span class='comment'>#
|
4350
|
-
</span> <span class='comment'># @param
|
4351
|
-
</span> <span class='
|
4352
|
-
|
5042
|
+
</span> <span class='comment'># @param new_title [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
5043
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
5044
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_title='>title=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span>
|
5045
|
+
<span class='ivar'>@title</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_title'>new_title</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_title'>new_title</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
4353
5046
|
<span class='kw'>end</span>
|
4354
5047
|
|
4355
5048
|
<span class='comment'># Sets the `body` attribute.
|
@@ -4361,33 +5054,35 @@
|
|
4361
5054
|
|
4362
5055
|
<span class='comment'># Sets the `tags` attribute.
|
4363
5056
|
</span> <span class='comment'>#
|
4364
|
-
</span> <span class='comment'># @param
|
4365
|
-
</span> <span class='
|
4366
|
-
|
4367
|
-
|
5057
|
+
</span> <span class='comment'># @param new_tags [Array|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
5058
|
+
</span> <span class='comment'># A empty or "*" will be the default value. Tags can also be comma-separated.
|
5059
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_tags='>tags=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
5060
|
+
<span class='ivar'>@tags</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
5061
|
+
<span class='id identifier rubyid_new_tags'>new_tags</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
4368
5062
|
<span class='kw'>else</span>
|
4369
|
-
<span class='id identifier
|
5063
|
+
<span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_new_tags'>new_tags</span><span class='rparen'>)</span>
|
4370
5064
|
<span class='kw'>end</span>
|
4371
5065
|
<span class='kw'>end</span>
|
4372
5066
|
|
4373
5067
|
<span class='comment'># Sets the `more` attribute.
|
4374
5068
|
</span> <span class='comment'>#
|
4375
|
-
</span> <span class='comment'># @param
|
4376
|
-
</span> <span class='
|
4377
|
-
|
5069
|
+
</span> <span class='comment'># @param new_more [String|Hash] The new value for the attribute. If an Hash, keys must be a string with one or locale separated by commas.
|
5070
|
+
</span> <span class='comment'># A empty or "*" will be the default value.
|
5071
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_more='>more=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span>
|
5072
|
+
<span class='ivar'>@more</span> <span class='op'>=</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_more'>new_more</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_more'>new_more</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
|
4378
5073
|
<span class='kw'>end</span>
|
4379
5074
|
|
4380
5075
|
<span class='comment'># Sets the `author` attribute.
|
4381
5076
|
</span> <span class='comment'>#
|
4382
|
-
</span> <span class='comment'># @param
|
4383
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier
|
4384
|
-
<span class='kw'>if</span> <span class='id identifier
|
4385
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier
|
4386
|
-
<span class='kw'>elsif</span> <span class='id identifier
|
4387
|
-
<span class='id identifier
|
4388
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier
|
5077
|
+
</span> <span class='comment'># @param new_author [Author|Hash|Object|NilClass] The new value for the attribute.
|
5078
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_author='>author=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
5079
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
5080
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span>
|
5081
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
5082
|
+
<span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
5083
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='rparen'>)</span>
|
4389
5084
|
<span class='kw'>else</span>
|
4390
|
-
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier
|
5085
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_new_author'>new_author</span> <span class='op'>?</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Author</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_author'>new_author</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
4391
5086
|
<span class='kw'>end</span>
|
4392
5087
|
<span class='kw'>end</span>
|
4393
5088
|
|
@@ -4415,18 +5110,32 @@
|
|
4415
5110
|
|
4416
5111
|
<span class='comment'># Sets the `metadata` attribute.
|
4417
5112
|
</span> <span class='comment'>#
|
4418
|
-
</span> <span class='comment'># @param
|
4419
|
-
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier
|
4420
|
-
<span class='kw'>if</span> <span class='id identifier
|
4421
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier
|
5113
|
+
</span> <span class='comment'># @param new_metadata [Hash] The new value for the attribute.
|
5114
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_metadata='>metadata=</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span>
|
5115
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
5116
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
|
4422
5117
|
<span class='kw'>else</span>
|
4423
|
-
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier
|
5118
|
+
<span class='ivar'>@metadata</span> <span class='op'>=</span> <span class='const'>HashWithIndifferentAccess</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>raw:</span> <span class='id identifier rubyid_new_metadata'>new_metadata</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
4424
5119
|
<span class='kw'>end</span>
|
4425
5120
|
<span class='kw'>end</span>
|
4426
5121
|
|
5122
|
+
<span class='comment'># Returns the content as an Hash.
|
5123
|
+
</span> <span class='comment'>#
|
5124
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
5125
|
+
</span> <span class='comment'># The only supported value are:
|
5126
|
+
</span> <span class='comment'>#
|
5127
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
5128
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
5129
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
5130
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
5131
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
5132
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
5133
|
+
<span class='kw'>end</span>
|
5134
|
+
|
4427
5135
|
<span class='comment'># Validates locales for attribute retrieval.
|
4428
5136
|
</span> <span class='comment'>#
|
4429
|
-
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
5137
|
+
</span> <span class='comment'># @param locales [Array] A list of desired locales for an attribute. Can include `*` to match all. If none are specified, the default mbrao locale will be
|
5138
|
+
</span> <span class='comment'># used.
|
4430
5139
|
</span> <span class='comment'># @param content [Content|nil] An optional content to check for availability
|
4431
5140
|
</span> <span class='comment'># @return [Array] The validated list of locales.
|
4432
5141
|
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
@@ -4491,22 +5200,44 @@
|
|
4491
5200
|
<span class='comment'># Extracts a date and time from a value.
|
4492
5201
|
</span> <span class='comment'>#
|
4493
5202
|
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
4494
|
-
</span> <span class='comment'># @return [DateTime] The
|
5203
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
4495
5204
|
</span> <span class='kw'>def</span> <span class='id identifier rubyid_extract_datetime'>extract_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
4496
5205
|
<span class='kw'>begin</span>
|
4497
|
-
<span class='
|
4498
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4499
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='kw'>then</span>
|
4500
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
4501
|
-
<span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
4502
|
-
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
4503
|
-
<span class='kw'>end</span>
|
4504
|
-
|
5206
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
|
4505
5207
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>?</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
4506
5208
|
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
4507
5209
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidDate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
4508
5210
|
<span class='kw'>end</span>
|
4509
5211
|
<span class='kw'>end</span>
|
5212
|
+
|
5213
|
+
<span class='comment'># Parse a datetime
|
5214
|
+
</span> <span class='comment'># @param value [String|DateTime|Fixnum] The value to parse.
|
5215
|
+
</span> <span class='comment'># @return [DateTime] The extracted value.
|
5216
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_datetime'>parse_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
5217
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
5218
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DateTime</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
5219
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Date</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Time</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
|
5220
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Float</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Fixnum</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
|
5221
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span> <span class='op'>></span> <span class='int'>0</span> <span class='op'>?</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_float'>to_float</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
5222
|
+
<span class='kw'>else</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%Y%m%dT%H%M%S%z</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
5223
|
+
<span class='kw'>end</span>
|
5224
|
+
<span class='kw'>end</span>
|
5225
|
+
|
5226
|
+
<span class='comment'># Extract tags from an array, making sure all the comma separated strings are evaluated.
|
5227
|
+
</span> <span class='comment'>#
|
5228
|
+
</span> <span class='comment'># @param value [String|Array] The string or array to parse.
|
5229
|
+
</span> <span class='comment'># @return [Array] The list of tags.
|
5230
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse_tags'>parse_tags</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
5231
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s*,\s*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
5232
|
+
<span class='kw'>end</span>
|
5233
|
+
|
5234
|
+
<span class='comment'># Check if value is an Hash.
|
5235
|
+
</span> <span class='comment'>#
|
5236
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
5237
|
+
</span> <span class='comment'># @return [Boolean] `true` if value is an Hash, `false` otherwise
|
5238
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_is_hash?'>is_hash?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
5239
|
+
<span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
5240
|
+
<span class='kw'>end</span>
|
4510
5241
|
<span class='kw'>end</span></pre>
|
4511
5242
|
</td>
|
4512
5243
|
</tr>
|
@@ -4596,15 +5327,15 @@
|
|
4596
5327
|
<pre class="lines">
|
4597
5328
|
|
4598
5329
|
|
4599
|
-
|
4600
|
-
|
4601
|
-
|
4602
|
-
|
4603
|
-
|
4604
|
-
|
5330
|
+
258
|
5331
|
+
259
|
5332
|
+
260
|
5333
|
+
261
|
5334
|
+
262
|
5335
|
+
263</pre>
|
4605
5336
|
</td>
|
4606
5337
|
<td>
|
4607
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
5338
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 258</span>
|
4608
5339
|
|
4609
5340
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_metadata'>metadata</span><span class='comma'>,</span> <span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
|
4610
5341
|
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Content</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
@@ -4647,7 +5378,8 @@
|
|
4647
5378
|
|
4648
5379
|
|
4649
5380
|
—
|
4650
|
-
<div class='inline'><p>A list of desired locales for an attribute. Can include <code>*</code> to match all. If none are specified, the default mbrao locale will be
|
5381
|
+
<div class='inline'><p>A list of desired locales for an attribute. Can include <code>*</code> to match all. If none are specified, the default mbrao locale will be
|
5382
|
+
used.</p>
|
4651
5383
|
</div>
|
4652
5384
|
|
4653
5385
|
</li>
|
@@ -4708,15 +5440,15 @@
|
|
4708
5440
|
<pre class="lines">
|
4709
5441
|
|
4710
5442
|
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
5443
|
+
246
|
5444
|
+
247
|
5445
|
+
248
|
5446
|
+
249
|
5447
|
+
250
|
5448
|
+
251</pre>
|
4717
5449
|
</td>
|
4718
5450
|
<td>
|
4719
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line
|
5451
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 246</span>
|
4720
5452
|
|
4721
5453
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
4722
5454
|
<span class='id identifier rubyid_locales'>locales</span> <span class='op'>=</span> <span class='id identifier rubyid_locales'>locales</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span> <span class='rbrace'>}</span>
|
@@ -4727,6 +5459,98 @@
|
|
4727
5459
|
</td>
|
4728
5460
|
</tr>
|
4729
5461
|
</table>
|
5462
|
+
</div>
|
5463
|
+
|
5464
|
+
</div>
|
5465
|
+
|
5466
|
+
<div id="instance_method_details" class="method_details_list">
|
5467
|
+
<h2>Instance Method Details</h2>
|
5468
|
+
|
5469
|
+
|
5470
|
+
<div class="method_details first">
|
5471
|
+
<h3 class="signature first" id="as_json-instance_method">
|
5472
|
+
|
5473
|
+
- (<tt>Hash</tt>) <strong>as_json</strong>(options = {})
|
5474
|
+
|
5475
|
+
|
5476
|
+
|
5477
|
+
|
5478
|
+
|
5479
|
+
</h3><div class="docstring">
|
5480
|
+
<div class="discussion">
|
5481
|
+
<p>Returns the content as an Hash.</p>
|
5482
|
+
|
5483
|
+
|
5484
|
+
</div>
|
5485
|
+
</div>
|
5486
|
+
<div class="tags">
|
5487
|
+
<p class="tag_title">Parameters:</p>
|
5488
|
+
<ul class="param">
|
5489
|
+
|
5490
|
+
<li>
|
5491
|
+
|
5492
|
+
<span class='name'>options</span>
|
5493
|
+
|
5494
|
+
|
5495
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
5496
|
+
|
5497
|
+
|
5498
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
5499
|
+
|
5500
|
+
|
5501
|
+
—
|
5502
|
+
<div class='inline'><p>Options to modify behavior of the serialization.
|
5503
|
+
The only supported value are:</p>
|
5504
|
+
|
5505
|
+
<ul>
|
5506
|
+
<li><code>:exclude</code>, an array of attributes to skip.</li>
|
5507
|
+
<li><code>:exclude_empty</code>, if to exclude nil values. Default is <code>false</code>.</li>
|
5508
|
+
</ul>
|
5509
|
+
</div>
|
5510
|
+
|
5511
|
+
</li>
|
5512
|
+
|
5513
|
+
</ul>
|
5514
|
+
|
5515
|
+
<p class="tag_title">Returns:</p>
|
5516
|
+
<ul class="return">
|
5517
|
+
|
5518
|
+
<li>
|
5519
|
+
|
5520
|
+
|
5521
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
5522
|
+
|
5523
|
+
|
5524
|
+
|
5525
|
+
—
|
5526
|
+
<div class='inline'><p>An hash with all attributes.</p>
|
5527
|
+
</div>
|
5528
|
+
|
5529
|
+
</li>
|
5530
|
+
|
5531
|
+
</ul>
|
5532
|
+
|
5533
|
+
</div><table class="source_code">
|
5534
|
+
<tr>
|
5535
|
+
<td>
|
5536
|
+
<pre class="lines">
|
5537
|
+
|
5538
|
+
|
5539
|
+
235
|
5540
|
+
236
|
5541
|
+
237
|
5542
|
+
238</pre>
|
5543
|
+
</td>
|
5544
|
+
<td>
|
5545
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/content.rb', line 235</span>
|
5546
|
+
|
5547
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
5548
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:uid</span><span class='comma'>,</span> <span class='symbol'>:locales</span><span class='comma'>,</span> <span class='symbol'>:title</span><span class='comma'>,</span> <span class='symbol'>:body</span><span class='comma'>,</span> <span class='symbol'>:tags</span><span class='comma'>,</span> <span class='symbol'>:more</span><span class='comma'>,</span> <span class='symbol'>:author</span><span class='comma'>,</span> <span class='symbol'>:created_at</span><span class='comma'>,</span> <span class='symbol'>:updated_at</span><span class='comma'>,</span> <span class='symbol'>:metadata</span><span class='rbracket'>]</span>
|
5549
|
+
<span class='op'>::</span><span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
5550
|
+
<span class='kw'>end</span></pre>
|
5551
|
+
</td>
|
5552
|
+
</tr>
|
5553
|
+
</table>
|
4730
5554
|
</div>
|
4731
5555
|
|
4732
5556
|
</div>
|
@@ -4734,7 +5558,7 @@
|
|
4734
5558
|
</div>
|
4735
5559
|
|
4736
5560
|
<div id="footer">
|
4737
|
-
Generated on
|
5561
|
+
Generated on Sun Nov 24 14:07:04 2013 by
|
4738
5562
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
4739
5563
|
0.8.7.3 (ruby-2.0.0).
|
4740
5564
|
</div>
|