glimmer-libui-cc-graphs_and_charts 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c79188349650bf2223b5885ceaff00675197d6f833af8bffbfc15f1dbaaa2a5
4
- data.tar.gz: a9d9f4732bdf4b81e20721cdfda4ffab550e6bd82785884db0ccf8f2f43a6d99
3
+ metadata.gz: dce47797358894afe69a91ad5a1187b2f989e75674cab2d421ce5e071df844bb
4
+ data.tar.gz: 25204f836b424b69d4c6209afc6365c31a3b400cb388cbe8bdf482a9023126f6
5
5
  SHA512:
6
- metadata.gz: b5db2acfba0997e784840523b3e09154daea02fc78f1eb3726a3fbb50b876fc86aa483eea4f4af44c4eda804087d9c651d9081b81faa362b3fca252c76a8cb97
7
- data.tar.gz: f6eba9bdc99d3bd30a17e53cbc81345bddb67c2573a6e51f26af546d56eb5d740e066a582cbaacec31e9f1ef00432f620f50dde58b9c6b83e9994ecf41e9fdcb
6
+ metadata.gz: 352e7f457e6b6c3d3889b58246bba79ea65597dc210a02b1ab472c0f26dddb6776324abcced746f7b7f8f685d3f81732779041bc395a95c6a1a2a51be5cd2857
7
+ data.tar.gz: 9f4080bf60e38a8f5914769717f492d32638b309504486ca7caed6e2263bdb222903693027206fbf9b7ad97f4e9f69b1d1aa9fbb1be2813f69151e99323b1067
data/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Change Log
2
+
3
+ ## 0.1.1
4
+
5
+ - Ensure that `line_graph` max `y_value` is taken into account in visible points only (excluding points outside the visible area)
6
+ - Support ability to load entire `'glimmer-libui-cc-graphs_and_charts'` library instead of individual graphs/charts if preferred
7
+ - New `examples/graphs_and_charts/basic_line_graph.rb`
8
+
9
+ ## 0.1.0
10
+
11
+ - Initial implementation of `line_graph` custom control
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Graphs and Charts 0.1.0
1
+ # Graphs and Charts 0.1.1
2
2
  ## [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui) Custom Controls
