Sha256: 3eb73ae92455887ae7e90ab91dd2e7aa2d0008721b32dce6e0174d8a80b72aff

Contents?: true

Size: 797 Bytes

Versions: 7

Compression:

Stored size: 797 Bytes

Contents

module CiviCrm
  class OptionValue < BaseResource
    entity :option_value

    @@_option_value_cache = {}

    def self.[](group, name, cache: true, create: Rails.env.development?)
      cache_key = [group, name]

      if cache && @@_option_value_cache.key?(cache_key)
        return @@_option_value_cache[cache_key]
      end

      option = find_by(
        "name" => name,
        "option_group_id.title" => group
      )

      if !option && create
        group = OptionGroup.find_by!(title: group)
        option = create(option_group_id: group.id, name: name)
      end

      if option
        @@_option_value_cache[cache_key] = option.value if cache
        return option.value
      end

      raise Errors::NotFound.new(
        "#{group} with name=#{name}"
      )
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
civicrm-1.3.7 lib/civicrm/resources/option_value.rb
civicrm-1.3.6 lib/civicrm/resources/option_value.rb
civicrm-1.3.5 lib/civicrm/resources/option_value.rb
civicrm-1.3.4 lib/civicrm/resources/option_value.rb
civicrm-1.3.3 lib/civicrm/resources/option_value.rb
civicrm-1.3.2 lib/civicrm/resources/option_value.rb
civicrm-1.3.1 lib/civicrm/resources/option_value.rb