active_metadata 0.6.6 → 0.6.7

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/README.md CHANGED
@@ -4,6 +4,8 @@ I task di rake vengono invocati via il namespace app.
4
4
  rake app:ci
5
5
 
6
6
  ## Issues
7
- * The install rake task is destructive. Needs to be refactored as a raila generator using Thor actions.
7
+ * The install rake task is destructive. Needs to be refactored as a rails generator using Thor actions.
8
8
  * The install task should automount the engine as /active_metadata
9
+ * Migrations should be available to the rails app that mount the engine and not copied.
10
+ * Move the test db creation into before suite rspec callback and remove the migration from the db folder
9
11
 
@@ -8,21 +8,21 @@ module ActiveMetadata::Persistence::Attachment
8
8
 
9
9
  def save_attachment_for(field, file, starred=false)
10
10
  attachment = ActiveMetadata::Attachment.create! :document_class => metadata_class, :document_id => metadata_id, :label => field, :attach => file,
11
- :starred => starred, :created_by => current_user_id
12
- reload_attachments_cache_for field
11
+ :starred => starred, :created_by => current_user_id
12
+ reload_attachments_cache_for field
13
13
  self.send(:send_notification, field, "", attachment.attach.original_filename, :attachment_message, current_user_id)
14
14
  end
15
15
 
16
16
  def attachments_for(field, order_by="updated_at DESC")
