DEVEL_BLOG.md in rspreadsheet-0.2.15 vs DEVEL_BLOG.md in rspreadsheet-0.3

- old
+ new

@@ -1,7 +1,15 @@ See [GUIDE.md](GUIDE.md#conventions) for syntax conventions. +## Installation troubleshooting + +After you have cloned the source run `bundle` command in gem directory to install needed tools. If there are any errors try to + + 1. Make sure that necessary tools are installed. In debian based distros you may try this `apt-get install make gcc`. In other distros, use their native way to install tools. + 2. If you have installed `ruby-libxml` than you may want to comment out the line containing libxml-ruby dependency in rspreadseet.gemspec file before running bundle. + 3. Comment out `guard` and `guard-rspec` lines from gemfile if you use ruby version less than 2.2.1. + ## Ideas/wishlist * In future inntroduce syntax like `sheet.range('C3:E4')` for mass operations. * Trying to make row Enumerable - perhaps skipping empty or undefined cells. * Maybe insted two syntaxes for accessing cell, we make both of them do the same and return Proxy object which would act either as value or cell. @@ -11,10 +19,12 @@ * allow `sheet.rows(1).cells.each {} iterate through nonempty cells ??? or all of them until last used * `sheet.rows(1).cells` returns list of cells objects and `sheet.rows(1).cellvalues` return array of values with nils when empty * implement to_csv * longterm plan - go through other used libraries and try to find out whose syntax could be adopted, so this library is drop in replacement (possibly with some config options) for them * iterative generation like this + * Currently the way you insert cells and rows is that you insert empty one and than copy values. It would be interesting to add "duplicate" method as well as other "copy pasting" stuff, which would be more forward compatible. + * Optionally allow negative coordinates count from end ```ruby RSpreadsheet.generate('pricelist.ods') do row 'icecream name', 'price' { 'Vanilla' => 2, 'Banana' => 3, 'Strawbery' => 2.7 }.each do |icecream, price| @@ -51,19 +61,25 @@ * array returned by rows of cells can have predefined dummy object as defaults for out of range indexes -##Guiding ideas +## Guiding ideas * xml document is always synchronized with the data. So the save is trivial. * no duplication of data. Objects like RowArray should containg minimum information. This one exists solely to speed up cell search. Taken to extream it is questionable, whether we need such objects at all, it might be possible to always work with xml directly. * all cells and rows only server as proxy. they hold index and worksheet pointer and everytime read or write is done, the xml is newly searched. until there is a xmlnode caching we have no problem * all cells returned for particular coordinates are **always the same object**. This way we have no problem to synchronize changes. ## Known Issues * currently there is a confusing syntax @worksheet.rows(1).cells[5] which returns a cell object in SIXT column, which is not intended. It is side effecto of Row#cells returning an array +## Release notes + + 2017-01 + * basic image handling implemented (issue [#24](https://github.com/gorn/rspreadsheet/issues/24)) + * bug corrected: inserted row was not empty, but rather copy of the row below. + ## Developing this gem ### Automated testing * ``bundle exec guard`` will get tested any changes as soon as they are summitted @@ -82,10 +98,10 @@ 3. Build and install locally using script `./reinstall_local_gem.sh` (see [details](reinstall_local_gem.sh)) 4. Now can locally and manually use/test the gem. This should not be replacement for automated testing. If you make some changes, go to 1. 5. When happy, increment the version number and `git add .; git commit -am'commit message'; git push` 6. ``rake release`` - creates a version tag in git and pushes the code to github + Rubygems. After this is succesfull the new version appears as release in Github and RubyGems. -gem alternativa to points 3-6 +gem alternative to points 3-6 gem build rspreadsheet.gemspec -\ These two lines together are in install.sh sudo gem install rspreadsheet-x.y.z.gem -/ which should be invoked from parent directory gem push rspreadsheet-x.y.z.gem releases the gem, do not forgot to update version in rspreadsheet.gemspec before doing this