erp_tech_svcs 3.1.5 → 3.1.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.
Files changed (29) hide show
  1. data/app/models/file_asset.rb +1 -1
  2. data/lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb +1 -1
  3. data/lib/erp_tech_svcs/file_support/railties/s3_resolver.rb +3 -21
  4. data/lib/erp_tech_svcs/file_support/s3_manager.rb +74 -109
  5. data/lib/erp_tech_svcs/version.rb +1 -1
  6. metadata +5 -50
  7. data/spec/dummy/db/data_migrations/20130220143304_add_usd_currency.erp_base_erp_svcs.rb +0 -12
  8. data/spec/dummy/db/data_migrations/20130220143305_add_iso_codes.erp_base_erp_svcs.rb +0 -19
  9. data/spec/dummy/db/data_migrations/20130220143306_setup_compass_ae_instance.erp_base_erp_svcs.rb +0 -21
  10. data/spec/dummy/db/data_migrations/20130220143307_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb +0 -19
  11. data/spec/dummy/db/data_migrations/20130220143308_create_capability_scope_types.erp_tech_svcs.rb +0 -15
  12. data/spec/dummy/db/data_migrations/20130220143309_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +0 -16
  13. data/spec/dummy/db/data_migrations/20130220143310_setup_audit_log_types.erp_tech_svcs.rb +0 -22
  14. data/spec/dummy/db/data_migrations/20130220143311_create_group_relationship_and_role_types.erp_tech_svcs.rb +0 -20
  15. data/spec/dummy/db/data_migrations/20130220143312_note_capabilities.erp_tech_svcs.rb +0 -24
  16. data/spec/dummy/db/data_migrations/20130422151256_add_guid_to_instances.erp_base_erp_svcs.rb +0 -10
  17. data/spec/dummy/db/migrate/20130220143259_base_erp_services.erp_base_erp_svcs.rb +0 -486
  18. data/spec/dummy/db/migrate/20130220143260_add_txn_status.erp_base_erp_svcs.rb +0 -37
  19. data/spec/dummy/db/migrate/20130220143261_upgrade_compass_ae_instances.erp_base_erp_svcs.rb +0 -34
  20. data/spec/dummy/db/migrate/20130220143262_base_tech_services.erp_tech_svcs.rb +0 -271
  21. data/spec/dummy/db/migrate/20130220143263_create_has_attribute_tables.erp_tech_svcs.rb +0 -39
  22. data/spec/dummy/db/migrate/20130220143264_create_groups.erp_tech_svcs.rb +0 -19
  23. data/spec/dummy/db/migrate/20130220143265_upgrade_security.erp_tech_svcs.rb +0 -54
  24. data/spec/dummy/db/migrate/20130220143266_upgrade_security2.erp_tech_svcs.rb +0 -275
  25. data/spec/dummy/db/migrate/20130422151250_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb +0 -17
  26. data/spec/dummy/db/migrate/20130422151251_add_long_lat_to_address.erp_base_erp_svcs.rb +0 -16
  27. data/spec/dummy/db/migrate/20130422151252_add_queue_to_delayed_jobs.erp_tech_svcs.rb +0 -14
  28. data/spec/dummy/db/schema.rb +0 -665
  29. data/spec/dummy/db/spec.sqlite3 +0 -0
@@ -165,7 +165,7 @@ class FileAsset < ActiveRecord::Base
165
165
  end
166
166
  end
167
167
  #return true
168
- end
168
+ end
169
169
 
170
170
  def basename
171
171
  data_file_name.gsub(/\.#{extname}$/, "")
@@ -75,7 +75,7 @@ module ErpTechSvcs
75
75
  join_type = (self.protect_all_instances ? 'JOIN' : 'LEFT JOIN')
76
76
  query = joins("#{join_type} capabilities AS c ON c.capability_resource_id = #{self.table_name}.id AND c.capability_resource_type = '#{self.name}'").
77
77
  group(columns.collect{|c| "#{self.table_name}.#{c.name}" })
78
- query = (deny_count == 0 ? query.where("c.id IS NULL OR c.id = c.id") : query.where("c.id IS NULL OR c.id NOT IN (#{denied_capabilities.to_sql})"))
78
+ query = (deny_count == 0 ? query.where("c.id NOT IN (SELECT id FROM capabilities) OR c.id = c.id") : query.where("c.id NOT IN (SELECT id FROM capabilities) OR c.id NOT IN (#{denied_capabilities.to_sql})"))
79
79
  query
80
80
  }
