sorted_array 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,16 +1,21 @@
1
1
  # SortedArray
2
2
 
3
- The gem provides a class SortedArray which keeps sorted
4
- with a given Sorter-class after adding new items.
3
+ The gem is providing a class `SortedArray` which keeps sorted
4
+ after adding new items. When initializing a `SortedArray` you chose
5
+ a Sorter which must have a method `:sort`
5
6
 
6
- The included DefaultSorter sorts a list of Objects by a
7
- given method-name.
7
+ A class `DefaultSorter` is included.
8
+
9
+ The included `DefaultSorter` sorts a list of Objects by a given method-name.
8
10
 
9
11
  ## Installation
10
12
 
13
+ * see [RubyGems](http://rubygems.org/gems/sorted_array)
14
+ * see [Github](https://github.com/iboard/sorted_array#readme)
15
+
11
16
  Add this line to your application's Gemfile:
12
17
 
13
- gem 'sorted_array'
18
+ gem 'sorted_array'
14
19
 
15
20
  And then execute:
16
21
 
@@ -22,20 +27,28 @@ Or install it yourself as:
22
27
 
23
28
  Run Tests
24
29
 
25
- $ rake
30
+ _If you clone from github you can run the following tasks:_
26
31
 
27
- # using Guard
28
- $ guard
29
-
30
- # with rspec
31
- $ rspec spec/
32
-
33
- Build Documentation
32
+
33
+ $ git clone git://github.com/iboard/sorted_array.git
34
+ $ cd sorted_array
35
+ $ bundle # update/install the bundle
36
+ $ rake # run all tests
37
+ $ rspec spec/ # run all specs manually
38
+ $ guard # start guard
39
+
40
+ ## Documentation
34
41
 
35
42
  $ yard
36
- $ open doc/index.html
43
+ $ open doc/index.html # on Mac OS X
44
+
45
+ A copy of the YARDocumentation can be found at
46
+ [iboard.cc - yardoc](http://dav.iboard.cc/container/sorted_array_doc/)
47
+
48
+ And a copy of the last coverage-report is at
49
+ [iboard.cc - coverage](http://dav.iboard.cc/container/sorted_array_coverage/)
37
50
 
38
- ## Usage
51
+ ## Usage-example
39
52
 
40
53
  data = [
41
54
  OpenStruct.new( foo: 1 ),
@@ -50,11 +63,13 @@ Build Documentation
50
63
 
51
64
  ## Persistent
52
65
 
53
- _SortedArray_ defines a marshal_load and marshal_dump method and
54
- is safe to be used with PStore.
66
+ _SortedArray_ defines a `marshal_load` and `marshal_dump` method and
67
+ can be used in a `PStore`
55
68
 
56
69
  Example:
57
70
 
71
+ # assumes the previous example was executed before
72
+
58
73
  store=PStore.new('example.pstore')
59
74
  store.transaction do |w|
60
75
  w[:data] = keep_sorted
data/Rakefile CHANGED
@@ -27,3 +27,10 @@ desc 'Build documentation'
27
27
  task :doc do
28
28
  system 'yard'
29
29
  end
30
+
31
+ desc 'Deploy documentation'
32
+ task :deploy_doc do
33
+ Rake::Task['doc'].execute
34
+ system 'rsync','-avze','ssh', '--delete', 'doc/', 'root@dav.iboard.cc:/var/www/dav/container/sorted_array_doc/'
35
+ system 'rsync','-avze','ssh', '--delete', 'coverage/', 'root@dav.iboard.cc:/var/www/dav/container/sorted_array_coverage/'
36
+ end
data/TODO.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # TODO
2
2
 
3
+ * DONE: _Implement for PStore_
3
4
  * TODO: Implement for ActiveRecord
4
5
  * TODO: Implement for MongoId
6
+ * TODO: Written with Ruby 2.0 - make sure it works with 1.9.3 too.
@@ -42,7 +42,7 @@ module SortedArray
42
42
 
43
43
  # @param [Array] array - _classname,[..entries..]
44
44
  def marshal_load array
45
- @method = array.last
45
+ @method = array ? array.last : :to_s
46
46
  end
47
47
 
48
48
  end
@@ -1,4 +1,4 @@
1
1
  module SortedArray
2
2
  # Used by gemspec.
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'pstore'
2
3
 
3
4
  describe SortedArray::DefaultSorter do
4
5
 
@@ -9,6 +10,7 @@ describe SortedArray::DefaultSorter do
9
10
  OpenStruct.new(foo: 2)
10
11
  ] }
11
12
  let(:sorted) { items.sort{|a,b|a.foo <=> b.foo} }
13
+ let(:store) { PStore.new(SORTER_TEST_STORE) }
12
14
 
13
15
  it 'initialize with a sort-method' do
14
16
  expect(sorter.method).to eq(:foo)
@@ -20,15 +22,15 @@ describe SortedArray::DefaultSorter do
20
22
 
21
23
  it 'stores the method-name to a PStore' do
22
24
  sorter.should_receive(:marshal_dump)
23
- PStore.new(SORTER_TEST_STORE).transaction do |s|
25
+ store.transaction do |s|
24
26
  s[:sorter] = sorter
25
27
  end
26
28
  end
27
29
 
28
30
  it 'loads the method-name from a PStore' do
29
- sorter.should_receive(:marshal_load)
30
- PStore.new(SORTER_TEST_STORE).transaction do |s|
31
- s[:sorter]
32
- end
31
+ _s = nil
32
+ store.transaction(true) { |r| _s = r[:sorter] }
33
+ expect(_s).to be_a SortedArray::DefaultSorter
34
+ expect(_s.method).to eq(:to_s)
33
35
  end
34
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorted_array
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -209,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
209
  version: '0'
210
210
  segments:
211
211
  - 0
212
- hash: -3563326067175133732
212
+ hash: -1794077783631359981
213
213
  required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  none: false
215
215
  requirements:
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  version: '0'
219
219
  segments:
220
220
  - 0
221
- hash: -3563326067175133732
221
+ hash: -1794077783631359981
222
222
  requirements: []
223
223
  rubyforge_project:
224
224
  rubygems_version: 1.8.25