seasyar 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
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
-