<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket #270: Refactor ckan/lib/importer and ckanclient/loader.</title>
    <link>http://localhost/ticket/270</link>
    <description>&lt;p&gt;
There is code to create packages by in-process (ckan/lib/importer) and via HTTP (ckanclient/loaders/base). There is also code to read different kinds of package source (Google Spreadsheets spreadsheet, other spreadsheet).
&lt;/p&gt;
&lt;p&gt;
Propose to refactor all this to have template method in base command class (subclasses may implement command line interface, graphical user interface, or Web interface), where the template method calls on aggregated strategy objects for: reading raw spreadsheet data from spreadsheet application; for inferring CKAN package entities from the raw spreadsheet data; and for writing package entities to CKAN service.
&lt;/p&gt;
&lt;p&gt;
Spreadsheet readers to be factored to allow for variations of spreadsheet application.
&lt;/p&gt;
&lt;p&gt;
Raw data inferrers to allow for variations in spreadsheet cell structure.
&lt;/p&gt;
&lt;p&gt;
CKAN writer strategies to allow for either CKAN client or direct linking.
&lt;/p&gt;
&lt;p&gt;
Actual cases then supported by specifying existing strategies (or defining new ones) in a script that invokes the command class.
&lt;/p&gt;
</description>
    <language>en-us</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/ticket/270</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
      
        <dc:creator>johnbywater</dc:creator>

      <pubDate>Mon, 15 Mar 2010 16:51:18 GMT</pubDate>
      <title>description changed</title>
      <link>http://localhost/ticket/270#comment:1</link>
      <guid isPermaLink="false">http://localhost/ticket/270#comment:1</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/ticket/270?action=diff&amp;amp;version=1"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>johnbywater</dc:creator>

      <pubDate>Mon, 15 Mar 2010 16:51:42 GMT</pubDate>
      <title>description changed</title>
      <link>http://localhost/ticket/270#comment:2</link>
      <guid isPermaLink="false">http://localhost/ticket/270#comment:2</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/ticket/270?action=diff&amp;amp;version=2"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread &lt;d.t.read@…&gt;</dc:creator>

      <pubDate>Wed, 24 Nov 2010 11:04:00 GMT</pubDate>
      <title>status changed; resolution set</title>
      <link>http://localhost/ticket/270#comment:3</link>
      <guid isPermaLink="false">http://localhost/ticket/270#comment:3</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;fixed&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Nearly everything mentioned here has been achieved with the &lt;a class="missing wiki"&gt;SpreadsheetData?&lt;/a&gt;, &lt;a class="missing wiki"&gt;DataRecords?&lt;/a&gt;&amp;lt;-&lt;a class="missing wiki"&gt;SpreadsheetDataRecords?&lt;/a&gt;, &lt;a class="missing wiki"&gt;PackageImporter?&lt;/a&gt;&amp;lt;-&lt;a class="missing wiki"&gt;SpreadsheetPackageImporter?&lt;/a&gt; design. New imports can take advantage of this.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item>
 </channel>
</rss>