81
81
 
@@ -64,33 +64,15 @@ module ActionView
64
64
  end
65
65
 
66
66
  def mtime(p, file_support)
67
- node = file_support.find_node(p)
68
- node[:last_modified]
67
+ p = p.sub(%r{^/}, '')
68
+ ErpTechSvcs::FileSupport::S3Manager.new.bucket.objects[p].last_modified
69
69
  end
70
70
 
71
71
  protected
72
-
73
- def cache_key(path)
74
- Thread.current[:tenant_id].nil? ? path : "tenant_#{Thread.current[:tenant_id]}_#{path}"
75
- end
76
-
77
- def cache_template(path, file_support)
78
- contents, message = file_support.get_contents(path)
79
- path = path.sub(%r{^/},'')
80
- #Rails.logger.info "creating cache with key: #{path}"
81
- Rails.cache.write(cache_key(path), contents, :expires_in => ErpTechSvcs::Config.s3_cache_expires_in_minutes.minutes)
82
- return contents, message
83
- end
84
72
 
85
73
  def build_template(p, virtual_path, formats, file_support, locals=nil)
86
74
  handler, format = extract_handler_and_format(p, formats)
87
- contents = Rails.cache.read(cache_key(p.sub(%r{^/},'')))
88
- if contents.nil?
89
- contents, message = cache_template(p, file_support)
90
- else
91
- #Rails.logger.info "!!!!! USING CACHED TEMPLATE: #{contents.inspect}"
92
- contents = contents.dup
93
- end
75
+ contents, message = file_support.get_contents(p)
94
76
 
95
77
  Template.new(contents, p, handler, :virtual_path => virtual_path, :format => format, :updated_at => mtime(p, file_support), :locals => locals)
96
78
  end
@@ -5,69 +5,25 @@ module ErpTechSvcs
5
5
  module FileSupport
6
6
  class S3Manager < Manager
7
7
  class << self
8
- cattr_accessor :node_tree, :s3_connection
8
+ cattr_accessor :s3_connection, :s3_bucket, :tree
9
9
 
10
10
  def setup_connection
11
- @@configuration = YAML::load_file(File.join(Rails.root,'config','s3.yml'))[Rails.env]
12
-
11
+ @@configuration = YAML::load_file(File.join(Rails.root, 'config', 's3.yml'))[Rails.env]
12
+
13
13
  # S3 debug logging
14
14
  # AWS.config(
15
- # :logger => Rails.logger,
16
- # :log_level => :info
15
+ # :logger => Rails.logger,
16
+ # :log_level => :info
17
17
  # )
18
18
 
19
19
  @@s3_connection = AWS::S3.new(
20
- :access_key_id => @@configuration['access_key_id'],
21
- :secret_access_key => @@configuration['secret_access_key']
20
+ :access_key_id => @@configuration['access_key_id'],
21
+ :secret_access_key => @@configuration['secret_access_key']
22
22
  )
23
23
 
24
24
  @@s3_bucket = @@s3_connection.buckets[@@configuration['bucket'].to_sym]
25
25
  end
26
26
 
