rcharts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +99 -0
- data/Rakefile +21 -0
- data/app/helpers/rcharts/graph_helper/axes/axis_element/styles.rb +91 -0
- data/app/helpers/rcharts/graph_helper/axes/axis_element.rb +89 -0
- data/app/helpers/rcharts/graph_helper/axes/label_element.rb +32 -0
- data/app/helpers/rcharts/graph_helper/axes/tick_element.rb +38 -0
- data/app/helpers/rcharts/graph_helper/axes.rb +8 -0
- data/app/helpers/rcharts/graph_helper/categories/bar_builder.rb +32 -0
- data/app/helpers/rcharts/graph_helper/categories/bar_segment_element.rb +49 -0
- data/app/helpers/rcharts/graph_helper/categories/bars_element.rb +52 -0
- data/app/helpers/rcharts/graph_helper/categories/category_builder.rb +115 -0
- data/app/helpers/rcharts/graph_helper/element.rb +65 -0
- data/app/helpers/rcharts/graph_helper/element_builder.rb +42 -0
- data/app/helpers/rcharts/graph_helper/graph/axes.rb +41 -0
- data/app/helpers/rcharts/graph_helper/graph/axis/caster.rb +45 -0
- data/app/helpers/rcharts/graph_helper/graph/axis/positioning.rb +66 -0
- data/app/helpers/rcharts/graph_helper/graph/axis/ticks.rb +66 -0
- data/app/helpers/rcharts/graph_helper/graph/axis.rb +86 -0
- data/app/helpers/rcharts/graph_helper/graph/calculator.rb +91 -0
- data/app/helpers/rcharts/graph_helper/graph/composition.rb +35 -0
- data/app/helpers/rcharts/graph_helper/graph/options.rb +33 -0
- data/app/helpers/rcharts/graph_helper/graph.rb +8 -0
- data/app/helpers/rcharts/graph_helper/graph_builder.rb +270 -0
- data/app/helpers/rcharts/graph_helper/legend_entry_builder.rb +46 -0
- data/app/helpers/rcharts/graph_helper/rule_element.rb +68 -0
- data/app/helpers/rcharts/graph_helper/series/area_element.rb +50 -0
- data/app/helpers/rcharts/graph_helper/series/path.rb +153 -0
- data/app/helpers/rcharts/graph_helper/series/path_element.rb +72 -0
- data/app/helpers/rcharts/graph_helper/series/point.rb +58 -0
- data/app/helpers/rcharts/graph_helper/series/scatter_element.rb +87 -0
- data/app/helpers/rcharts/graph_helper/series/series_builder.rb +145 -0
- data/app/helpers/rcharts/graph_helper/tooltips/entry_builder.rb +47 -0
- data/app/helpers/rcharts/graph_helper/tooltips/foreign_object_element.rb +84 -0
- data/app/helpers/rcharts/graph_helper/tooltips/hover_target_element.rb +39 -0
- data/app/helpers/rcharts/graph_helper/tooltips/marker_element.rb +38 -0
- data/app/helpers/rcharts/graph_helper/tooltips/tooltip_builder.rb +44 -0
- data/app/helpers/rcharts/graph_helper/tooltips/tooltip_element.rb +45 -0
- data/app/helpers/rcharts/graph_helper.rb +249 -0
- data/lib/generators/rcharts/install/install_generator.rb +13 -0
- data/lib/generators/rcharts/install/templates/rcharts.css +392 -0
- data/lib/rcharts/engine.rb +25 -0
- data/lib/rcharts/percentage.rb +36 -0
- data/lib/rcharts/type/percentage.rb +20 -0
- data/lib/rcharts/type/symbol.rb +29 -0
- data/lib/rcharts/type.rb +9 -0
- data/lib/rcharts/version.rb +6 -0
- data/lib/rcharts.rb +52 -0
- data/lib/tasks/rcharts_tasks.rake +6 -0
- metadata +107 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RCharts
|
|
4
|
+
class Percentage # :nodoc:
|
|
5
|
+
attr_reader :value
|
|
6
|
+
|
|
7
|
+
def self.wrap(value)
|
|
8
|
+
value.is_a?(Percentage) ? value : new(value)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.unwrap(value)
|
|
12
|
+
value.is_a?(Percentage) ? value.value : value
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def initialize(value)
|
|
16
|
+
@value = value.to_f
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
MAX = new(100.0)
|
|
20
|
+
MIN = new(0.0)
|
|
21
|
+
|
|
22
|
+
def ==(other)
|
|
23
|
+
value == self.class.unwrap(other)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
%i[+ - * /].each do |operator|
|
|
27
|
+
define_method operator do |other|
|
|
28
|
+
self.class.new(value.public_send(operator, self.class.unwrap(other)))
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def to_s
|
|
33
|
+
"#{value}%"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RCharts
|
|
4
|
+
module Type
|
|
5
|
+
class Percentage < ActiveModel::Type::Float # :nodoc:
|
|
6
|
+
def type
|
|
7
|
+
:percentage
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def cast_value(value)
|
|
13
|
+
case value
|
|
14
|
+
when RCharts::Percentage then value
|
|
15
|
+
else RCharts::Percentage.new(super)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RCharts
|
|
4
|
+
module Type
|
|
5
|
+
class Symbol < ActiveModel::Type::Value # :nodoc:
|
|
6
|
+
include ActiveModel::Type::Helpers::Immutable
|
|
7
|
+
|
|
8
|
+
def type
|
|
9
|
+
:symbol
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def serialize(value)
|
|
13
|
+
case value
|
|
14
|
+
when ::String then value.to_sym
|
|
15
|
+
else super.to_sym
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def cast_value(value)
|
|
22
|
+
case value
|
|
23
|
+
when Symbol then value
|
|
24
|
+
else value.to_s.to_sym
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/rcharts/type.rb
ADDED
data/lib/rcharts.rb
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rcharts/version'
|
|
4
|
+
require 'rcharts/engine'
|
|
5
|
+
|
|
6
|
+
# = \RCharts
|
|
7
|
+
#
|
|
8
|
+
# \RCharts is a simple but highly extensible and customizable framework for rendering charts with Action View.
|
|
9
|
+
# Unlike many other charting libraries, \RCharts produces charts with non-uniform scaling without resorting to any
|
|
10
|
+
# client-side rendering, so that the browser has enough information to be able to resize the chart itself.
|
|
11
|
+
# You can then progressively enhance this baseline functionality to achieve things like panning and zooming,
|
|
12
|
+
# without needing to consider how and when the chart is rendered.
|
|
13
|
+
#
|
|
14
|
+
# To get started rendering charts, see GraphHelper.
|
|
15
|
+
module RCharts
|
|
16
|
+
extend ActiveSupport::Autoload
|
|
17
|
+
|
|
18
|
+
mattr_accessor :series_color_classes, default: %w[blue red green orange purple]
|
|
19
|
+
mattr_accessor :series_symbols, default: %w[● ■ ◆ ▲ ▼]
|
|
20
|
+
|
|
21
|
+
autoload :Percentage
|
|
22
|
+
autoload :Type
|
|
23
|
+
|
|
24
|
+
# Returns a color class based on the index.
|
|
25
|
+
# You can set the color classes using <tt>Rails.application.config.rcharts.series_color_classes=</tt>.
|
|
26
|
+
#
|
|
27
|
+
# module MyApplication
|
|
28
|
+
# class Application < Rails::Application
|
|
29
|
+
# config.rcharts.series_color_classes = %w[blue red green]
|
|
30
|
+
# end
|
|
31
|
+
# end
|
|
32
|
+
#
|
|
33
|
+
# RCharts.color_class_for(1) # => 'red'
|
|
34
|
+
def self.color_class_for(index)
|
|
35
|
+
series_color_classes[index % series_color_classes.size]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Returns a symbol based on the index.
|
|
39
|
+
# You can set the symbols using <tt>Rails.application.config.rcharts.series_symbols=</tt>.
|
|
40
|
+
# Symbols are characters like ●, ■, ◆, ▲, ▼.
|
|
41
|
+
#
|
|
42
|
+
# module MyApplication
|
|
43
|
+
# class Application < Rails::Application
|
|
44
|
+
# config.rcharts.series_symbols = %w[● ■ ◆ ▲ ▼]
|
|
45
|
+
# end
|
|
46
|
+
# end
|
|
47
|
+
#
|
|
48
|
+
# RCharts.symbol_for(1) # => '■'
|
|
49
|
+
def self.symbol_for(index)
|
|
50
|
+
series_symbols[index % series_symbols.size]
|
|
51
|
+
end
|
|
52
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rcharts
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Justin Malčić
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rails
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 8.1.1
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 8.1.1
|
|
26
|
+
description: Helpers to generate different kinds of SVG charts from arbitrary data.
|
|
27
|
+
email:
|
|
28
|
+
- j.malcic@me.com
|
|
29
|
+
executables: []
|
|
30
|
+
extensions: []
|
|
31
|
+
extra_rdoc_files: []
|
|
32
|
+
files:
|
|
33
|
+
- MIT-LICENSE
|
|
34
|
+
- README.md
|
|
35
|
+
- Rakefile
|
|
36
|
+
- app/helpers/rcharts/graph_helper.rb
|
|
37
|
+
- app/helpers/rcharts/graph_helper/axes.rb
|
|
38
|
+
- app/helpers/rcharts/graph_helper/axes/axis_element.rb
|
|
39
|
+
- app/helpers/rcharts/graph_helper/axes/axis_element/styles.rb
|
|
40
|
+
- app/helpers/rcharts/graph_helper/axes/label_element.rb
|
|
41
|
+
- app/helpers/rcharts/graph_helper/axes/tick_element.rb
|
|
42
|
+
- app/helpers/rcharts/graph_helper/categories/bar_builder.rb
|
|
43
|
+
- app/helpers/rcharts/graph_helper/categories/bar_segment_element.rb
|
|
44
|
+
- app/helpers/rcharts/graph_helper/categories/bars_element.rb
|
|
45
|
+
- app/helpers/rcharts/graph_helper/categories/category_builder.rb
|
|
46
|
+
- app/helpers/rcharts/graph_helper/element.rb
|
|
47
|
+
- app/helpers/rcharts/graph_helper/element_builder.rb
|
|
48
|
+
- app/helpers/rcharts/graph_helper/graph.rb
|
|
49
|
+
- app/helpers/rcharts/graph_helper/graph/axes.rb
|
|
50
|
+
- app/helpers/rcharts/graph_helper/graph/axis.rb
|
|
51
|
+
- app/helpers/rcharts/graph_helper/graph/axis/caster.rb
|
|
52
|
+
- app/helpers/rcharts/graph_helper/graph/axis/positioning.rb
|
|
53
|
+
- app/helpers/rcharts/graph_helper/graph/axis/ticks.rb
|
|
54
|
+
- app/helpers/rcharts/graph_helper/graph/calculator.rb
|
|
55
|
+
- app/helpers/rcharts/graph_helper/graph/composition.rb
|
|
56
|
+
- app/helpers/rcharts/graph_helper/graph/options.rb
|
|
57
|
+
- app/helpers/rcharts/graph_helper/graph_builder.rb
|
|
58
|
+
- app/helpers/rcharts/graph_helper/legend_entry_builder.rb
|
|
59
|
+
- app/helpers/rcharts/graph_helper/rule_element.rb
|
|
60
|
+
- app/helpers/rcharts/graph_helper/series/area_element.rb
|
|
61
|
+
- app/helpers/rcharts/graph_helper/series/path.rb
|
|
62
|
+
- app/helpers/rcharts/graph_helper/series/path_element.rb
|
|
63
|
+
- app/helpers/rcharts/graph_helper/series/point.rb
|
|
64
|
+
- app/helpers/rcharts/graph_helper/series/scatter_element.rb
|
|
65
|
+
- app/helpers/rcharts/graph_helper/series/series_builder.rb
|
|
66
|
+
- app/helpers/rcharts/graph_helper/tooltips/entry_builder.rb
|
|
67
|
+
- app/helpers/rcharts/graph_helper/tooltips/foreign_object_element.rb
|
|
68
|
+
- app/helpers/rcharts/graph_helper/tooltips/hover_target_element.rb
|
|
69
|
+
- app/helpers/rcharts/graph_helper/tooltips/marker_element.rb
|
|
70
|
+
- app/helpers/rcharts/graph_helper/tooltips/tooltip_builder.rb
|
|
71
|
+
- app/helpers/rcharts/graph_helper/tooltips/tooltip_element.rb
|
|
72
|
+
- lib/generators/rcharts/install/install_generator.rb
|
|
73
|
+
- lib/generators/rcharts/install/templates/rcharts.css
|
|
74
|
+
- lib/rcharts.rb
|
|
75
|
+
- lib/rcharts/engine.rb
|
|
76
|
+
- lib/rcharts/percentage.rb
|
|
77
|
+
- lib/rcharts/type.rb
|
|
78
|
+
- lib/rcharts/type/percentage.rb
|
|
79
|
+
- lib/rcharts/type/symbol.rb
|
|
80
|
+
- lib/rcharts/version.rb
|
|
81
|
+
- lib/tasks/rcharts_tasks.rake
|
|
82
|
+
homepage: https://buildingatlas.github.io/rcharts/
|
|
83
|
+
licenses:
|
|
84
|
+
- MIT
|
|
85
|
+
metadata:
|
|
86
|
+
homepage_uri: https://buildingatlas.github.io/rcharts/
|
|
87
|
+
source_code_uri: https://github.com/BuildingAtlas/rcharts
|
|
88
|
+
changelog_uri: https://github.com/BuildingAtlas/rcharts/releases
|
|
89
|
+
rubygems_mfa_required: 'true'
|
|
90
|
+
rdoc_options: []
|
|
91
|
+
require_paths:
|
|
92
|
+
- lib
|
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - ">="
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: 3.4.0
|
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
requirements: []
|
|
104
|
+
rubygems_version: 3.6.9
|
|
105
|
+
specification_version: 4
|
|
106
|
+
summary: Responsive SVG charting for Action View.
|
|
107
|
+
test_files: []
|