seasyar 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.rvmrc CHANGED
@@ -4,7 +4,7 @@
4
4
  # development environment upon cd'ing into the directory
5
5
 
6
6
  # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
- environment_id="ruby-1.9.2-p290"
7
+ environment_id="ruby-1.9.2-p320"
8
8
 
9
9
  #
10
10
  # First we attempt to load the desired environment directly from the environment
data/Gemfile CHANGED
@@ -4,16 +4,15 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem "seasy", ">= 0.0.9"
7
- gem "activerecord", "~> 3.0"
7
+ gem "activerecord", "~> 3.2"
8
8
  gem "multi_json", "~> 1.0"
9
9
 
10
10
  # Add dependencies to develop your gem here.
11
11
  # Include everything needed to run rake, tests, features, etc.
12
12
  group :development do
13
13
  gem "rspec"
14
- gem "bundler", "~> 1.0.0"
15
- gem "jeweler", "~> 1.6.4"
16
- gem "rcov", ">= 0"
14
+ gem "bundler"#, "~> 1.0.0"
15
+ gem "jeweler"#, "~> 1.6.4"
17
16
  gem "standalone_migrations"
18
17
  gem "sqlite3"
19
18
  end
data/Gemfile.lock CHANGED
@@ -1,53 +1,89 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.1.3)
5
- activesupport (= 3.1.3)
4
+ actionpack (3.2.8)
5
+ activemodel (= 3.2.8)
6
+ activesupport (= 3.2.8)
6
7
  builder (~> 3.0.0)
7
- i18n (~> 0.6)
8
- activerecord (3.1.3)
9
- activemodel (= 3.1.3)
10
- activesupport (= 3.1.3)
11
- arel (~> 2.2.1)
8
+ erubis (~> 2.7.0)
9
+ journey (~> 1.0.4)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
12
+ rack-test (~> 0.6.1)
13
+ sprockets (~> 2.1.3)
14
+ activemodel (3.2.8)
15
+ activesupport (= 3.2.8)
16
+ builder (~> 3.0.0)
17
+ activerecord (3.2.8)
18
+ activemodel (= 3.2.8)
19
+ activesupport (= 3.2.8)
20
+ arel (~> 3.0.2)
12
21
  tzinfo (~> 0.3.29)
13
- activesupport (3.1.3)
22
+ activesupport (3.2.8)
23
+ i18n (~> 0.6)
14
24
  multi_json (~> 1.0)
15
- arel (2.2.1)
16
- builder (3.0.0)
25
+ arel (3.0.2)
26
+ builder (3.0.4)
17
27
  diff-lcs (1.1.3)
28
+ erubis (2.7.0)
18
29
  git (1.2.5)
19
- i18n (0.6.0)
20
- jeweler (1.6.4)
30
+ hike (1.2.1)
31
+ i18n (0.6.1)
32
+ jeweler (1.8.4)
21
33
  bundler (~> 1.0)
22
34
  git (>= 1.2.5)
23
35
  rake
24
- multi_json (1.0.4)
36
+ rdoc
37
+ journey (1.0.4)
38
+ json (1.7.5)
39
+ multi_json (1.3.7)
40
+ rack (1.4.1)
41
+ rack-cache (1.2)
42
+ rack (>= 0.4)
43
+ rack-ssl (1.3.2)
44
+ rack
45
+ rack-test (0.6.2)
46
+ rack (>= 1.0)
47
+ railties (3.2.8)
48
+ actionpack (= 3.2.8)
49
+ activesupport (= 3.2.8)
50
+ rack-ssl (~> 1.3.2)
51
+ rake (>= 0.8.7)
52
+ rdoc (~> 3.4)
53
+ thor (>= 0.14.6, < 2.0)
25
54
  rake (0.9.2.2)