17
- # Rails.cache.fetch(attachments_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
17
+ Rails.cache.fetch(attachments_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
18
18
  fetch_attachments_for field, nil, order_by
19
- # end
19
+ end
20
20
  end
21
21
 
22
22
  def delete_attachment(id)
23
23
  a = ActiveMetadata::Attachment.find(id)
24
24
  filename = a.attach.original_filename
25
- a.destroy
25
+ a.destroy
26
26
  reload_attachments_cache_for a.label
27
27
  self.send(:send_notification, a.label, filename, "", :attachment_message)
28
28
  end
@@ -54,31 +54,31 @@ module ActiveMetadata::Persistence::Attachment
54
54
 
55
55
  # not cached
56
56
  def starred_attachments_for(field)
57
- fetch_attachments_for field,true
57
+ fetch_attachments_for field, true
58
58
  end
59
59
 
60
60
  def star_attachment(id)
61
61
  n = ActiveMetadata::Attachment.find(id)
62
- update_attachment id,n.attach,true
62
+ update_attachment id, n.attach, true
63
63
  end
64
64
 
65
65
  def unstar_attachment(id)
66
66
  n = ActiveMetadata::Attachment.find(id)
67
- update_attachment id,n.attach,false
67
+ update_attachment id, n.attach, false
68
68
  end
69
69
 
70
70
  private
71
-
71
+
72
72
  def reload_attachments_cache_for field
73
73
  #Rails.cache.clear
74
- Rails.cache.write(attachments_cache_key(field),fetch_attachments_for(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes )
75
- end
76
-
74
+ Rails.cache.write(attachments_cache_key(field), fetch_attachments_for(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes)
75
+ end
76
+
77
77
  def fetch_attachments_for(field, starred=nil, order_by="updated_at DESC")
78
- conditions = {:document_class => metadata_class, :document_id => metadata_id,:label => field}
78
+ conditions = {:document_class => metadata_class, :document_id => metadata_id, :label => field}
79
79
  conditions[:starred] = starred if !starred.nil?
80
- ActiveMetadata::Attachment.all(:conditions => conditions , :order => order_by)
81
- end
80
+ ActiveMetadata::Attachment.all(:conditions => conditions, :order => order_by)
81
+ end
82
82
 
83
83
  end
84
84
 
@@ -16,15 +16,15 @@ module ActiveMetadata::Persistence::History
16
16
  end
17
17
 
18
18
  def history_for field, order="created_at DESC"
19
- #Rails.cache.fetch(history_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
19
+ Rails.cache.fetch(history_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
20
20
  fetch_histories_for field, order
21
- #end
21
+ end
22
22
  end
23
23
 
24
24
  private
25
25
 
26
26
  def invalidate_history_cache_for field
27
- #Rails.cache.delete history_cache_key(field)
27
+ Rails.cache.delete history_cache_key(field)
28
28
  end
29
29
 
30
30
  def fetch_histories_for field, order
@@ -5,85 +5,85 @@ module ActiveMetadata::Persistence::Note
5
5
  end
6
6
 
7
7
  module InstanceMethods
8
-
8
+
9
9
  def create_note_for(field, note, starred=false)
10
- ActiveMetadata::Note.create! :document_id => metadata_id, :document_class => metadata_class, :label => field.to_s,:note => note, :created_by => current_user_id, :starred => starred
10
+ ActiveMetadata::Note.create! :document_id => metadata_id, :document_class => metadata_class, :label => field.to_s, :note => note, :created_by => current_user_id, :starred => starred
11
11
 
12
12
  reload_notes_cache_for field
13
- self.send(:send_notification, field, "", note, :note_message, current_user_id)
13
+ self.send(:send_notification, field, "", note, :note_message, current_user_id)
14
14
  end
15
15
 
16
16
  def update_note(id, note, starred=nil)
17
17
  n = ActiveMetadata::Note.find(id)
18
18
  old_value = n.note
19
- attributes = {:note => note, :updated_by => current_user_id, :updated_at => Time.now.utc}
19
+ attributes = {:note => note, :updated_by => current_user_id, :updated_at => Time.now.utc}
20
20
  #mass assign starred inly if provided
21
21
  unless starred.nil?
22
22
  attributes[:starred] = starred
23
23
  end
24
24
  n.update_attributes! attributes
25
- reload_notes_cache_for n.label
25
+ reload_notes_cache_for n.label
26
26
  self.send(:send_notification, n.label, old_value, note, :note_message, current_user_id)
27
27
  end
28
28
 
29
29
  def notes_for(field, order_by="updated_at DESC")
30
- # Rails.cache.fetch(notes_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
30
+ Rails.cache.fetch(notes_cache_key(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes) do
31
31
  fetch_notes_for field, nil, order_by
32
- # end
32
+ end
33
33
  end
34
34
 
35
35
  def find_note_by_id(id)
36
36
  ActiveMetadata::Note.find(id)
37
- end
38
-
39
- def create_notes_for(field,notes)
37
+ end
38
+
39
+ def create_notes_for(field, notes)
40
40
  notes.each { |note| create_note_for field, note }
41
41
  end
42
42
 
43
43
  def delete_note(id)
44
44
  note = ActiveMetadata::Note.find(id)
45
45
  old_value = note.note
46
- note.destroy
46
+ note.destroy
47
47
  reload_notes_cache_for note.label
48
48
  self.send(:send_notification, note.label, old_value, "", :note_message)
49
49
  end
50
-
51
- def has_notes_for field
50
+
51
+ def has_notes_for field
52
52
  notes_for(field).size == 0 ? false : true
53
53
  end
54
54
 
55
- def count_notes_for field
55
+ def count_notes_for field
56
56
  notes_for(field).size
57
57
  end
58
58
 
59
59
  # not cached
60
60
  def starred_notes_for(field)
61
- fetch_notes_for field,true
61
+ fetch_notes_for field, true
62
62
  end
63
63
 
64
64
  def star_note(id)
65
65
  n = ActiveMetadata::Note.find(id)
66
- update_note id,n.note,true
66
+ update_note id, n.note, true
67
67
  end
68
68
 
69
69
  def unstar_note(id)
70
70
  n = ActiveMetadata::Note.find(id)
71
- update_note id,n.note,false
71
+ update_note id, n.note, false
72
72
  end
73
73
 
74
74
  private
75
-
76
- def reload_notes_cache_for field
77
- Rails.cache.write(notes_cache_key(field),fetch_notes_for(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes )
78
- end
79
-
75
+
76
+ def reload_notes_cache_for field
77
+ Rails.cache.write(notes_cache_key(field), fetch_notes_for(field), :expires_in => ActiveMetadata::CONFIG['cache_expires_in'].minutes)
78
+ end
79
+
80
80
  def fetch_notes_for(field, starred=nil, order_by="updated_at DESC")
81
81
  conditions = {:label => field, :document_class => metadata_class, :document_id => metadata_id}
82
82
  unless starred.nil?
83
83
  conditions[:starred] = starred
84
84
  end
85
85
  ActiveMetadata::Note.all(:conditions => conditions, :order => order_by)
86
- end
87
-
86
+ end
87
+
88
88
  end
89
89
  end
@@ -1,12 +1,12 @@
1
1
  module ActiveMetadata::Streamable
2
2
 
3
- def stream_for field
4
- sort_stream(collect_stream_data(field))
3
+ def stream_for(field, order_by = :created_at)
4
+ sort_stream(collect_stream_data(field), order_by)
5
5
  end
6
6
 
7
7
  private
8
- def sort_stream stream
9
- stream.sort{|a,b| b.updated_at <=> a.updated_at}
8
+ def sort_stream stream, order_by
9
+ stream.sort{ |a,b| b.send(order_by) <=> a.send(order_by) }
10
10
  end
11
11
 
12
12
  def collect_stream_data field
@@ -1,3 +1,3 @@
1
1
  module ActiveMetadata
2
- VERSION = "0.6.6"
2
+ VERSION = "0.6.7"
3
3
  end
Binary file
@@ -76,7 +76,7 @@ describe ActiveMetadata::Streamable do
76
76
  end
77
77
 
78
78
 
79
- it "should sort the stream data by updated_at DESC by default" do
79
+ it "should sort the stream by updated_at DESC" do
80
80
  @document.save_attachment_for(:surname,test_pdf("pdf_test_1"))
81
81
  sleep 2.seconds
82
82
  @document.create_note_for(:surname, "surname note")
@@ -84,13 +84,28 @@ describe ActiveMetadata::Streamable do
84
84
  @document.save_attachment_for(:surname,test_pdf("pdf_test_2"))
85
85
 
86
86
  stream = @document.send(:collect_stream_data, :surname)
87
- res = @document.send(:sort_stream, stream)
87
+ res = @document.send(:sort_stream, stream, :updated_at)
88
88
 
89
89
  res[0].attach_file_name.should eq 'pdf_test_2.pdf'
90
90
  res[1].note.should eq 'surname note'
91
91
  res[2].attach_file_name.should eq 'pdf_test_1.pdf'
92
92
  end
93
93
 
94
+ it "should sort the stream by updated_at DESC" do
95
+ @document.create_note_for(:surname, "surname note")
96
+ sleep 2.seconds
97
+ @document.save_attachment_for(:surname,test_pdf("pdf_test_2"))
98
+ sleep 2.seconds
99
+ @document.save_attachment_for(:surname,test_pdf("pdf_test_1"))
100
+
101
+ stream = @document.send(:collect_stream_data, :surname)
102
+ res = @document.send(:sort_stream, stream, :created_at)
103
+
104
+ res[0].attach_file_name.should eq 'pdf_test_1.pdf'
105
+ res[1].attach_file_name.should eq 'pdf_test_2.pdf'
106
+ res[2].note.should eq 'surname note'
107
+ end
108
+
94
109
  end
95
110
 
96
111
  describe "stream_for" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-27 00:00:00.000000000Z
13
+ date: 2012-03-23 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2169860620 !ruby/object:Gem::Requirement
17
+ requirement: &70220537360720 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.2.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2169860620
25
+ version_requirements: *70220537360720
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: sqlite3
28
- requirement: &2169860200 !ruby/object:Gem::Requirement
28
+ requirement: &70220537360160 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2169860200
36
+ version_requirements: *70220537360160
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec-rails
39
- requirement: &2169859740 !ruby/object:Gem::Requirement
39
+ requirement: &70220537359380 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2169859740
47
+ version_requirements: *70220537359380
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: sqlite3
50
- requirement: &2169859320 !ruby/object:Gem::Requirement
50
+ requirement: &70220537358200 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2169859320
58
+ version_requirements: *70220537358200
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sqlite3-ruby
61
- requirement: &2169858900 !ruby/object:Gem::Requirement
61
+ requirement: &70220537357200 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2169858900
69
+ version_requirements: *70220537357200
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: cucumber-rails
72
- requirement: &2169858480 !ruby/object:Gem::Requirement
72
+ requirement: &70220537356660 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2169858480
80
+ version_requirements: *70220537356660
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: ci_reporter
83
- requirement: &2169858060 !ruby/object:Gem::Requirement
83
+ requirement: &70220537355860 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2169858060
91
+ version_requirements: *70220537355860
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: paperclip
94
- requirement: &2169857640 !ruby/object:Gem::Requirement
94
+ requirement: &70220537354840 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '0'
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *2169857640
102
+ version_requirements: *70220537354840
103
103
  description: First implementation will write metadata on mongodb
104
104
  email:
105
105
  - acampolonghi@gmail.com
@@ -139,10 +139,8 @@ files:
139
139
  - config/cucumber.yml
140
140
  - config/database.yml
141
141
  - config/routes.rb
142
- - db/development.sqlite3
143
142
  - db/migrate/01_create_test_resources.rb
144
143
  - db/migrate/02_active_metadata_migrations.rb
145
- - db/test.sqlite3
146
144
  - lib/active_metadata/base.rb
147
145
  - lib/active_metadata/engine.rb
148
146
  - lib/active_metadata/form_helper.rb
@@ -237,7 +235,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
235
  version: '0'
238
236
  segments:
239
237
  - 0
240
- hash: 4305454113259867413
238
+ hash: 4276269757751504892
241
239
  required_rubygems_version: !ruby/object:Gem::Requirement
242
240
  none: false
243
241
  requirements:
@@ -246,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
244
  version: '0'
247
245
  segments:
248
246
  - 0
249
- hash: 4305454113259867413
247
+ hash: 4276269757751504892
250
248
  requirements: []
251
249
  rubyforge_project: active_metadata
252
250
  rubygems_version: 1.8.10
Binary file
data/db/test.sqlite3 DELETED
Binary file