<?xml version="1.0"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" date="2017-12-08T11:03:08+00:00" version="0.27.10">
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/15" closed="2017-12-08T11:02:42+00:00">15</issue>
    <ticket>7</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>7-2533d5cf</id>
    <lines>38-39</lines>
    <body>Implement and unit test Sequence node. See specification: http://yaml.org/spec/1.2/spec.html#sequence//</body>
    <file>src/main/java/com/amihaiemil/camel/AbstractNode.java</file>
    <author>Mihai Emil Andronache</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-01-05T08:14:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/16" closed="2017-12-08T11:02:44+00:00">16</issue>
    <ticket>7</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>7-9899ae24</id>
    <lines>40-41</lines>
    <body>Implement and unit test Mapping node. See specification: http://yaml.org/spec/1.2/spec.html#mapping//</body>
    <file>src/main/java/com/amihaiemil/camel/AbstractNode.java</file>
    <author>Mihai Emil Andronache</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-01-05T08:14:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/22" closed="2017-12-08T11:02:45+00:00">22</issue>
    <ticket>6</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>6-74416683</id>
    <lines>35-39</lines>
    <body>Implement and unit test decorator StrictYamlMapping, which should throw YamlNodeNotFoundException if any of the methods of the decorated YamlMapping returns null (if the given key points to a YamlNode that is not a YamlMapping, for instance, or if the key doesn't exist in the map).</body>
    <file>src/main/java/com/amihaiemil/camel/YamlMapping.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-01-19T14:06:01Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/23" closed="2017-12-08T11:02:46+00:00">23</issue>
    <ticket>6</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>6-754324bd</id>
    <lines>8-11</lines>
    <body>Implement and unit test decorator StrictYamlSequence which should throw YamlNodeNotFoundException if any of the methods of the decorated YamlSequence returns null (if the given index points to a YamlNode that is not a YamlMapping, for instance).</body>
    <file>src/main/java/com/amihaiemil/camel/YamlSequence.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-01-19T14:06:01Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/29" closed="2017-12-08T11:02:46+00:00">29</issue>
    <ticket>24</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>24-802b792b</id>
    <lines>35-37</lines>
    <body>Following the example of this builder, implement and unit-test RtYamlSequenceBuilder (implements YamlSequenceBuilder). The implementation should be immutable (same as RtYamlMappingBuilder).</body>
    <file>src/main/java/com/amihaiemil/camel/YamlMappingBuilder.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-01-23T21:15:48Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/34" closed="2017-12-08T11:02:47+00:00">34</issue>
    <ticket>30</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>30-3c0b8f6f</id>
    <lines>36-42</lines>
    <body>This interface should have 3 implementor classes: YamlObjectDump, YamlMapDump and YamlCollectionDump. Each of these classes will encapsulate and serialize the mentioned types (i.e. Object, Map&lt;Object, Object&gt; and Collection&lt;Object&gt;). The return type or method ``represent()`` should be overridden with the proper subtype (e.g. YamlObjectDump will have the method ``YamlMapping represent() {...}``</body>
    <file>src/main/java/com/amihaiemil/camel/YamlDump.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-01-26T18:31:34Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/decorators-squad/camel/issues/38" closed="2017-12-08T11:02:48+00:00">38</issue>
        <ticket>34</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>34-92fcb5e3</id>
        <lines>35-40</lines>
        <body>This interface should have 2 more implementor classes: YamlMapDump and YamlCollectionDump. Each of these classes will encapsulate and serialize the mentioned types (i.e. Map&lt;Object, Object&gt; and Collection&lt;Object&gt;). The return type or method ``represent()`` should be overridden with the proper subtype (e.g. YamlMapDump will have the method ``YamlMapping represent() {...}``</body>
        <file>src/main/java/com/amihaiemil/camel/YamlDump.java</file>
        <author>amihaiemil</author>
        <email>amihaiemil@gmail.com</email>
        <time>2017-01-27T12:33:13Z</time>
        <children>
          <puzzle alive="false">
            <issue href="https://github.com/decorators-squad/camel/issues/41" closed="2017-12-08T11:02:49+00:00">41</issue>
            <ticket>38</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>38-ac09402a</id>
            <lines>35-39</lines>
            <body>This interface should have 1 more implementor class: YamlCollectionDump. This classes will encapsulate and serialize the mentioned type (i.e. Collection&lt;Object&gt;). The return type or method ``represent()`` should be overridden with the proper subtype.</body>
            <file>src/main/java/com/amihaiemil/camel/AbstractYamlDump.java</file>
            <author>sherif</author>
            <email>sherifwaly95@gmail.com</email>
            <time>2017-01-29T16:53:37Z</time>
            <children/>
          </puzzle>
          <puzzle alive="false">
            <issue href="https://github.com/decorators-squad/camel/issues/42" closed="2017-12-08T11:02:50+00:00">42</issue>
            <ticket>38</ticket>
            <estimate>30</estimate>
            <role>TEST</role>
            <id>38-37cd727f</id>
            <lines>52-52</lines>
            <body>Add more unit tests for YamlMapDump</body>
            <file>src/test/java/com/amihaiemil/camel/YamlMapDumpTest.java</file>
            <author>sherif</author>
            <email>sherifwaly95@gmail.com</email>
            <time>2017-01-29T16:53:37Z</time>
            <children/>
          </puzzle>
        </children>
      </puzzle>
      <puzzle alive="false">
        <issue href="https://github.com/decorators-squad/camel/issues/39" closed="2017-12-08T11:02:51+00:00">39</issue>
        <ticket>34</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>34-31eb724e</id>
        <lines>110-111</lines>
        <body>After YamlMapDump and YamlCollectionDump are implemented, this method should be fixed.</body>
        <file>src/main/java/com/amihaiemil/camel/YamlObjectDump.java</file>
        <author>amihaiemil</author>
        <email>amihaiemil@gmail.com</email>
        <time>2017-01-27T12:33:13Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/decorators-squad/camel/issues/35">35</issue>
    <ticket>30</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>30-1ab58fb9</id>
    <lines>44-46</lines>
    <body>Add method ``serlialize()`` in YamlNode interface and implement it in the YamlNode implementors (e.g. Scalar) to serlialize it and return the Yaml node as a Yaml tree.</body>
    <file>src/main/java/com/amihaiemil/camel/YamlDump.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-01-26T18:31:34Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/36" closed="2017-12-08T11:02:52+00:00">36</issue>
    <ticket>30</ticket>
    <estimate>30</estimate>
    <role>D</role>
    <id>30-d93aac6f</id>
    <lines>48-49</lines>
    <body>Add method ``present()`` in YamlNode interface or ``toString()`` method could do its job.</body>
    <file>src/main/java/com/amihaiemil/camel/YamlDump.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-01-26T18:31:34Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/44" closed="2017-12-08T11:02:53+00:00">44</issue>
    <ticket>24</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>24-44185658</id>
    <lines>35-36</lines>
    <body>Following the example of this builder, implement and unit-test RtYamlSequenceBuilder (implements YamlSequenceBuilder).</body>
    <file>src/main/java/com/amihaiemil/camel/YamlMappingBuilder.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-01-29T16:53:37Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/51" closed="2017-12-08T11:02:54+00:00">51</issue>
    <ticket>46</ticket>
    <estimate>30</estimate>
    <role>IMP</role>
    <id>46-02cbf3dd</id>
    <lines>38-40</lines>
    <body>Finish implementing this class using a finite automata. Short idea: using an InputStreamReader, read each char from the stream, see if the automata accepts it. If it's accepted, build the yaml.</body>
    <file>src/main/java/com/amihaiemil/camel/RtYamlInput.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-02-09T13:39:19Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/54" closed="2017-12-08T11:02:54+00:00">54</issue>
    <ticket>52</ticket>
    <estimate>30</estimate>
    <role>IMP</role>
    <id>52-54ded80a</id>
    <lines>35-38</lines>
    <body>Right now, at every call of trimmed() and indentation() the values are calculated. This isn't efficient, so we need a decorator to cache these values. Let's name it CachedYamlLine. It should be used like this: YamlLine line = new CachedYamlLine(new RtYamlLine(...));</body>
    <file>src/main/java/com/amihaiemil/camel/RtYamlLine.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-02-13T08:46:13Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/55" closed="2017-12-08T11:02:55+00:00">55</issue>
    <ticket>52</ticket>
    <estimate>30</estimate>
    <role>IMP</role>
    <id>52-1a414e89</id>
    <lines>39-43</lines>
    <body>Method indentation() also checks that the value is multiple of 2. We should extract this in a decorator called WellIndentedLine which will also check if the intendetaion is correct relative to the previous line. It would be used like this: &lt;br&gt; YamlLine line = new WellINdentedLine(line, previousLine).</body>
    <file>src/main/java/com/amihaiemil/camel/RtYamlLine.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-02-13T08:46:13Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/decorators-squad/camel/issues/59" closed="2017-12-08T11:02:56+00:00">59</issue>
        <ticket>55</ticket>
        <estimate>30</estimate>
        <role>TEST</role>
        <id>55-cfe1aff7</id>
        <lines>36-36</lines>
        <body>Implement WellIndentedLineTest to unit test this class</body>
        <file>src/main/java/com/amihaiemil/camel/WellIndentedLine.java</file>
        <author>sherif</author>
        <email>sherifwaly95@gmail.com</email>
        <time>2017-02-13T21:35:54Z</time>
        <children>
          <puzzle alive="false">
            <issue href="https://github.com/decorators-squad/camel/issues/62" closed="2017-12-08T11:02:57+00:00">62</issue>
            <ticket>59</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>59-0d5b5c2a</id>
            <lines>13-14</lines>
            <body>Implement and unit test method nested(...), as specified in its javadoc.</body>
            <file>src/main/java/com/amihaiemil/camel/RtYamlLines.java</file>
            <author>amihaiemil</author>
            <email>amihaiemil@gmail.com</email>
            <time>2017-02-16T07:58:41Z</time>
            <children/>
          </puzzle>
          <puzzle alive="false">
            <issue href="https://github.com/decorators-squad/camel/issues/63" closed="2017-12-08T11:02:58+00:00">63</issue>
            <ticket>59</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>59-9ff4de5f</id>
            <lines>35-37</lines>
            <body>We should implement class ReadYamlMapping, which should implement this interface. The class will encapsulate and work with YamlLines.</body>
            <file>src/main/java/com/amihaiemil/camel/YamlMapping.java</file>
            <author>amihaiemil</author>
            <email>amihaiemil@gmail.com</email>
            <time>2017-02-16T08:09:04Z</time>
            <children>
              <puzzle alive="false">
                <issue href="https://github.com/decorators-squad/camel/issues/67" closed="2017-12-08T11:02:59+00:00">67</issue>
                <ticket>63</ticket>
                <estimate>30</estimate>
                <role>DEV</role>
                <id>63-c8d16824</id>
                <lines>40-41</lines>
                <body>Continue implementing and unit testing the methods from this class one by one.</body>
                <file>src/main/java/com/amihaiemil/camel/ReadYamlMapping.java</file>
                <author>amihaiemil</author>
                <email>amihaiemil@gmail.com</email>
                <time>2017-02-20T15:40:14Z</time>
                <children>
                  <puzzle alive="false">
                    <issue href="https://github.com/decorators-squad/camel/issues/73" closed="2017-12-08T11:03:00+00:00">73</issue>
                    <ticket>67</ticket>
                    <estimate>30</estimate>
                    <role>DEV</role>
                    <id>67-0e70afe8</id>
                    <lines>40-41</lines>
                    <body>Continue to implement and unit-test the methods from this class one by one.</body>
                    <file>src/main/java/com/amihaiemil/camel/ReadYamlMapping.java</file>
                    <author>amihaiemil</author>
                    <email>amihaiemil@gmail.com</email>
                    <time>2017-02-22T09:58:42Z</time>
                    <children>
                      <puzzle alive="false">
                        <issue href="https://github.com/decorators-squad/camel/issues/79" closed="2017-12-08T11:03:01+00:00">79</issue>
                        <ticket>73</ticket>
                        <estimate>30</estimate>
                        <role>DEV</role>
                        <id>73-fa02b6c9</id>
                        <lines>41-42</lines>
                        <body>Continue implementing and unit-testing the methods from this class one by one.</body>
                        <file>src/main/java/com/amihaiemil/camel/ReadYamlMapping.java</file>
                        <author>amihaiemil</author>
                        <email>amihaiemil@gmail.com</email>
                        <time>2017-02-28T12:29:57Z</time>
                        <children/>
                      </puzzle>
                    </children>
                  </puzzle>
                </children>
              </puzzle>
              <puzzle alive="false">
                <issue href="https://github.com/decorators-squad/camel/issues/68" closed="2017-12-08T11:03:02+00:00">68</issue>
                <ticket>63</ticket>
                <estimate>30</estimate>
                <role>DEV</role>
                <id>63-395f02e5</id>
                <lines>13-14</lines>
                <body>After ticket #64 is resolved, make sure method toYamlNode from this class is completed. (ReadYamlSequence instead of null)</body>
                <file>src/main/java/com/amihaiemil/camel/RtYamlLines.java</file>
                <author>amihaiemil</author>
                <email>amihaiemil@gmail.com</email>
                <time>2017-02-20T15:40:14Z</time>
                <children/>
              </puzzle>
            </children>
          </puzzle>
          <puzzle alive="false">
            <issue href="https://github.com/decorators-squad/camel/issues/64" closed="2017-12-08T11:03:03+00:00">64</issue>
            <ticket>59</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>59-963ff972</id>
            <lines>8-10</lines>
            <body>We should implement class ReadYamlSequence, which should implement this interface. The class will encapsulate and work with YamlLines.</body>
            <file>src/main/java/com/amihaiemil/camel/YamlSequence.java</file>
            <author>amihaiemil</author>
            <email>amihaiemil@gmail.com</email>
            <time>2017-02-16T08:09:04Z</time>
            <children>
              <puzzle alive="false">
                <issue href="https://github.com/decorators-squad/camel/issues/70" closed="2017-12-08T11:03:04+00:00">70</issue>
                <ticket>64</ticket>
                <estimate>30</estimate>
                <role>DEV</role>
                <id>64-6c1b602e</id>
                <lines>10-11</lines>
                <body>Continue implementing and unit testing this class, one method at a time.</body>
                <file>src/main/java/com/amihaiemil/camel/ReadYamlSequence.java</file>
                <author>amihaiemil</author>
                <email>amihaiemil@gmail.com</email>
                <time>2017-02-22T09:00:49Z</time>
                <children>
                  <puzzle alive="false">
                    <issue href="https://github.com/decorators-squad/camel/issues/86" closed="2017-12-08T11:03:05+00:00">86</issue>
                    <ticket>70</ticket>
                    <estimate>30</estimate>
                    <role>DEV</role>
                    <id>70-83ce2e89</id>
                    <lines>10-11</lines>
                    <body>Continue to implement and unit test methods from this class, one by one.</body>
                    <file>src/main/java/com/amihaiemil/camel/ReadYamlSequence.java</file>
                    <author>amihaiemil</author>
                    <email>amihaiemil@gmail.com</email>
                    <time>2017-03-08T12:30:08Z</time>
                    <children/>
                  </puzzle>
                </children>
              </puzzle>
              <puzzle alive="false">
                <issue href="https://github.com/decorators-squad/camel/issues/71" closed="2017-12-08T11:03:06+00:00">71</issue>
                <ticket>64</ticket>
                <estimate>30</estimate>
                <role>DEV</role>
                <id>64-04f5df54</id>
                <lines>35-39</lines>
                <body>This interface should extend Comparable, since we want YamlLines to be ordered after they are read from file. Lines should be compared by their String values (similar to Scalar.compareTo). YamlLines.iterator() will return the iterator containing the lines in order.</body>
                <file>src/main/java/com/amihaiemil/camel/YamlLine.java</file>
                <author>amihaiemil</author>
                <email>amihaiemil@gmail.com</email>
                <time>2017-02-22T08:54:35Z</time>
                <children/>
              </puzzle>
            </children>
          </puzzle>
        </children>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/56" closed="2017-12-08T11:03:07+00:00">56</issue>
    <ticket>52</ticket>
    <estimate>60</estimate>
    <role>IMP</role>
    <id>52-6930eadb</id>
    <lines>35-36</lines>
    <body>Implement and unit test this interface. It should be named RtYamlLines and be a default-accessible class.</body>
    <file>src/main/java/com/amihaiemil/camel/YamlLines.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-02-13T08:46:13Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/100" closed="2017-12-08T11:03:08+00:00">100</issue>
    <ticket>98</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>98-f4629850</id>
    <lines>23-26</lines>
    <body>There is a bug in ReadYamlMapping.children(), the maps' values are not returned properly. Because of that, YamlMapping.equals does not work fine. Fix the bug and activate this unit test.</body>
    <file>src/test/java/com/amihaiemil/camel/RtYamlInputTest.java</file>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2017-03-29T12:04:11Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/decorators-squad/camel/issues/107">107</issue>
    <ticket>105</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>105-d82b704d</id>
    <lines>73-76</lines>
    <body>This method needs to be implemented. It will be similar to former AbstractYamlLines.toYamlNode(), but it will also cover the wrapper sequence/scalar cases. When this method is ready, the tests from {@link NestedReadYamlNodeTest} should be enabled.</body>
    <file>src/main/java/com/amihaiemil/camel/NestedReadYamlNode.java</file>
    <author>rultor</author>
    <email>me@rultor.com</email>
    <time>2017-04-11T09:07:04Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/decorators-squad/camel/issues/115">115</issue>
        <ticket>107</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>107-ebfbb571</id>
        <lines>63-64</lines>
        <body>Add more tests to cover all the nested node possibilities.</body>
        <file>src/main/java/com/amihaiemil/camel/AbstractYamlLines.java</file>
        <author>amihaiemil</author>
        <email>amihaiemil@gmail.com</email>
        <time>2017-05-05T12:57:32Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/decorators-squad/camel/issues/112">112</issue>
    <ticket>109</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>109-3848fb59</id>
    <lines>45-46</lines>
    <body>Implement a new iterator() for YamlLines to fix different indentations test as indentsValueWithDifferentIndentation() test.</body>
    <file>src/test/java/com/amihaiemil/camel/ReadPointedScalarTest.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-04-14T11:25:47Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/decorators-squad/camel/issues/113">113</issue>
    <ticket>109</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>109-bb96edbe</id>
    <lines>38-39</lines>
    <body>Refactor the implementation of value() and indent() methods.</body>
    <file>src/main/java/com/amihaiemil/camel/ReadPointedScalar.java</file>
    <author>sherif</author>
    <email>sherifwaly95@gmail.com</email>
    <time>2017-04-14T11:25:47Z</time>
    <children/>
  </puzzle>
</puzzles>
