fontist 0.3.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macosx.yml +1 -1
  3. data/.github/workflows/ubuntu.yml +1 -1
  4. data/.gitignore +4 -2
  5. data/README.md +91 -5
  6. data/lib/fontist.rb +26 -12
  7. data/lib/fontist/errors.rb +3 -1
  8. data/lib/fontist/font.rb +78 -0
  9. data/lib/fontist/font_formula.rb +123 -0
  10. data/lib/fontist/formula.rb +90 -0
  11. data/lib/fontist/formulas.rb +10 -3
  12. data/lib/fontist/formulas/andale_font.rb +80 -0
  13. data/lib/fontist/formulas/arial_black_font.rb +79 -0
  14. data/lib/fontist/formulas/cleartype_fonts.rb +227 -0
  15. data/lib/fontist/formulas/comic_font.rb +78 -0
  16. data/lib/fontist/formulas/courier_font.rb +81 -0
  17. data/lib/fontist/formulas/euphemia_font.rb +85 -0
  18. data/lib/fontist/formulas/georgia_font.rb +80 -0
  19. data/lib/fontist/formulas/impact_font.rb +78 -0
  20. data/lib/fontist/formulas/montserrat_font.rb +132 -0
  21. data/lib/fontist/formulas/ms_truetype_fonts.rb +125 -0
  22. data/lib/fontist/formulas/open_sans_fonts.rb +263 -0
  23. data/lib/fontist/formulas/overpass_font.rb +73 -0
  24. data/lib/fontist/formulas/source_fonts.rb +109 -0
  25. data/lib/fontist/formulas/stix_fonts.rb +108 -0
  26. data/lib/fontist/formulas/tahoma_font.rb +147 -0
  27. data/lib/fontist/formulas/webding_font.rb +78 -0
  28. data/lib/fontist/registry.rb +42 -0
  29. data/lib/fontist/{data/source.yml → system.yml} +5 -6
  30. data/lib/fontist/system_font.rb +27 -11
  31. data/lib/fontist/utils.rb +9 -0
  32. data/lib/fontist/utils/downloader.rb +75 -0
  33. data/lib/fontist/utils/dsl.rb +77 -0
  34. data/lib/fontist/utils/exe_extractor.rb +72 -0
  35. data/lib/fontist/utils/zip_extractor.rb +38 -0
  36. data/lib/fontist/version.rb +1 -1
  37. data/spec/fontist/font_formula_spec.rb +67 -0
  38. data/spec/fontist/font_spec.rb +87 -0
  39. data/spec/fontist/formula_spec.rb +67 -0
  40. data/spec/fontist/formulas/andale_font_spec.rb +29 -0
  41. data/spec/fontist/formulas/arial_black_font_spec.rb +29 -0
  42. data/spec/fontist/formulas/cleartype_fonts_spec.rb +38 -0
  43. data/spec/fontist/formulas/comic_font_spec.rb +29 -0
  44. data/spec/fontist/formulas/courier_font_spec.rb +29 -0
  45. data/spec/fontist/formulas/euphemia_font_spec.rb +29 -0
  46. data/spec/fontist/formulas/georgia_font_spec.rb +29 -0
  47. data/spec/fontist/formulas/impact_font_spec.rb +29 -0
  48. data/spec/fontist/formulas/montserrat_font_spec.rb +29 -0
  49. data/spec/fontist/formulas/ms_truetype_fonts_spec.rb +29 -0
  50. data/spec/fontist/formulas/open_sans_fonts_spec.rb +29 -0
  51. data/spec/fontist/formulas/overpass_font_spec.rb +29 -0
  52. data/spec/fontist/formulas/source_fonts_spec.rb +31 -0
  53. data/spec/fontist/formulas/stix_fonts_spec.rb +29 -0
  54. data/spec/fontist/formulas/tahoma_font_spec.rb +29 -0
  55. data/spec/fontist/formulas/webding_font_spec.rb +29 -0
  56. data/spec/fontist/registry_spec.rb +47 -0
  57. data/spec/fontist/system_font_spec.rb +17 -1
  58. data/spec/fontist/{downloader_spec.rb → utils/downloader_spec.rb} +6 -5
  59. data/spec/spec_helper.rb +4 -2
  60. data/spec/support/fontist_helper.rb +4 -2
  61. metadata +50 -20
  62. data/lib/fontist/data/formulas/ms_vista.yml +0 -39
  63. data/lib/fontist/data/formulas/source_font.yml +0 -51
  64. data/lib/fontist/downloader.rb +0 -70
  65. data/lib/fontist/finder.rb +0 -47
  66. data/lib/fontist/formulas/base.rb +0 -25
  67. data/lib/fontist/formulas/ms_vista.rb +0 -74
  68. data/lib/fontist/formulas/source_font.rb +0 -48
  69. data/lib/fontist/installer.rb +0 -47
  70. data/lib/fontist/source.rb +0 -58
  71. data/spec/fontist/finder_spec.rb +0 -41
  72. data/spec/fontist/formulas/ms_vista_spec.rb +0 -27
  73. data/spec/fontist/formulas/source_font_spec.rb +0 -18
  74. data/spec/fontist/installer_spec.rb +0 -48
  75. data/spec/fontist/source_spec.rb +0 -24
