Class: BundleBase

Inherits:
ModelBase show all
Includes:
FileUploaderHelpersLocal, FileUploaderHelpersS3, Mongoid::Document, Mongoid::Timestamps, MongoidIdAlias
Defined in:
lib/mrpin/core/bundles/bundle_base.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from MongoidIdAlias

#id

Methods inherited from ModelBase

admin_group, #clone_model, configure_admin_show, #create_info, #create_info_with_check, filters_for_admin_list, need_show_for_admin_user?, sort_by_for_admin_list

Methods included from AMFSerializable

#encode_amf

Constructor Details

#initialize(options = nil) ⇒ BundleBase

Returns a new instance of BundleBase.



110
111
112
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 110

def initialize(options = nil)
  super
end

Class Method Details

.configure_admin_edit(section, field_name) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 33

def self.configure_admin_edit(section, field_name)

  case field_name

    when :build_type
      section.configure field_name, :enum do
        enum(EBuildType.values_list)
      end
    when :version
      section.configure field_name do
        read_only true
      end
    when :url
      section.configure field_name do
        read_only true
        help 'Required. Please upload file'
      end

    else
      super(section, field_name)
  end
end

.configure_admin_list(section, field_name) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 21

def self.configure_admin_list(section, field_name)
  case field_name
    when :uploader_bundle, :_id, :url, :created_at
      section.configure field_name do
        visible false
      end
    else
      super(section, field_name)
  end
end

.init_scopesObject



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 169

def self.init_scopes
  bundles = self.only(:build_type, :name).to_a

  names_list = []

  bundles.each do |bundle|
    name = bundle.name.underscore.split('_').first

    names_list << name
  end

  names_list.uniq!

  EBuildType.values_list.each do |build_type|
    names_list.each do |name|
      scope_name = "#{build_type}_#{name}"

      criteria =
          {
              build_type: build_type,
              name:       Regexp.new("^#{name}_")
          }

      add_scope(scope_name, criteria)
    end
  end
end

Instance Method Details

#callback_after_saveObject



137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 137

def callback_after_save
  return unless errors.empty?

  return unless self.changed?

  return unless Rails.env.development?

  manager_bundles = AppInfo.instance.managers_bundles_map[self.build_type]

  manager_bundles.invalidate_cache
  manager_bundles.generate_client_json
end

#update_versionObject



128
129
130
131
132
133
134
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 128

def update_version
  return unless errors.empty?

  return unless self.changed?

  self.version += 1
end