27
- def reload
28
- !@@s3_connection.nil? ? build_node_tree(true) : setup_connection
29
- end
30
-
31
- def cache_key
32
- Thread.current[:tenant_id].nil? ? 'node_tree' : "tenant_#{Thread.current[:tenant_id]}_node_tree"
33
- end
34
-
35
- def cache_node_tree(node_tree)
36
- Rails.cache.write(cache_key, node_tree, :expires_in => ErpTechSvcs::Config.s3_cache_expires_in_minutes.minutes)
37
- node_tree
38
- end
39
-
40
- def add_children(parent_hash, tree)
41
- tree.children.each do |child|
42
- child_hash = {
43
- :last_modified => '',
44
- #:last_modified => (child.leaf? ? @@s3_bucket.objects[child.key].last_modified : ''),
45
- :text => (child.leaf? ? File.basename(child.key) : File.basename(child.prefix)),
46
- :downloadPath => (child.leaf? ? '/'+File.dirname(child.key) : "/#{child.parent.prefix}".sub(%r{/$},'')),
47
- :leaf => child.leaf?,
48
- :id => (child.leaf? ? '/'+child.key : "/#{child.prefix}".sub(%r{/$},'')),
49
- :children => []
50
- }
51
- child_hash = add_children(child_hash, child) unless child.leaf?
52
- unless child_hash[:id].gsub(/\/$/,'') == parent_hash[:id].gsub(/\/$/,'') # resolves s3 issue where empty dir contains itself
53
- parent_hash[:children] << child_hash unless child_hash[:downloadPath] == '/.'
54
- end
55
- end
56
-
57
- parent_hash
58
- end
59
-
60
- def build_node_tree(reload=false)
61
- node_tree = Rails.cache.read(cache_key)
62
- if !reload and !node_tree.nil?
63
- #Rails.logger.info "@@@@@@@@@@@@@@ USING CACHED node_tree: #{node_tree.inspect}"
64
- return node_tree
65
- end
66
-
67
- tree_data = {:text => @@s3_bucket.name, :leaf => false, :id => '', :children => []}
68
- tree_data = [add_children(tree_data, @@s3_bucket.as_tree)]
69
- cache_node_tree(tree_data)
70
- end
71
27
  end
72
28
 
73
29
  def buckets
@@ -86,39 +42,25 @@ module ErpTechSvcs
86
42
  ''
87
43
  end
88
44
 
89
- def cache_key
90
- ErpTechSvcs::FileSupport::S3Manager.cache_key
91
- end
92
-
93
- def clear_cache(path)
94
- path = path.sub(%r{^/},'')
95
- #Rails.logger.info "deleting cache with key: #{path}"
96
- Rails.cache.delete(path) # delete template from cache
97
- Rails.cache.delete(cache_key) # delete node tree from cache
98
- end
99
-
100
45
  def update_file(path, content)
101
46
  file = FileAsset.where(:name => ::File.basename(path)).where(:directory => ::File.dirname(path)).first
102
47
  acl = (file.is_secured? ? :private : :public_read) unless file.nil?
103
- options = (file.nil? ? {} : {:acl => acl, :content_type => file.content_type })
104
- path = path.sub(%r{^/},'')
48
+ options = (file.nil? ? {} : {:acl => acl, :content_type => file.content_type})
49
+ path = path.sub(%r{^/}, '')
105
50
  bucket.objects[path].write(content, options)
106
- clear_cache(path)
107
51
  end
108
52
 
109
53
  def create_file(path, name, content)
110
- path = path.sub(%r{^/},'')
54
+ path = path.sub(%r{^/}, '')
111
55
  full_filename = (path.blank? ? name : File.join(path, name))
112
- bucket.objects[full_filename].write(content, { :acl => :public_read })
113
- clear_cache(path)
56
+ bucket.objects[full_filename].write(content, {:acl => :public_read})
114
57
  end
115
58
 
116
59
  def create_folder(path, name)
117
- path = path.sub(%r{^/},'')
60
+ path = path.sub(%r{^/}, '')
118
61
  full_filename = (path.blank? ? name : File.join(path, name))
119
62
  folder = full_filename + "/"
120
- bucket.objects[folder].write('', { :acl => :public_read })
121
- clear_cache(path)
63
+ bucket.objects[folder].write('', {:acl => :public_read})
122
64
  end
123
65
 
124
66
  def save_move(path, new_parent_path)
@@ -130,13 +72,12 @@ module ErpTechSvcs
130
72
  acl = (file.is_secured? ? :private : :public_read) unless file.nil?
131
73
  options = (file.nil? ? {} : {:acl => acl})
132
74
  name = File.basename(path)
133
- path = path.sub(%r{^/},'')
134
- new_path = File.join(new_parent_path,name).sub(%r{^/},'')
75
+ path = path.sub(%r{^/}, '')
76
+ new_path = File.join(new_parent_path, name).sub(%r{^/}, '')
135
77
  old_object = bucket.objects[path]
136
78
  if new_object = old_object.move_to(new_path, options)
137
79
  message = "#{name} was moved to #{new_path} successfully"
138
80
  result = true
139
- clear_cache(path)
140
81
  else
141
82
  message = "Error moving file #{path}"
142
83
  end
@@ -156,18 +97,17 @@ module ErpTechSvcs
156
97
  file = FileAsset.where(:name => ::File.basename(path)).where(:directory => ::File.dirname(path)).first
