trusty-cms 4.1.2 → 4.1.3

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +25 -25
  4. data/Rakefile +7 -7
  5. data/app/assets/stylesheets/admin/partials/_content.scss +1 -2
  6. data/app/controllers/admin/assets_controller.rb +22 -21
  7. data/app/controllers/admin/configuration_controller.rb +9 -11
  8. data/app/controllers/admin/extensions_controller.rb +3 -3
  9. data/app/controllers/admin/layouts_controller.rb +3 -4
  10. data/app/controllers/admin/page_attachments_controller.rb +5 -5
  11. data/app/controllers/admin/page_fields_controller.rb +3 -4
  12. data/app/controllers/admin/page_parts_controller.rb +4 -5
  13. data/app/controllers/admin/pages_controller.rb +55 -56
  14. data/app/controllers/admin/references_controller.rb +1 -1
  15. data/app/controllers/admin/resource_controller.rb +132 -130
  16. data/app/controllers/admin/sites_controller.rb +4 -4
  17. data/app/controllers/admin/snippets_controller.rb +3 -4
  18. data/app/controllers/admin/users_controller.rb +16 -16
  19. data/app/controllers/application_controller.rb +47 -48
  20. data/app/controllers/site_controller.rb +51 -48
  21. data/app/controllers/social_mailer_controller.rb +13 -16
  22. data/app/helpers/admin/configuration_helper.rb +19 -20
  23. data/app/helpers/admin/layouts_helper.rb +0 -1
  24. data/app/helpers/admin/node_helper.rb +27 -24
  25. data/app/helpers/admin/pages_helper.rb +2 -2
  26. data/app/helpers/admin/preferences_helper.rb +0 -1
  27. data/app/helpers/admin/references_helper.rb +9 -10
  28. data/app/helpers/admin/regions_helper.rb +3 -3
  29. data/app/helpers/application_helper.rb +32 -33
  30. data/app/helpers/rad_social_helper.rb +8 -11
  31. data/app/helpers/scoped_helper.rb +1 -3
  32. data/app/helpers/sites_helper.rb +4 -4
  33. data/app/mailers/devise_mailer.rb +3 -4
  34. data/app/mailers/rad_social_mailer.rb +8 -8
  35. data/app/models/asset.rb +62 -63
  36. data/app/models/asset_type.rb +38 -39
  37. data/app/models/deprecated_tags.rb +3 -4
  38. data/app/models/file_not_found_page.rb +1 -3
  39. data/app/models/haml_filter.rb +1 -1
  40. data/app/models/layout.rb +4 -5
  41. data/app/models/legacy_user.rb +2 -2
  42. data/app/models/menu_renderer.rb +16 -18
  43. data/app/models/page.rb +96 -93
  44. data/app/models/page_attachment.rb +1 -2
  45. data/app/models/page_context.rb +11 -12
  46. data/app/models/page_part.rb +3 -4
  47. data/app/models/rails_page.rb +10 -12
  48. data/app/models/site.rb +22 -21
  49. data/app/models/snippet.rb +6 -8
  50. data/app/models/snippet_finder.rb +3 -3
  51. data/app/models/snippet_tags.rb +4 -4
  52. data/app/models/standard_tags.rb +258 -252
  53. data/app/models/status.rb +8 -8
  54. data/app/models/trusty_cms/config.rb +25 -25
  55. data/app/models/trusty_cms/page_response_cache_director.rb +2 -3
  56. data/app/models/user.rb +15 -14
  57. data/app/models/user_action_observer.rb +3 -3
  58. data/bin/rails +4 -4
  59. data/bin/trusty_cms +3 -5
  60. data/config.ru +1 -1
  61. data/config/application.rb +14 -15
  62. data/config/boot.rb +1 -2
  63. data/config/environment.rb +1 -1
  64. data/config/environments/production.rb +0 -1
  65. data/config/environments/test.rb +1 -2
  66. data/config/initializers/devise.rb +1 -1
  67. data/config/initializers/kraken.rb +2 -2
  68. data/config/initializers/tmp.rb +1 -1
  69. data/config/initializers/trusty_cms_config.rb +48 -48
  70. data/config/routes.rb +6 -6
  71. data/lib/active_record_extensions/active_record_extensions.rb +1 -2
  72. data/lib/annotatable.rb +3 -5
  73. data/lib/configuration_extensions/configuration_extensions.rb +1 -1
  74. data/lib/inheritable_class_attributes.rb +13 -9
  75. data/lib/login_system.rb +73 -73
  76. data/lib/method_observer.rb +13 -12
  77. data/lib/ostruct.rb +7 -10
  78. data/lib/simpleton.rb +0 -4
  79. data/lib/string_extensions/string_extensions.rb +3 -3
  80. data/lib/symbol_extensions/symbol_extensions.rb +1 -1
  81. data/lib/tasks/database.rake +28 -28
  82. data/lib/tasks/extensions.rake +18 -18
  83. data/lib/tasks/framework.rake +68 -68
  84. data/lib/tasks/radiant_config.rake +4 -4
  85. data/lib/tasks/snippets_extension_tasks.rake +11 -11
  86. data/lib/tasks/translate.rake +14 -14
  87. data/lib/tasks/upgrade_to_devise.rake +1 -1
  88. data/lib/translation_support.rb +22 -22
  89. data/lib/trusty_cms.rb +2 -2
  90. data/lib/trusty_cms/admin_ui.rb +19 -16
  91. data/lib/trusty_cms/admin_ui/region_partials.rb +4 -3
  92. data/lib/trusty_cms/admin_ui/region_set.rb +4 -5
  93. data/lib/trusty_cms/available_locales.rb +2 -4
  94. data/lib/trusty_cms/config/definition.rb +11 -8
  95. data/lib/trusty_cms/engine.rb +14 -14
  96. data/lib/trusty_cms/extension.rb +14 -16
  97. data/lib/trusty_cms/extension_loader.rb +6 -6
  98. data/lib/trusty_cms/extension_migrator.rb +42 -41
  99. data/lib/trusty_cms/extension_path.rb +20 -19
  100. data/lib/trusty_cms/initializer.rb +5 -8
  101. data/lib/trusty_cms/pagination/controller.rb +7 -10
  102. data/lib/trusty_cms/pagination/link_renderer.rb +2 -2
  103. data/lib/trusty_cms/resource_responses.rb +3 -3
  104. data/lib/trusty_cms/setup.rb +130 -132
  105. data/lib/trusty_cms/taggable.rb +19 -22
  106. data/lib/trusty_cms/task_support.rb +9 -6
  107. data/public/dispatch.fcgi +1 -1
  108. data/public/dispatch.rb +2 -2
  109. data/script/extension +1 -1
  110. data/script/rails +2 -2
  111. data/trusty_cms.gemspec +23 -23
  112. metadata +32 -32
