Class: TwitterCldr::Resources::Requirements::CldrRequirement

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter_cldr/resources/requirements/cldr_requirement.rb

Constant Summary collapse

CLDR_URL =
"https://unicode.org/Public/cldr/%{version}/core.zip"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ CldrRequirement

Returns a new instance of CldrRequirement.



21
22
23
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 21

def initialize(version)
  @version = version
end

Instance Attribute Details

#versionObject (readonly)

Returns the value of attribute version.



19
20
21
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 19

def version
  @version
end

Instance Method Details

#alt?(node) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 53

def alt?(node)
  !node.attribute('alt').nil?
end

#common_pathObject



40
41
42
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 40

def common_path
  File.join(source_path, 'common')
end

#draft?(node) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 57

def draft?(node)
  draft = node.attribute('draft')
  draft && (
    draft.value == 'unconfirmed' || draft.value == 'provisional'
  )
end

#merge_each_ancestor(locale, merge_root: true) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 44

def merge_each_ancestor(locale, merge_root: true)
  locales = locale_chain(locale)
  locales << :root if merge_root

  locales.inject({}) do |result, ancestor_locale|
    deep_merge(yield(ancestor_locale), result)
  end
end

#prepareObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 25

def prepare
  # download and unzip if source directory doesn't exist
  unless File.directory?(source_path)
    STDOUT.write("Downloading cldr v#{version}... ")
    download
    puts 'done'
  end

  puts "Using cldr v#{version} from #{source_path}"
end

#source_pathObject



36
37
38
# File 'lib/twitter_cldr/resources/requirements/cldr_requirement.rb', line 36

def source_path
  @source_path ||= File.join(TwitterCldr::VENDOR_DIR, "cldr_v#{version}")
end