157
98
  acl = (file.is_secured? ? :private : :public_read) unless file.nil?
158
99
  options = (file.nil? ? {} : {:acl => acl})
159
- path = path.sub(%r{^/},'')
160
- new_path = new_path.sub(%r{^/},'')
100
+ path = path.sub(%r{^/}, '')
101
+ new_path = new_path.sub(%r{^/}, '')
161
102
  # Rails.logger.info "renaming from #{path} to #{new_path}"
162
103
  old_object = bucket.objects[path]
163
104
  if new_object = old_object.move_to(new_path, options)
164
105
  message = "#{old_name} was renamed to #{name} successfully"
165
106
  result = true
166
- clear_cache(path)
167
107
  else
168
108
  message = "Error renaming #{old_name}"
169
109
  end
170
- rescue AWS::S3::Errors::NoSuchKey=>ex
110
+ rescue AWS::S3::Errors::NoSuchKey => ex
171
111
  message = FILE_FOLDER_DOES_NOT_EXIST
172
112
  end
173
113
 
@@ -175,13 +115,13 @@ module ErpTechSvcs
175
115
  end
176
116
 
177
117
  def set_permissions(path, canned_acl=:public_read)
178
- path = path.sub(%r{^/},'')
118
+ path = path.sub(%r{^/}, '')
179
119
  bucket.objects[path].acl = canned_acl
180
120
  end
181
121
 
182
122
  def delete_file(path, options={})
183
- is_directory = !path.match(/\/$/).nil?
184
- path = path.sub(%r{^/},'')
123
+ is_directory = File.extname(path).blank?
124
+ path = path.sub(%r{^/}, '')
185
125
  result = false
186
126
  message = nil
187
127
  begin
@@ -189,21 +129,20 @@ module ErpTechSvcs
189
129
  bucket.objects.with_prefix(path).delete_all
190
130
  message = "File was deleted successfully"
191
131
  result = true
192
- clear_cache(path)
193
132
  else
194
133
  message = FOLDER_IS_NOT_EMPTY
195
134
  end
196
135
  rescue Exception => e
197
- result = false
198
- message = e
199
- end
136
+ result = false
137
+ message = e
138
+ end
200
139
 
201
- return result, message, is_directory
140
+ return result, message, is_directory
202
141
  end
203
142
 
204
143
  def exists?(path)
205
144
  begin
206
- path = path.sub(%r{^/},'')
145
+ path = path.sub(%r{^/}, '')
207
146
  return bucket.objects[path].exists?
208
147
  rescue AWS::S3::Errors::NoSuchKey
209
148
  return false
@@ -214,10 +153,10 @@ module ErpTechSvcs
214
153
  contents = nil
215
154
  message = nil
216
155
 
217
- path = path.sub(%r{^/},'')
156
+ path = path.sub(%r{^/}, '')
218
157
  begin
219
158
  object = bucket.objects[path]
220
- contents = object.read
159
+ contents = object.read
221
160
  rescue AWS::S3::Errors::NoSuchKey => error
222
161
  contents = ''
223
162
  message = FILE_DOES_NOT_EXIST
@@ -227,36 +166,62 @@ module ErpTechSvcs
227
166
  end
228
167
 
229
168
  def build_tree(starting_path, options={})
230
- starting_path = "/" + starting_path unless starting_path.first == "/"
231
169
  node_tree = find_node(starting_path, options)
232
170
  node_tree.nil? ? [] : node_tree
233
171
  end
234
172
 
235
173
  def find_node(path, options={})