@@ -1,17 +1,17 @@
1
1
  class Asset < ActiveRecord::Base
2
2
  include Paperclip::Glue
3
3
 
4
- has_many :page_attachments, :dependent => :destroy
5
- has_many :pages, :through => :page_attachments
4
+ has_many :page_attachments, dependent: :destroy
5
+ has_many :pages, through: :page_attachments
6
6
  has_site if respond_to? :has_site
7
7
 
8
- belongs_to :created_by, :class_name => 'User'
9
- belongs_to :updated_by, :class_name => 'User'
8
+ belongs_to :created_by, class_name: 'User'
9
+ belongs_to :updated_by, class_name: 'User'
10
10
 
11
- default_scope {order("created_at DESC")}
11
+ default_scope { order('created_at DESC') }
12
12
 
13
13
  scope :latest, lambda { |limit|
14
- order("created_at DESC").limit(limit)
14
+ order('created_at DESC').limit(limit)
15
15
  }
16
16
 
17
17
  scope :of_types, lambda { |types|
@@ -20,81 +20,81 @@ class Asset < ActiveRecord::Base
20
20
  }
21
21
 
22
22
  scope :matching, lambda { |term|
23
- where(["LOWER(assets.asset_file_name) LIKE (:term) OR LOWER(title) LIKE (:term) OR LOWER(caption) LIKE (:term)", {:term => "%#{term.downcase}%" }])
23
+ where(['LOWER(assets.asset_file_name) LIKE (:term) OR LOWER(title) LIKE (:term) OR LOWER(caption) LIKE (:term)', { term: "%#{term.downcase}%" }])
24
24
  }
