proforma-html-renderer 1.0.0.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +8 -0
  3. data/.gitignore +5 -0
  4. data/.rubocop.yml +11 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +20 -0
  7. data/CHANGELOG.md +3 -0
  8. data/Gemfile +5 -0
  9. data/Gemfile.lock +111 -0
  10. data/Guardfile +16 -0
  11. data/LICENSE +7 -0
  12. data/README.md +141 -0
  13. data/Rakefile +8 -0
  14. data/bin/console +11 -0
  15. data/bin/render +34 -0
  16. data/bin/snapshot +23 -0
  17. data/lib/proforma/html_renderer/object_writer.rb +42 -0
  18. data/lib/proforma/html_renderer/proforma_writer.rb +51 -0
  19. data/lib/proforma/html_renderer/version.rb +14 -0
  20. data/lib/proforma/html_renderer/writer.rb +77 -0
  21. data/lib/proforma/html_renderer.rb +47 -0
  22. data/proforma-html-renderer.gemspec +34 -0
  23. data/spec/fixtures/aloha.txt.erb +1 -0
  24. data/spec/fixtures/snapshot/config.yml +103 -0
  25. data/spec/fixtures/snapshot/images/logo.png +0 -0
  26. data/spec/fixtures/snapshot/output/0.User List.html +1936 -0
  27. data/spec/proforma/html_renderer/object_writer_spec.rb +40 -0
  28. data/spec/proforma/html_renderer/proforma_writer_spec.rb +19 -0
  29. data/spec/proforma/html_renderer/writer_spec.rb +49 -0
  30. data/spec/proforma/html_renderer_spec.rb +33 -0
  31. data/spec/rendering_helper.rb +98 -0
  32. data/spec/spec_helper.rb +25 -0
  33. data/templates/banner.html.erb +33 -0
  34. data/templates/header.html.erb +3 -0
  35. data/templates/pane.html.erb +36 -0
  36. data/templates/prototype.html.erb +73 -0
  37. data/templates/separator.html.erb +1 -0
  38. data/templates/spacer.html.erb +1 -0
  39. data/templates/table.html.erb +42 -0
  40. data/templates/text.html.erb +3 -0
  41. metadata +222 -0
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './lib/proforma/html_renderer/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'proforma-html-renderer'
7
+ s.version = Proforma::HtmlRenderer::VERSION
8
+ s.summary = 'Proforma renderer plugin for generating HTML.'
9
+
10
+ s.description = <<-DESCRIPTION
11
+ Proforma is a virtual document object model. This library allows you to output HTML for a virtual Proforma document.
12
+ DESCRIPTION
13
+
14
+ s.authors = ['Matthew Ruggio']
15
+ s.email = ['mruggio@bluemarblepayroll.com']
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
+ s.homepage = 'https://github.com/bluemarblepayroll/proforma-html-renderer'
20
+ s.license = 'MIT'
21
+
22
+ s.required_ruby_version = '>= 2.3.8'
23
+
24
+ s.add_dependency('proforma', '~>1')
25
+
26
+ s.add_development_dependency('guard-rspec', '~>4.7')
27
+ s.add_development_dependency('pry', '~>0')
28
+ s.add_development_dependency('pry-byebug', '~> 3')
29
+ s.add_development_dependency('rake', '~> 10.0')
30
+ s.add_development_dependency('rspec', '~> 3.8')
31
+ s.add_development_dependency('rubocop', '~>0.63.1')
32
+ s.add_development_dependency('simplecov', '~>0.16.1')
33
+ s.add_development_dependency('simplecov-console', '~>0.4.2')
34
+ end
@@ -0,0 +1 @@
1
+ Aloha, <%= full_name %>!
@@ -0,0 +1,103 @@
1
+ data:
2
+ users:
3
+ - id: 1
4
+ first: Will
5
+ last: Smith
6
+ username: will_smith
7
+ login_count: 9219
8
+ phone_numbers:
9
+ - type: cell
10
+ number: 555-444-3333
11
+ - type: fax
12
+ number: 333-444-2222
13
+ - id: 2
14
+ first: Martin
15
+ last: Lawrence
16
+ username: mlaw10
17
+ login_count: 8077
18
+ phone_numbers:
19
+ - type: home
20
+ number: 999-888-7777
21
+ - id: 3
22
+ first: Will
23
+ last: Ferrell
24
+ username: will.ferrell
25
+ login_count: 190890
26
+ phone_numbers:
27
+
28
+ template:
29
+ title: User List
30
+ children:
31
+ - type: Banner
32
+ details: "555 N. Michigan Ave.\nChicago, IL 62626\n555-555-5555 ext. 55555"
33
+ image: logo
34
+ image_width: 60
35
+ image_height: 48
36
+ title: Some Random System
37
+ - type: Spacer
38
+ - type: Header
39
+ value: User List
40
+ - type: Separator
41
+ - type: Text
42
+ value: The following is a list of users
43
+ - type: Spacer
44
+ - type: DataTable
45
+ property: users
46
+ aggregators:
47
+ - property: login_count
48
+ function: sum
49
+ name: login_count_sum
50
+ - property: login_count
51
+ function: ave
52
+ name: login_count_ave
53
+ columns:
54
+ - header: ID Number
55
+ body: $id
56
+ footer: Login Count Ave.
57
+ width: 20
58
+ - header: First Name
59
+ body: $first
60
+ footer: $login_count_ave
61
+ width: 20
62
+ - header: Last Name
63
+ body: $last
64
+ width: 20
65
+ - header: Username
66
+ body: $username
67
+ footer: Login Count Sum
68
+ width: 20
69
+ - header: Login Count
70
+ footer: $login_count_sum
71
+ body: $login_count
72
+ width: 20
73
+ - type: Grouping
74
+ property: users
75
+ children:
76
+ - type: Spacer
77
+ - type: Grouping
78
+ children:
79
+ - type: Header
80
+ value: 'User Details'
81
+ - type: Separator
82
+ - type: Pane
83
+ columns:
84
+ - label_width: 25.0
85
+ lines:
86
+ - label: ID Number
87
+ value: $id
88
+ - label: First Name
89
+ value: $first
90
+ - label: Last Name
91
+ value: $last
92
+ - type: Spacer
93
+ - type: Header
94
+ value: Phone Numbers
95
+ - type: DataTable
96
+ property: phone_numbers
97
+ empty_message: No phone numbers.
98
+ columns:
99
+ - header: Type
100
+ body: $type
101
+ - header: Number
102
+ body: $number
103
+ - type: Spacer