3
- [![Gem Version](https://badge.fury.io/rb/glimmer-libui.svg)](http://badge.fury.io/rb/glimmer-dsl-libui)
3
+ [![Gem Version](https://badge.fury.io/rb/glimmer-libui-cc-graphs_and_charts.svg)](http://badge.fury.io/rb/glimmer-libui-cc-graphs_and_charts)
4
4
  [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
5
 
6
6
  Graphs and Charts (Custom Controls) for [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
@@ -12,7 +12,7 @@ Graphs and Charts (Custom Controls) for [Glimmer DSL for LibUI](https://github.c
12
12
  Add this line to Bundler `Gemfile`:
13
13
 
14
14
  ```ruby
15
- gem 'glimmer-libui-cc-graphs_and_charts', '~> 0.1.0'
15
+ gem 'glimmer-libui-cc-graphs_and_charts', '~> 0.1.1'
16
16
  ```
17
17
 
18
18
  Run:
@@ -23,43 +23,103 @@ bundle
23
23
 
24
24
  ## Usage
25
25
 
26
+ It is preferred that you only load the graphs/charts that you need to use as per the instructions in the sub-sections below to conserve memory and startup time.
27
+
28
+ However, if you prefer to load all graphs and charts, add this line to your Ruby file:
29
+
30
+ ```ruby
31
+ require 'glimmer-libui-cc-graphs_and_charts'
32
+ ```
33
+
26
34
  ### Line Graph
27
35
 
28
- Add this line to your Ruby file:
36
+ To load the `line_graph` custom control, add this line to your Ruby file:
29
37
 
30
38
  ```ruby
31
39
  require 'glimmer/view/line_graph'
32
40
  ```
33
41
 
34
- Example Glimmer GUI DSL code that can be nested under `window` or some container like `vertical_box`:
42
+ This makes the `line_graph` [Glimmer DSL for LibUI Custom Control](https://github.com/AndyObtiva/glimmer-dsl-libui#custom-components) available in the Glimmer GUI DSL.
43
+ You can then nest `line_graph` under `window` or some container like `vertical_box`. By the way, `line_graph` is implemented on top of the [`area` Glimmer DSL for LibUI control](https://github.com/AndyObtiva/glimmer-dsl-libui#area-api).
35
44
 
36
45
  ```ruby
37
46
  line_graph(
38
47
  width: 900,
39
48
  height: 300,
49
+ graph_point_distance: :width_divided_by_point_count,
40
50
  lines: [
41
51
  {
42
- name: 'Failed',
52
+ name: 'Feature A',
43
53
  stroke: [163, 40, 39, thickness: 2],
44
54
  x_value_start: Time.now,
45
- x_interval_in_seconds: 2,
55
+ x_interval_in_seconds: 8,
46
56
  x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
47
- y_values: [36, 0, 60, 0, 0, 16, 0, 36, 0, 0]
57
+ y_values: [80, 36, 10, 60, 20, 110, 16, 5, 36, 1, 77, 15, 3, 34, 8, 63, 12, 17, 90, 28, 70]
48
58
  },
49
59
  {
50
- name: 'Processed',
60
+ name: 'Feature B',
51
61
  stroke: [47, 109, 104, thickness: 2],
52
62
  x_value_start: Time.now,
53
- x_interval_in_seconds: 2,
63
+ x_interval_in_seconds: 8,
54
64
  x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
55
- y_values: [62, 0, 90, 0, 0, 27, 0, 56, 0, 0]
65
+ y_values: [62, 0, 90, 0, 0, 27, 0, 56, 0, 0, 24, 0, 60, 0, 30, 0, 47, 0, 38, 90, 0]
56
66
  },
57
67
  ],
58
68
  display_attributes_on_hover: true,
59
69
  )
60
70
  ```
61
71
 
62
- ![line graph](/screenshots/glimmer-libui-cc-graphs_and_charts-mac-line-graph.png)
72
+ ![basic line graph](/screenshots/glimmer-libui-cc-graphs_and_charts-mac-line-graph.png)
73
+
74
+ Basic Line Graph Example:
75
+
76
+ [examples/graphs_and_charts/basic_line_graph.rb](/examples/graphs_and_charts/basic_line_graph.rb)
77
+
78
+ ```ruby
79
+ require 'glimmer-dsl-libui'
80
+ require 'glimmer/view/line_graph'
81
+
82
+ class BasicLineGraph
83
+ include Glimmer::LibUI::Application
84
+
85
+ before_body do
86
+ @start_time = Time.now
87
+ end
88
+
89
+ body {
90
+ window('Basic Line Graph', 900, 330) {
91
+ line_graph(
92
+ width: 900,
93
+ height: 300,
94
+ graph_point_distance: :width_divided_by_point_count,
95
+ lines: [
96
+ {
97
+ name: 'Feature A',
98
+ stroke: [163, 40, 39, thickness: 2],
99
+ x_value_start: @start_time,
100
+ x_interval_in_seconds: 8,
101
+ x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
102
+ y_values: [80, 36, 10, 60, 20, 110, 16, 5, 36, 1, 77, 15, 3, 34, 8, 63, 12, 17, 90, 28, 70]
103
+ },
104
+ {
105
+ name: 'Feature B',
106
+ stroke: [47, 109, 104, thickness: 2],
107
+ x_value_start: @start_time,
108
+ x_interval_in_seconds: 8,
109
+ x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
110
+ y_values: [62, 0, 90, 0, 0, 27, 0, 56, 0, 0, 24, 0, 60, 0, 30, 0, 47, 0, 38, 90, 0]
111
+ },
112
+ ],
113
+ display_attributes_on_hover: true,
114
+ )
115
+ }
116
+ }
117
+ end
118
+
119
+ BasicLineGraph.launch
120
+ ```
121
+
122
+ ![basic line graph](/screenshots/glimmer-libui-cc-graphs_and_charts-mac-line-graph.png)
63
123
 
64
124
  Contributing to glimmer-libui-cc-graphs_and_charts
65
125
  ------------------------------------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,44 @@
1
+ # This line is only needed when running the example from inside the project directory
2
+ $LOAD_PATH.prepend(File.expand_path(File.join(__dir__, '..', '..', 'lib'))) if File.exist?(File.join(__dir__, '..', '..', 'lib'))
3
+
4
+ require 'glimmer-dsl-libui'
5
+ require 'glimmer/view/line_graph'
6
+
7
+ class BasicLineGraph
8
+ include Glimmer::LibUI::Application
9
+
10
+ before_body do
11
+ @start_time = Time.now
12
+ end
13
+
14
+ body {
15
+ window('Basic Line Graph', 900, 330) {
16
+ line_graph(
17
+ width: 900,
18
+ height: 300,
19
+ graph_point_distance: :width_divided_by_point_count,
20
+ lines: [
21
+ {
22
+ name: 'Feature A',
23
+ stroke: [163, 40, 39, thickness: 2],
24
+ x_value_start: @start_time,
25
+ x_interval_in_seconds: 8,
26
+ x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
27
+ y_values: [80, 36, 10, 60, 20, 110, 16, 5, 36, 1, 77, 15, 3, 34, 8, 63, 12, 17, 90, 28, 70]
28
+ },
29
+ {
30
+ name: 'Feature B',
31
+ stroke: [47, 109, 104, thickness: 2],
32
+ x_value_start: @start_time,
33
+ x_interval_in_seconds: 8,
34
+ x_value_format: -> (time) {time.strftime("%a %d %b %Y %T GMT")},
35
+ y_values: [62, 0, 90, 0, 0, 27, 0, 56, 0, 0, 24, 0, 60, 0, 30, 0, 47, 0, 38, 90, 0]
36
+ },
37
+ ],
38
+ display_attributes_on_hover: true,
39
+ )
40
+ }
41
+ }
42
+ end
43
+
44
+ BasicLineGraph.launch
@@ -0,0 +1,44 @@
1
+ # Generated by juwelier
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: glimmer-libui-cc-graphs_and_charts 0.1.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "glimmer-libui-cc-graphs_and_charts".freeze
9
+ s.version = "0.1.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Andy Maleh".freeze]
14
+ s.date = "2023-12-16"
15
+ s.description = "Graphs and Charts (Custom Controls) for Glimmer DSL for LibUI, like Line Graph.".freeze
16
+ s.email = "andy.am@gmail.com".freeze
17
+ s.extra_rdoc_files = [
18
+ "CHANGELOG.md",
19
+ "LICENSE.txt",
20
+ "README.md"
21
+ ]
22
+ s.files = [
23
+ "CHANGELOG.md",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "VERSION",
27
+ "examples/graphs_and_charts/basic_line_graph.rb",
28
+ "glimmer-libui-cc-graphs_and_charts.gemspec",
29
+ "lib/glimmer-libui-cc-graphs_and_charts.rb",
30
+ "lib/glimmer/view/line_graph.rb"
31
+ ]
32
+ s.homepage = "http://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts".freeze
33
+ s.licenses = ["MIT".freeze]
34
+ s.rubygems_version = "3.4.6".freeze
35
+ s.summary = "Graphs and Charts - Glimmer DSL for LibUI Custom Controls".freeze
36
+
37
+ s.specification_version = 4
38
+
39
+ s.add_runtime_dependency(%q<glimmer-dsl-libui>.freeze, ["~> 0.11"])
40
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
41
+ s.add_development_dependency(%q<juwelier>.freeze, ["= 2.4.9"])
42
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
43
+ end
44
+
@@ -1,3 +1,5 @@
1
+ require 'glimmer-dsl-libui'
2
+
1
3
  module Glimmer
2
4
  module View
3
5
  # General-Purpose Line Graph Custom Control
@@ -236,8 +238,9 @@ module Glimmer
236
238
 
237
239
  def y_value_max_for_all_lines
238
240
  if @y_value_max_for_all_lines.nil?
239
- all_y_values = lines.map { |line| line[:y_values] }.reduce(:+)
240
- @y_value_max_for_all_lines = all_y_values.max.to_f
241
+ line_visible_y_values = lines.map { |line| line[:y_values][0, max_visible_point_count(line)] }
242
+ all_visible_y_values = line_visible_y_values.reduce(:+)
243
+ @y_value_max_for_all_lines = all_visible_y_values.max.to_f
241
244
  end
242
245
  @y_value_max_for_all_lines
243
246
  end
@@ -1,4 +1,4 @@
1
1
  $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
2
2
 
3
3
  require 'glimmer-dsl-libui'
4
- require 'glimmer/view/graphs_and_charts'
4
+ require 'glimmer/view/line_graph'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-libui-cc-graphs_and_charts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-15 00:00:00.000000000 Z
11
+ date: 2023-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer-dsl-libui
@@ -66,17 +66,22 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Graphs And Charts - Glimmer DSL for LibUI Custom Controls
69
+ description: Graphs and Charts (Custom Controls) for Glimmer DSL for LibUI, like Line
70
+ Graph.
70
71
  email: andy.am@gmail.com
71
72
  executables: []
72
73
  extensions: []
73
74
  extra_rdoc_files:
75
+ - CHANGELOG.md
74
76
  - LICENSE.txt
75
77
  - README.md
76
78
  files:
79
+ - CHANGELOG.md
77
80
  - LICENSE.txt
78
81
  - README.md
79
82
  - VERSION
83
+ - examples/graphs_and_charts/basic_line_graph.rb
84
+ - glimmer-libui-cc-graphs_and_charts.gemspec
80
85
  - lib/glimmer-libui-cc-graphs_and_charts.rb
81
86
  - lib/glimmer/view/line_graph.rb
82
87
  homepage: http://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts
@@ -101,5 +106,5 @@ requirements: []
101
106
  rubygems_version: 3.4.6
102
107
  signing_key:
103
108
  specification_version: 4
104
- summary: Graphs And Charts - Glimmer DSL for LibUI Custom Controls
109
+ summary: Graphs and Charts - Glimmer DSL for LibUI Custom Controls
105
110
  test_files: []