25
25
 
26
26
  scope :excepting, lambda { |assets|
27
27
  if assets.any?
28
28
  assets = assets.split(',') if assets.is_a?(String)
29
29
  asset_ids = assets.first.is_a?(Asset) ? assets.map(&:id) : assets
30
- where(["assets.id NOT IN(#{asset_ids.map{ '?' }.join(',')})", *asset_ids])
30
+ where(["assets.id NOT IN(#{asset_ids.map { '?' }.join(',')})", *asset_ids])
31
31
  else
32
32
  {}
33
33
  end
34
34
  }
35
35
 
36
36
  has_attached_file :asset,
37
- :styles => lambda { |attachment|
37
+ styles: lambda { |attachment|
38
38
  AssetType.for(attachment).paperclip_styles
39
39
  },
40
- :processors => lambda { |asset|
40
+ processors: lambda { |asset|
41
41
  asset.paperclip_processors
42
42
  },
43
- :whiny => false,
44
- :storage => TrustyCms.config["paperclip.storage"],
45
- :path => TrustyCms.config["paperclip.path"],
46
- :url => TrustyCms.config["paperclip.url"],
47
- :fog_credentials =>
48
- TrustyCmsClippedExtension::Cloud.credentials,
49
- :fog_directory => TrustyCms.config["paperclip.fog.directory"],
50
- :fog_public => TrustyCms.config["paperclip.fog.public?"] || true,
51
- :fog_host => TrustyCmsClippedExtension::Cloud.host,
52
- :fog_file => {
53
- 'Cache-Control' => 'max-age=31536000'
43
+ whiny: false,
44
+ storage: TrustyCms.config['paperclip.storage'],
45
+ path: TrustyCms.config['paperclip.path'],
46
+ url: TrustyCms.config['paperclip.url'],
47
+ fog_credentials: TrustyCmsClippedExtension::Cloud.credentials,
48
+ fog_directory: TrustyCms.config['paperclip.fog.directory'],
49
+ fog_public: TrustyCms.config['paperclip.fog.public?'] || true,
50
+ fog_host: TrustyCmsClippedExtension::Cloud.host,
51
+ fog_file: {
52
+ 'Cache-Control' => 'max-age=31536000',
54
53
  }
55
54
 
56
- validates_attachment_content_type :asset, :content_type => ["application/zip", "image/jpg", "image/jpeg", "image/png", "image/gif", "application/pdf", "application/javascript", "text/javascript", "text/css"]
55
+ validates_attachment_content_type :asset, content_type: ['application/zip', 'image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/javascript', 'text/javascript', 'text/css']
57
56
 
58
57
  before_save :assign_title
59
58
  before_save :assign_uuid
60
59
 
61
60
  after_post_process :read_dimensions
62
61
 
63
- validates_attachment_presence :asset, :message => "You must choose a file to upload!"
64
- if TrustyCms.config["paperclip.skip_filetype_validation"] != "true" && TrustyCms.config['paperclip.content_types']
65
- validates_attachment_content_type :asset, :content_type => TrustyCms.config["paperclip.content_types"].gsub(' ','').split(',')
62
+ validates_attachment_presence :asset, message: 'You must choose a file to upload!'
63
+ if TrustyCms.config['paperclip.skip_filetype_validation'] != 'true' && TrustyCms.config['paperclip.content_types']
64
+ validates_attachment_content_type :asset, content_type: TrustyCms.config['paperclip.content_types'].gsub(' ', '').split(',')
66
65
  else
67
- validates_attachment_presence :asset, :message => "Your uploaded file must have an extension in its name!"
66
+ validates_attachment_presence :asset, message: 'Your uploaded file must have an extension in its name!'
68
67
  end
69
- validates_attachment_size :asset, :less_than => ( TrustyCms.config["assets.max_asset_size"] || 5 ).to_i.megabytes
68
+ validates_attachment_size :asset, less_than: (TrustyCms.config['assets.max_asset_size'] || 5).to_i.megabytes
70
69
 
71
70
  def asset_type
72
71
  AssetType.for(asset)
73
72
  end
74
- delegate :paperclip_processors, :paperclip_styles, :style_dimensions, :style_format, :to => :asset_type
73
+ delegate :paperclip_processors, :paperclip_styles, :style_dimensions, :style_format, to: :asset_type
75
74
 
76
- def thumbnail(style_name='original')
75
+ def thumbnail(style_name = 'original')
77
76
  return asset.url if style_name.to_sym == :original
78
77
  return asset.url(style_name.to_sym) if has_style?(style_name)
79
- return asset_type.icon(style_name)
78
+
79
+ asset_type.icon(style_name)
80
80
  end
81
81
 
82
- def has_style?(style_name='original')
82
+ def has_style?(style_name = 'original')
83
83
  style_name == 'original' || paperclip_styles.keys.include?(style_name.to_sym)
84
84
  end
85
85
 
86
86
  def basename
87
- File.basename(asset_file_name, ".*") if asset_file_name
87
+ File.basename(asset_file_name, '.*') if asset_file_name
88
88
  end
89
89
 
90
- def extension(style_name='original')
91
- if style_name == 'original'
92
- return original_extension
93
- elsif style = paperclip_styles[style_name.to_sym]
94
- return style.format
95
- else
96
- return original_extension
97
- end
90
+ def extension(style_name = 'original')
91
+ if style_name == 'original'
92
+ original_extension
93
+ elsif style = paperclip_styles[style_name.to_sym]
94
+ style.format
95
+ else
96
+ original_extension
97
+ end
98
98
  end
99
99
 
100
100
  def original_extension
@@ -109,57 +109,57 @@ class Asset < ActiveRecord::Base
109
109
  @original_geometry ||= Paperclip::Geometry.new(original_width, original_height)
110
110
  end
111
111
 
112
- def geometry(style_name='original')
112
+ def geometry(style_name = 'original')
113
113
  raise Paperclip::StyleError, "Requested style #{style_name} is not defined for this asset." unless has_style?(style_name)
114
+
114
115
  @geometry ||= {}
115
116
  begin
116
117
  @geometry[style_name] ||= if style_name.to_s == 'original'
117
- original_geometry
118
- else
119
- style = self.asset.styles[style_name.to_sym]
120
- original_geometry.transformed_by(style.geometry) # this can return dimensions for fully specified style sizes but not for relative sizes when there are no original dimensions
118
+ original_geometry
119
+ else
120
+ style = asset.styles[style_name.to_sym]
121
+ original_geometry.transformed_by(style.geometry) # this can return dimensions for fully specified style sizes but not for relative sizes when there are no original dimensions
121
122
  end
122
123
  rescue Paperclip::TransformationError => e
123
124
  Rails.logger.warn "geometry transformation error: #{e}"
124
- original_geometry # returns a blank geometry if the real geometry cannot be calculated
125
+ original_geometry # returns a blank geometry if the real geometry cannot be calculated
125
126
  end
126
127
  end
127
128
 
128
- def aspect(style_name='original')
129
+ def aspect(style_name = 'original')
129
130
  geometry(style_name).aspect
130
131
  end
131
132
 
132
- def orientation(style_name='original')
133
+ def orientation(style_name = 'original')
133
134
  a = aspect(style_name)
134
- case
135
- when a == nil?
135
+ if a == nil?
136
136
  'unknown'
137
- when a < 1.0
137
+ elsif a < 1.0
138
138
  'vertical'
139
- when a > 1.0
139
+ elsif a > 1.0
140
140
  'horizontal'
141
141
  else
142
142
  'square'
143
143
  end
144
144
  end
145
145
 
146
- def width(style_name='original')
146
+ def width(style_name = 'original')
147
147
  geometry(style_name).width.to_i
148
148
  end
149
149
 
150
- def height(style_name='original')
150
+ def height(style_name = 'original')
151
151
  geometry(style_name).height.to_i
152
152
  end
153
153
 
154
- def square?(style_name='original')
154
+ def square?(style_name = 'original')
155
155
  geometry(style_name).square?
156
156
  end
157
157
 
158
- def vertical?(style_name='original')
158
+ def vertical?(style_name = 'original')
159
159
  geometry(style_name).vertical?
160
160
  end
161
161
 
162
- def horizontal?(style_name='original')
162
+ def horizontal?(style_name = 'original')
163
163
  geometry(style_name).horizontal?
164
164
  end
165
165
 
@@ -167,7 +167,7 @@ class Asset < ActiveRecord::Base
167
167
  original_width? && original_height?
168
168
  end
169
169
 
170
- private
170
+ private
171
171
 
172
172
  # at this point the file queue will not have been written
173
173
  # but the upload should be in place. We read dimensions from the
@@ -186,7 +186,7 @@ private
186
186
  end
187
187
 
188
188
  def assign_title
189
- self.title = self.asset_file_name.downcase.sub(self.original_extension, "").sub(".", "")
189
+ self.title = asset_file_name.downcase.sub(original_extension, '').sub('.', '')
190
190
  end
191
191
 
192
192
  def assign_uuid
@@ -210,7 +210,7 @@ private
210
210
 
211
211
  def with_asset_types(asset_types, &block)
212
212
  w_asset_types = AssetType.conditions_for(asset_types)
213
- with_scope(where(:conditions => ["#{w_asset_types} = ?", block]))
213
+ with_scope(where(conditions: ["#{w_asset_types} = ?", block]))
214
214
  end
215
215
  end
216
216
 
@@ -235,14 +235,13 @@ private
235
235
 
236
236
  # this is a convenience for image-pickers
237
237
  def self.thumbnail_options
238
- asset_sizes = thumbnail_sizes.collect{|k,v|
238
+ asset_sizes = thumbnail_sizes.collect do |k, v|
239
239
  size_id = k
240
240
  size_description = "#{k}: "
241
241
  size_description << (v.is_a?(Array) ? v.join(' as ') : v)
242
242
  [size_description, size_id]
243
- }.sort_by{|pair| pair.last.to_s}
243
+ end.sort_by { |pair| pair.last.to_s }
244
244
  asset_sizes.unshift ['Original (as uploaded)', 'original']
245
245
  asset_sizes
246
246
  end
247
-
248
247
  end
@@ -1,5 +1,4 @@
1
1
  class AssetType
2
-
3
2
  # The Asset Type encapsulates a type of attachment.
4
3
  # Conventionally this would a sensible category like 'image' or 'video'
5
4
  # that should be processed and presented in a particular way.
@@ -34,10 +33,10 @@ class AssetType
34
33
  Asset.send :define_method, "#{name}?".intern do this.mime_types.include?(asset_content_type) end
35
34
  Asset.send :define_class_method, "#{name}_condition".intern do this.condition; end
36
35
  Asset.send :define_class_method, "not_#{name}_condition".intern do this.non_condition; end
37
- Asset.send :scope, plural.to_sym, -> {where(:conditions => condition)}
38
- Asset.send :scope, "not_#{plural}".to_sym, -> {where(:conditions => non_condition)}
36
+ Asset.send :scope, plural.to_sym, -> { where(conditions: condition) }
37
+ Asset.send :scope, "not_#{plural}".to_sym, -> { where(conditions: non_condition) }
39
38
 
40
- self.define_radius_tags
39
+ define_radius_tags
41
40
  @@types.push self
42
41
  @@type_lookup[@name] = self
43
42
  end
@@ -46,21 +45,21 @@ class AssetType
46
45
  name.to_s.pluralize
47
46
  end
48
47
 
49
- def icon(style_name='icon')
50
- if File.exist?(Rails.root + "public/images/admin/assets/#{icon_name}_#{style_name.to_s}.png")
51
- return "/assets/admin/#{icon_name}_#{style_name.to_s}.png"
48
+ def icon(style_name = 'icon')
49
+ if File.exist?(Rails.root + "public/images/admin/assets/#{icon_name}_#{style_name}.png")
50
+ "/assets/admin/#{icon_name}_#{style_name}.png"
52
51
  else
53
- return "/assets/admin/#{icon_name}_icon.png"
52
+ "/assets/admin/#{icon_name}_icon.png"
54
53
  end
55
54
  end
56
55
 
57
- def icon_path(style_name='icon')
56
+ def icon_path(style_name = 'icon')
58
57
  Rails.root + "public#{icon(style_name)}"
59
58
  end
60
59
 
61
60
  def condition
62
61
  if @mimes.any?
63
- ["asset_content_type IN (#{@mimes.map{'?'}.join(',')})", *@mimes]
62
+ ["asset_content_type IN (#{@mimes.map { '?' }.join(',')})", *@mimes]
64
63
  else
65
64
  self.class.other_condition
66
65
  end
@@ -72,7 +71,7 @@ class AssetType
72
71
 
73
72
  def non_condition
74
73
  if @mimes.any?
75
- ["NOT asset_content_type IN (#{@mimes.map{'?'}.join(',')})", *@mimes]
74
+ ["NOT asset_content_type IN (#{@mimes.map { '?' }.join(',')})", *@mimes]
76
75
  else
77
76
  self.class.non_other_condition
78
77
  end
@@ -98,23 +97,23 @@ class AssetType
98
97
  def paperclip_styles
99
98
  # Styles are not relevant if processors are not defined.
100
99
  @paperclip_styles ||= if paperclip_processors.any?
101
- normalize_style_rules(configured_styles.merge(styles))
102
- else
103
- {}
100
+ normalize_style_rules(configured_styles.merge(styles))
101
+ else
102
+ {}
104
103
  end
105
104
  @paperclip_styles
106
105
  end
107
106
 
108
107
  # Takes a motley collection of differently-defined styles and renders them into the standard hash-of-hashes format.
109
108
  # Solitary strings are assumed to be #
110
- def normalize_style_rules(styles={})
109
+ def normalize_style_rules(styles = {})
111
110
  styles.each_pair do |name, rule|
112
111
  unless rule.is_a? Hash
113
112
  if rule =~ /\=/
114
- parameters = rule.split(',').collect{ |parameter| parameter.split('=') } # array of pairs
115
- rule = Hash[parameters].symbolize_keys # into hash of :first => last
113
+ parameters = rule.split(',').collect { |parameter| parameter.split('=') } # array of pairs
114
+ rule = Hash[parameters].symbolize_keys # into hash of :first => last
116
115
  else
117
- rule = {:geometry => rule} # simplest case: name:geom|name:geom
116
+ rule = { geometry: rule } # simplest case: name:geom|name:geom
118
117
  end
119
118
  end
120
119
  rule[:geometry] ||= rule.delete(:size)
@@ -122,10 +121,10 @@ class AssetType
122
121
  end
123
122
  styles
124
123
  end
125
-
124
+
126
125
  def standard_styles
127
126
  {
128
- :thumbnail => { :geometry => '100x100#', :format => :png }
127
+ thumbnail: { geometry: '100x100#', format: :png },
129
128
  }
130
129
  end
131
130
 
@@ -140,17 +139,17 @@ class AssetType
140
139
  #
141
140
  def configured_styles
142
141
  @configured_styles ||= if style_definitions = TrustyCms.config["assets.thumbnails.#{name}"]
143
- style_definitions.split('|').each_with_object({}) do |definition, styles|
144
- name, rule = definition.split(':')
145
- styles[name.strip.to_sym] = rule.to_s.strip
146
- end
147
- else
148
- {}
142
+ style_definitions.split('|').each_with_object({}) do |definition, styles|
143
+ name, rule = definition.split(':')
144
+ styles[name.strip.to_sym] = rule.to_s.strip
145
+ end
146
+ else
147
+ {}
149
148
  end
150
149
  end
151
150
 
152
151
  def legacy_styles
153
- TrustyCms::config["assets.additional_thumbnails"].to_s.gsub(' ','').split(',').collect{|s| s.split('=')}.inject({}) {|ha, (k, v)| ha[k.to_sym] = v; ha}
152
+ TrustyCms::config['assets.additional_thumbnails'].to_s.gsub(' ', '').split(',').collect { |s| s.split('=') }.inject({}) { |ha, (k, v)| ha[k.to_sym] = v; ha }
154
153
  end
155
154
 
156
155
  def style_dimensions(style_name)
@@ -160,21 +159,21 @@ class AssetType
160
159
  end
161
160
 
162
161
  def define_radius_tags
163
- type = self.name
164
- Page.class_eval {
162
+ type = name
163
+ Page.class_eval do
165
164
  tag "asset:if_#{type}" do |tag|
166
165
  tag.expand if find_asset(tag, tag.attr.dup).send("#{type}?".to_sym)
167
166
  end
168
167
  tag "asset:unless_#{type}" do |tag|
169
168
  tag.expand unless find_asset(tag, tag.attr.dup).send("#{type}?".to_sym)
170
169
  end
171
- }
170
+ end
172
171
  end
173
172
 
174
173
  # class methods
175
174
 
176
175
  def self.for(attachment)
177
- extension = File.extname(attachment.original_filename).sub(/^\.+/, "")
176
+ extension = File.extname(attachment.original_filename).sub(/^\.+/, '')
178
177
  from_extension(extension) || from_mimetype(attachment.instance_read(:content_type)) || catchall
179
178
  end
180
179
 
@@ -187,20 +186,21 @@ class AssetType
187
186
  end
188
187
 
189
188
  def self.catchall
190
- @@default_type ||= self.find(:other)
189
+ @@default_type ||= find(:other)
191
190
  end
192
191
 
193
192
  def self.known?(name)
194
- !self.find(name).nil?
193
+ !find(name).nil?
195
194
  end
196
195
 
197
196
  def self.slice(*types)
198
- @@type_lookup.slice(*types.map(&:to_sym)).values if types # Hash#slice is provided by will_paginate
197
+ @@type_lookup.slice(*types.map(&:to_sym)).values if types # Hash#slice is provided by will_paginate
199
198
  end
200
199
 
201
200
  def self.find(type)
202
201
  @@type_lookup[type] if type
203
202
  end
203
+
204
204
  def self.[](type)
205
205
  find(type)
206
206
  end
@@ -218,19 +218,18 @@ class AssetType
218
218
  end
219
219
 
220
220
  def self.mime_types_for(*names)
221
- names.collect{ |name| find(name).mime_types }.flatten
221
+ names.collect { |name| find(name).mime_types }.flatten
222
222
  end
223
223
 
224
224
  def self.conditions_for(*names)
225
- names.collect{ |name| self.find(name).sanitized_condition }.join(' OR ')
225
+ names.collect { |name| find(name).sanitized_condition }.join(' OR ')
226
226
  end
227
227
 
228
228
  def self.non_other_condition
229
- ["asset_content_type IN (#{known_mimetypes.map{'?'}.join(',')})", *known_mimetypes]
229
+ ["asset_content_type IN (#{known_mimetypes.map { '?' }.join(',')})", *known_mimetypes]
230
230
  end
231
231
 
232
232
  def self.other_condition
233
- ["NOT asset_content_type IN (#{known_mimetypes.map{'?'}.join(',')})", *known_mimetypes]
233
+ ["NOT asset_content_type IN (#{known_mimetypes.map { '?' }.join(',')})", *known_mimetypes]
234
234
  end
235
-
236
235
  end