Class: BundleBase

Inherits:
ModelBase show all
Includes:
Mongoid::Document, Mongoid::Timestamps, MongoidIdAlias, UploaderHelperLocal
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, sort_by_for_admin_list

Methods included from AMFSerializable

#encode_amf

Constructor Details

#initialize(options = nil) ⇒ BundleBase

Returns a new instance of BundleBase.



92
93
94
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 92

def initialize(options = nil)
  super
end

Class Method Details

.configure_admin_edit(section, field_name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 27

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



15
16
17
18
19
20
21
22
23
24
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 15

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

.init_scopesObject



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/mrpin/core/bundles/bundle_base.rb', line 141

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

  names_list = []

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

    name = name.split('/').first

    names_list << name
  end

  names_list.uniq!

  names_list.each do |name|
    scope_name = "#{name}"

    criteria = {name: /^#{name}.*/i}

    add_scope(scope_name, criteria)
  end

  EBuildType.values_list.each do |build_type|
    criteria = {build_type: build_type, }
    add_scope(build_type, criteria)
  end
end

Instance Method Details

#update_versionObject



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

def update_version
  return unless errors.empty?

  return unless self.changed?

  self.version += 1
end