26
- rcov (0.9.11)
27
- rspec (2.8.0)
28
- rspec-core (~> 2.8.0)
29
- rspec-expectations (~> 2.8.0)
30
- rspec-mocks (~> 2.8.0)
31
- rspec-core (2.8.0)
32
- rspec-expectations (2.8.0)
33
- diff-lcs (~> 1.1.2)
34
- rspec-mocks (2.8.0)
55
+ rdoc (3.12)
56
+ json (~> 1.4)
57
+ rspec (2.11.0)
58
+ rspec-core (~> 2.11.0)
59
+ rspec-expectations (~> 2.11.0)
60
+ rspec-mocks (~> 2.11.0)
61
+ rspec-core (2.11.1)
62
+ rspec-expectations (2.11.3)
63
+ diff-lcs (~> 1.1.3)
64
+ rspec-mocks (2.11.3)
35
65
  seasy (0.0.9)
36
- sqlite3 (1.3.5)
37
- standalone_migrations (1.0.5)
38
- activerecord (>= 3)
66
+ sprockets (2.1.3)
67
+ hike (~> 1.2)
68
+ rack (~> 1.0)
69
+ tilt (~> 1.1, != 1.3.0)
70
+ sqlite3 (1.3.6)
71
+ standalone_migrations (2.0.2)
72
+ activerecord (~> 3.2.6)
73
+ railties (~> 3.2.6)
39
74
  rake
40
- tzinfo (0.3.31)
75
+ thor (0.16.0)
76
+ tilt (1.3.3)
77
+ tzinfo (0.3.35)
41
78
 
42
79
  PLATFORMS
43
80
  ruby
44
81
 
45
82
  DEPENDENCIES
46
- activerecord (~> 3.0)
47
- bundler (~> 1.0.0)
48
- jeweler (~> 1.6.4)
83
+ activerecord (~> 3.2)
84
+ bundler
85
+ jeweler
49
86
  multi_json (~> 1.0)
50
- rcov
51
87
  rspec
52
88
  seasy (>= 0.0.9)
53
89
  sqlite3
data/Rakefile CHANGED
@@ -32,14 +32,6 @@ Rake::TestTask.new(:test) do |test|
32
32
  test.verbose = true
33
33
  end
34
34
 
35
- require 'rcov/rcovtask'
36
- Rcov::RcovTask.new do |test|
37
- test.libs << 'test'
38
- test.pattern = 'test/**/test_*.rb'
39
- test.verbose = true
40
- test.rcov_opts << '--exclude "gems/*"'
41
- end
42
-
43
35
  task :default => :test
44
36
 
45
37
  require 'rake/rdoctask'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.13
1
+ 0.0.14
@@ -1,9 +1,7 @@
1
1
  module Seasyar
2
2
  require 'seasy'
3
3
 
4
- def index index_name, *fields
5
- index = Seasy::Index.with_name index_name.to_s
6
-
4
+ def index index_name, *fields, &target_block
7
5
  has_changed = fields.detect do |one_field|
8
6
  changed_method = "#{one_field}_changed?".to_sym
9
7
  if self.respond_to? changed_method
@@ -14,16 +12,23 @@ module Seasyar
14
12
  end
15
13
 
16
14
  if has_changed
17
- value = aggregated_value fields
15
+ reindex index_name, *fields, &target_block
16
+ end
17
+ end
18
18
 
19
- source = "#{self.class}:#{self.id}"
19
+ def reindex index_name, *fields, &target_block
20
+ index = Seasy::Index.with_name index_name.to_s
20
21
 
21
- target = block_given? ? yield( self ) : self.id
22
+ value = aggregated_value fields
22
23
 
23
- index.add value.to_s, target.to_s, :source => source
24
- end
24
+ source = "#{self.class}:#{self.id}"
25
+
26
+ target = target_block ? target_block.call( self ) : self.id
27
+
28
+ index.add value.to_s, target.to_s, :source => source
25
29
  end
26
30
 
31
+ private
27
32
  def aggregated_value fields
28
33
  value = ''
29
34
  fields.each do |one_field|
@@ -32,15 +37,18 @@ module Seasyar
32
37
  value