236
- parent = if options[:file_asset_holder]
237
- super
238
- else
239
- parent = ErpTechSvcs::FileSupport::S3Manager.build_node_tree(false).first
240
- unless path.nil?
241
- path_pieces = path.split('/')
242
- path_pieces.each do |path_piece|
243
- next if path_piece.blank?
244
- parent[:children].each do |child_node|
245
- if child_node[:text] == path_piece
246
- parent = child_node
247
- break
248
- end
174
+ #remove proceeding slash for s3
175
+ path.sub!(%r{^/}, '')
176
+
177
+ parent = {:text => path.split('/').pop, :leaf => false, :id => path, :children => []}
178
+
179
+ tree = bucket.as_tree(:prefix => path)
180
+ tree.children.each do |node|
181
+ if node.leaf?
182
+ #ignore current path that comes as leaf from s3
183
+ next if node.key == path + '/'
184
+
185
+ leaf_hash = {
186
+ :text => node.key.split('/').pop,
187
+ :downloadPath => "/#{node.key}",
188
+ :id => "/#{node.key}",
189
+ :leaf => true
190
+ }
191
+
192
+ if options[:file_asset_holder]
193
+ files = options[:file_asset_holder].files
194
+
195
+ parent_directories = leaf_hash[:id].split('/')
196
+ parent_directories.pop
197
+ parent_directory = parent_directories.join('/')
198
+
199
+ file = files.find { |file| file.directory == parent_directory and file.name == leaf_hash[:text] }
200
+ unless file.nil?
201
+ leaf_hash[:isSecured] = file.is_secured?
202
+ leaf_hash[:roles] = file.roles.collect { |r| r.internal_identifier }
203
+ leaf_hash[:iconCls] = 'icon-document_lock' if leaf_hash[:isSecured]
204
+ leaf_hash[:size] = file.data_file_size
205
+ leaf_hash[:width] = file.width
206
+ leaf_hash[:height] = file.height
207
+ leaf_hash[:url] = file.url
249
208
  end
250
209
  end
251
- parent = nil unless parent[:id] == path
252
- end
253
210
 
254
- parent
211
+ parent[:children] << leaf_hash
212
+ else
213
+ parent[:children] << {
214
+ :iconCls => "icon-content",
215
+ :text => node.prefix.split('/').pop,
216
+ :id => "/#{node.prefix}".chop,
217
+ :leaf => false
218
+ }
219
+ end
255
220
  end
256
221
 
257
222
  parent
258
223
  end
259
224
 
260
- end#S3Manager
261
- end#FileSupport
262
- end#ErpTechSvcs
225
+ end #S3Manager
226
+ end #FileSupport
227
+ end #ErpTechSvcs
@@ -2,7 +2,7 @@ module ErpTechSvcs
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 1
5
- TINY = 5
5
+ TINY = 7
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erp_tech_svcs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.5
4
+ version: 3.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-26 00:00:00.000000000 Z
12
+ date: 2013-08-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erp_base_erp_svcs
@@ -258,29 +258,6 @@ files:
258
258
  - spec/dummy/config/routes.rb
259
259
  - spec/dummy/config/s3.yml
260
260
  - spec/dummy/config.ru
261
- - spec/dummy/db/data_migrations/20130220143304_add_usd_currency.erp_base_erp_svcs.rb
262
- - spec/dummy/db/data_migrations/20130220143305_add_iso_codes.erp_base_erp_svcs.rb
263
- - spec/dummy/db/data_migrations/20130220143306_setup_compass_ae_instance.erp_base_erp_svcs.rb
264
- - spec/dummy/db/data_migrations/20130220143307_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb
265
- - spec/dummy/db/data_migrations/20130220143308_create_capability_scope_types.erp_tech_svcs.rb
266
- - spec/dummy/db/data_migrations/20130220143309_schedule_delete_expired_sessions_job.erp_tech_svcs.rb
267
- - spec/dummy/db/data_migrations/20130220143310_setup_audit_log_types.erp_tech_svcs.rb
268
- - spec/dummy/db/data_migrations/20130220143311_create_group_relationship_and_role_types.erp_tech_svcs.rb
269
- - spec/dummy/db/data_migrations/20130220143312_note_capabilities.erp_tech_svcs.rb
270
- - spec/dummy/db/data_migrations/20130422151256_add_guid_to_instances.erp_base_erp_svcs.rb
271
- - spec/dummy/db/migrate/20130220143259_base_erp_services.erp_base_erp_svcs.rb
272
- - spec/dummy/db/migrate/20130220143260_add_txn_status.erp_base_erp_svcs.rb
273
- - spec/dummy/db/migrate/20130220143261_upgrade_compass_ae_instances.erp_base_erp_svcs.rb
274
- - spec/dummy/db/migrate/20130220143262_base_tech_services.erp_tech_svcs.rb
275
- - spec/dummy/db/migrate/20130220143263_create_has_attribute_tables.erp_tech_svcs.rb
276
- - spec/dummy/db/migrate/20130220143264_create_groups.erp_tech_svcs.rb
277
- - spec/dummy/db/migrate/20130220143265_upgrade_security.erp_tech_svcs.rb
278
- - spec/dummy/db/migrate/20130220143266_upgrade_security2.erp_tech_svcs.rb
279
- - spec/dummy/db/migrate/20130422151250_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb
280
- - spec/dummy/db/migrate/20130422151251_add_long_lat_to_address.erp_base_erp_svcs.rb
281
- - spec/dummy/db/migrate/20130422151252_add_queue_to_delayed_jobs.erp_tech_svcs.rb
282
- - spec/dummy/db/schema.rb
283
- - spec/dummy/db/spec.sqlite3
284
261
  - spec/dummy/move_test_tmp/file_asset_spec_text.txt