@@ -1,27 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Fontist::Formulas::MsVista do
4
- describe ".fetch_font" do
5
- context "with valid licence", file_download: true do
6
- it "downloads and returns font paths" do
7
- name = "CANDARAI.TTF"
8
- fonts = Fontist::Formulas::MsVista.fetch_font(
9
- name, confirmation: "yes", force_download: true
10
- )
11
-
12
- expect(fonts.count).to eq(1)
13
- expect(fonts.first).to include("CANDARAI.TTF")
14
- end
15
- end
16
-
17
- context "with invalid licence agreement" do
18
- it "raise an licensing error" do
19
- font_name = "CANDARAI.TTF"
20
-
21
- expect {
22
- Fontist::Formulas::MsVista.fetch_font(font_name, confirmation: "no")
23
- }.to raise_error(Fontist::Errors::LicensingError)
24
- end
25
- end
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Fontist::Formulas::SourceFont do
4
- describe ".fetch_font" do
5
- it "downloads and extract out fonts", file_download: true do
6
- name = "SourceCodePro"
7
- stub_fontist_path_to_assets
8
-
9
- fonts = Fontist::Formulas::SourceFont.fetch_font(
10
- name, confirmation: "yes", force_download: true,
11
- )
12
-
13
- expect(fonts).not_to be_empty
14
- expect(fonts.first).to include(name)
15
- expect(Fontist::Finder.find(name)).not_to be_empty
16
- end
17
- end
18
- end
@@ -1,48 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Fontist::Installer do
4
- describe ".download" do
5
- context "with already downloaded fonts", skip_in_windows: true do
6
- it "returns the font path" do
7
- name = "CALIBRI.TTF"
8
- Fontist::Formulas::MsVista.fetch_font(name, confirmation: "yes")
9
-
10
- allow(Fontist::Formulas::MsVista).to receive(:fetch_font).and_return(nil)
11
- paths = Fontist::Installer.download(name, confirmation: "yes")
12
-
13
- expect(paths.first).to include("fonts/#{name}")
14
- end
15
- end
16
-
17
- context "with missing but downloadable fonts" do
18
- it "downloads and install the fonts", skip_in_windows: true do
19
- name = "CALIBRI.TTF"
20
- confirmation = "yes"
21
- allow(Fontist::SystemFont).to receive(:find).and_return(nil)
22
-
23
- paths = Fontist::Installer.download(name, confirmation: confirmation)
24
-
25
- expect(paths.first).to include("fonts/#{name}")
26
- end
27
-
28
- it "do not download if user didn't agree" do
29
- name = "CALIBRI.TTF"
30
- allow(Fontist::SystemFont).to receive(:find).and_return(nil)
31
-
32
- expect {
33
- Fontist::Installer.download(name, confirmation: "no")
34
- }.to raise_error(Fontist::Errors::LicensingError)
35
- end
36
- end
37
-
38
- context "with unsupported fonts" do
39
- it "raise an unsupported error" do
40
- name = "InvalidFont.ttf"
41
-
42
- expect {
43
- Fontist::Installer.download(name, confirmation: "yes")
44
- }.to raise_error(Fontist::Errors::NonSupportedFontError)
45
- end
46
- end
47
- end
48
- end
@@ -1,24 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Fontist::Source do
4
- describe ".all" do
5
- it "returns all of the dataset" do
6
- sources = Fontist::Source.all
7
-
8
- expect(sources.system.linux.paths).not_to be_nil
9
- expect(sources.system.macosx.paths).not_to be_nil
10
- expect(sources.system.windows.paths).not_to be_nil
11
- expect(sources.remote.formulas.first).to include("./formulas")
12
- end
13
- end
14
-
15
- describe ".formulas" do
16
- it "returns all available dataset" do
17
- formulas = Fontist::Source.formulas
18
-
19
- expect(formulas.msvista.license).not_to be_nil
20
- expect(formulas.msvista.file_size).to eq("62914560")
21
- expect(formulas.msvista.fonts).to include("CALIBRI.TTF")
22
- end
23
- end
24
- end