33
38
  end
34
39
 
35
- def search index_name, query
40
+ public
41
+ def unindex index_name
36
42
  index = Seasy::Index.with_name index_name.to_s
37
- index.search query
43
+ index.remove "#{self.class}:#{self.id}"
38
44
  end
39
45
 
40
- def unindex index_name
46
+
47
+ module_function
48
+ def search index_name, query
41
49
  index = Seasy::Index.with_name index_name.to_s
42
- index.remove "#{self.class}:#{self.id}"
50
+ index.search query
43
51
  end
44
52
 
45
- module_function :index, :search, :unindex
53
+
46
54
  end
data/seasyar.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "seasyar"
8
- s.version = "0.0.13"
8
+ s.version = "0.0.14"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Fredrik Rubensson"]
12
- s.date = "2012-10-30"
12
+ s.date = "2012-11-09"
13
13
  s.description = "Seasy integration. Active record storage for seasy and save hooks in models."
14
14
  s.email = "fredrik@eldfluga.se"
15
15
  s.extra_rdoc_files = [
@@ -49,33 +49,30 @@ Gem::Specification.new do |s|
49
49
 
50
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
51
  s.add_runtime_dependency(%q<seasy>, [">= 0.0.9"])
52
- s.add_runtime_dependency(%q<activerecord>, ["~> 3.0"])
52
+ s.add_runtime_dependency(%q<activerecord>, ["~> 3.2"])
53
53
  s.add_runtime_dependency(%q<multi_json>, ["~> 1.0"])
54
54
  s.add_development_dependency(%q<rspec>, [">= 0"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
56
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
57
- s.add_development_dependency(%q<rcov>, [">= 0"])
55
+ s.add_development_dependency(%q<bundler>, [">= 0"])
56
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
58
57
  s.add_development_dependency(%q<standalone_migrations>, [">= 0"])
59
58
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
60
59
  else
61
60
  s.add_dependency(%q<seasy>, [">= 0.0.9"])
62
- s.add_dependency(%q<activerecord>, ["~> 3.0"])
61
+ s.add_dependency(%q<activerecord>, ["~> 3.2"])
63
62
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
64
63
  s.add_dependency(%q<rspec>, [">= 0"])
65
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
66
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
- s.add_dependency(%q<rcov>, [">= 0"])
64
+ s.add_dependency(%q<bundler>, [">= 0"])
65
+ s.add_dependency(%q<jeweler>, [">= 0"])
68
66
  s.add_dependency(%q<standalone_migrations>, [">= 0"])
69
67
  s.add_dependency(%q<sqlite3>, [">= 0"])
70
68
  end
71
69
  else
72
70
  s.add_dependency(%q<seasy>, [">= 0.0.9"])
73
- s.add_dependency(%q<activerecord>, ["~> 3.0"])
71
+ s.add_dependency(%q<activerecord>, ["~> 3.2"])
74
72
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
75
73
  s.add_dependency(%q<rspec>, [">= 0"])
76
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
77
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
78
- s.add_dependency(%q<rcov>, [">= 0"])
74
+ s.add_dependency(%q<bundler>, [">= 0"])
75
+ s.add_dependency(%q<jeweler>, [">= 0"])
79
76
  s.add_dependency(%q<standalone_migrations>, [">= 0"])
80
77
  s.add_dependency(%q<sqlite3>, [">= 0"])
81
78
  end
data/spec/seasyar_spec.rb CHANGED
@@ -29,6 +29,10 @@ class Dummy
29
29
  unindex INDEX_NAME
30
30
  end
31
31
 
32
+ def save_for_reindex
33
+ reindex INDEX_NAME, :static
34
+ end
35
+
32
36
  def id
33
37
  @id
34
38
  end
@@ -86,4 +90,13 @@ describe Seasyar do
86
90
  d.save_unchanged
87
91
  Seasyar::SeasyData.find_by_key( key ).updated_at.should == stamp
88
92
  end
93
+
94
+ it "reindex should always save" do
95
+ key = 'nonchanging'
96
+ d = Dummy.new 4711, key
97
+ d.save
98
+ stamp = Seasyar::SeasyData.find_by_key( key ).updated_at
99
+ d.save_for_reindex
100
+ Seasyar::SeasyData.find_by_key( key ).updated_at.should > stamp
101
+ end
89
102
  end
metadata CHANGED
@@ -1,126 +1,153 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: seasyar
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.14
4
5
  prerelease:
5
- version: 0.0.13
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Fredrik Rubensson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-10-30 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: seasy
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
22
21
  version: 0.0.9
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.0.9
30
+ - !ruby/object:Gem::Dependency
27
31
  name: activerecord
28
- requirement: &id002 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
- requirements:
34
+ requirements:
31
35
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: "3.0"
36
+ - !ruby/object:Gem::Version
37
+ version: '3.2'
34
38
  type: :runtime
35
39
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.2'
46
+ - !ruby/object:Gem::Dependency
38
47
  name: multi_json
39
- requirement: &id003 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
- requirements:
50
+ requirements:
42
51
  - - ~>
43
- - !ruby/object:Gem::Version
44
- version: "1.0"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
45
54
  type: :runtime
46
55
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ - !ruby/object:Gem::Dependency
49
63
  name: rspec
50
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
60
79
  name: bundler
61
- requirement: &id005 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
62
81
  none: false
63
- requirements:
64
- - - ~>
65
- - !ruby/object:Gem::Version
66
- version: 1.0.0
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
67
86
  type: :development
68
87
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
71
95
  name: jeweler
72
- requirement: &id006 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
73
97
  none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 1.6.4
78
- type: :development
79
- prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
82
- name: rcov
83
- requirement: &id007 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
89
102
  type: :development
90
103
  prerelease: false
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
93
111
  name: standalone_migrations
94
- requirement: &id008 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
95
113
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
100
118
  type: :development
101
119
  prerelease: false
102
- version_requirements: *id008
103
- - !ruby/object:Gem::Dependency
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
104
127
  name: sqlite3
105
- requirement: &id009 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
106
129
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: "0"
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
111
134
  type: :development
112
135
  prerelease: false
113
- version_requirements: *id009
114
- description: Seasy integration. Active record storage for seasy and save hooks in models.
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: Seasy integration. Active record storage for seasy and save hooks in
143
+ models.
115
144
  email: fredrik@eldfluga.se
116
145
  executables: []
117
-
118
146
  extensions: []
119
-
120
- extra_rdoc_files:
147
+ extra_rdoc_files:
121
148
  - LICENSE.txt
122
149
  - README.md
123
- files:
150
+ files:
124
151
  - .document
125
152
  - .rvmrc
126
153
  - Gemfile
@@ -142,34 +169,31 @@ files:
142
169
  - spec/seasyar_spec.rb
143
170
  - spec/storage_spec.rb
144
171
  homepage: http://github.com/froderik/seasyar
145
- licenses:
172
+ licenses:
146
173
  - MIT
147
174
  post_install_message:
148
175
  rdoc_options: []
149
-
150
- require_paths:
176
+ require_paths:
151
177
  - lib
152
- required_ruby_version: !ruby/object:Gem::Requirement
178
+ required_ruby_version: !ruby/object:Gem::Requirement
153
179
  none: false
154
- requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- hash: -1651341459813089592
158
- segments:
180
+ requirements:
181
+ - - ! '>='
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ segments:
159
185
  - 0
160
- version: "0"
161
- required_rubygems_version: !ruby/object:Gem::Requirement
186
+ hash: 2707278775214487662
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
188
  none: false
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: "0"
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
167
193
  requirements: []
168
-
169
194
  rubyforge_project:
170
195
  rubygems_version: 1.8.24
171
196
  signing_key:
172
197
  specification_version: 3
173
198
  summary: active record integration for seasy
174
199
  test_files: []
175
-