285
262
  - spec/dummy/public/404.html
286
263
  - spec/dummy/public/422.html
@@ -301,7 +278,8 @@ files:
301
278
  - spec/models/user_spec.rb
302
279
  - spec/spec_helper.rb
303
280
  homepage: http://development.compassagile.com
304
- licenses: []
281
+ licenses:
282
+ - GPL-3
305
283
  post_install_message:
306
284
  rdoc_options: []
307
285
  require_paths:
@@ -320,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
320
298
  version: '0'
321
299
  requirements: []
322
300
  rubyforge_project:
323
- rubygems_version: 1.8.23
301
+ rubygems_version: 1.8.25
324
302
  signing_key:
325
303
  specification_version: 3
326
304
  summary: This engine is implemented with the premise that services like logging, tracing
@@ -348,29 +326,6 @@ test_files:
348
326
  - spec/dummy/config/routes.rb
349
327
  - spec/dummy/config/s3.yml
350
328
  - spec/dummy/config.ru
351
- - spec/dummy/db/data_migrations/20130220143304_add_usd_currency.erp_base_erp_svcs.rb
352
- - spec/dummy/db/data_migrations/20130220143305_add_iso_codes.erp_base_erp_svcs.rb
353
- - spec/dummy/db/data_migrations/20130220143306_setup_compass_ae_instance.erp_base_erp_svcs.rb
354
- - spec/dummy/db/data_migrations/20130220143307_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb
355
- - spec/dummy/db/data_migrations/20130220143308_create_capability_scope_types.erp_tech_svcs.rb
356
- - spec/dummy/db/data_migrations/20130220143309_schedule_delete_expired_sessions_job.erp_tech_svcs.rb
357
- - spec/dummy/db/data_migrations/20130220143310_setup_audit_log_types.erp_tech_svcs.rb
358
- - spec/dummy/db/data_migrations/20130220143311_create_group_relationship_and_role_types.erp_tech_svcs.rb
359
- - spec/dummy/db/data_migrations/20130220143312_note_capabilities.erp_tech_svcs.rb
360
- - spec/dummy/db/data_migrations/20130422151256_add_guid_to_instances.erp_base_erp_svcs.rb
361
- - spec/dummy/db/migrate/20130220143259_base_erp_services.erp_base_erp_svcs.rb
362
- - spec/dummy/db/migrate/20130220143260_add_txn_status.erp_base_erp_svcs.rb
363
- - spec/dummy/db/migrate/20130220143261_upgrade_compass_ae_instances.erp_base_erp_svcs.rb
364
- - spec/dummy/db/migrate/20130220143262_base_tech_services.erp_tech_svcs.rb
365
- - spec/dummy/db/migrate/20130220143263_create_has_attribute_tables.erp_tech_svcs.rb
366
- - spec/dummy/db/migrate/20130220143264_create_groups.erp_tech_svcs.rb
367
- - spec/dummy/db/migrate/20130220143265_upgrade_security.erp_tech_svcs.rb
368
- - spec/dummy/db/migrate/20130220143266_upgrade_security2.erp_tech_svcs.rb
369
- - spec/dummy/db/migrate/20130422151250_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb
370
- - spec/dummy/db/migrate/20130422151251_add_long_lat_to_address.erp_base_erp_svcs.rb
371
- - spec/dummy/db/migrate/20130422151252_add_queue_to_delayed_jobs.erp_tech_svcs.rb
372
- - spec/dummy/db/schema.rb
373
- - spec/dummy/db/spec.sqlite3
374
329
  - spec/dummy/move_test_tmp/file_asset_spec_text.txt
375
330
  - spec/dummy/public/404.html
376
331
  - spec/dummy/public/422.html