bumpspark 1.1.1 → 2.0.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.
Files changed (60) hide show
  1. data/.document +2 -4
  2. data/.gitignore +16 -3
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/.rvmrc +1 -0
  6. data/.travis.yml +5 -0
  7. data/Gemfile +4 -0
  8. data/{LICENSE → LICENSE.txt} +3 -1
  9. data/README.md +91 -0
  10. data/Rakefile +5 -59
  11. data/bumpspark.gemspec +21 -68
  12. data/exe/bumpspark +7 -0
  13. data/lib/bumpspark.rb +2 -8
  14. data/lib/bumpspark/formats/data_uri.rb +24 -0
  15. data/lib/bumpspark/graph.rb +7 -1
  16. data/lib/bumpspark/helper.rb +17 -0
  17. data/lib/bumpspark/railtie.rb +10 -0
  18. data/lib/bumpspark/version.rb +3 -0
  19. data/spec/dummy/Rakefile +7 -0
  20. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  21. data/spec/dummy/app/controllers/pages_controller.rb +4 -0
  22. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  23. data/spec/dummy/app/helpers/pages_helper.rb +2 -0
  24. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  25. data/spec/dummy/app/views/pages/home.html.erb +6 -0
  26. data/spec/dummy/config.ru +4 -0
  27. data/spec/dummy/config/application.rb +70 -0
  28. data/spec/dummy/config/boot.rb +6 -0
  29. data/spec/dummy/config/database.yml +25 -0
  30. data/spec/dummy/config/environment.rb +5 -0
  31. data/spec/dummy/config/environments/development.rb +37 -0
  32. data/spec/dummy/config/environments/test.rb +37 -0
  33. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  34. data/spec/dummy/config/initializers/inflections.rb +15 -0
  35. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  36. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  37. data/spec/dummy/config/initializers/session_store.rb +8 -0
  38. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  39. data/spec/dummy/config/locales/en.yml +5 -0
  40. data/spec/dummy/config/routes.rb +59 -0
  41. data/spec/dummy/log/.gitkeep +0 -0
  42. data/spec/dummy/public/404.html +26 -0
  43. data/spec/dummy/public/422.html +26 -0
  44. data/spec/dummy/public/500.html +25 -0
  45. data/spec/dummy/public/favicon.ico +0 -0
  46. data/spec/dummy/public/robots.txt +5 -0
  47. data/spec/dummy/script/rails +6 -0
  48. data/spec/helpers/application_helper_spec.rb +12 -0
  49. data/spec/lib/bumpspark/graph_spec.rb +30 -0
  50. data/spec/lib/bumpspark/helper_spec.rb +21 -0
  51. data/spec/spec_helper.rb +22 -0
  52. data/spec/support/matchers/valid_png.rb +9 -0
  53. metadata +190 -87
  54. data/README.markdown +0 -74
  55. data/VERSION +0 -1
  56. data/lib/bumpspark_helper.rb +0 -19
  57. data/rails/init.rb +0 -1
  58. data/test/bumpspark_helper_test.rb +0 -23
  59. data/test/bumpspark_test.rb +0 -32
  60. data/test/test_helper.rb +0 -10
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe ApplicationHelper do
4
+ describe "#bumpspark_tag" do
5
+ it 'is an image tag' do
6
+ expect(helper.bumpspark_tag([1, 2, 3])).to include("<img")
7
+ end
8
+ it 'contains a data uri' do
9
+ expect(helper.bumpspark_tag([1, 2, 3])).to include("data:image/png")
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bumpspark::Graph do
4
+
5
+ subject do
6
+ Bumpspark::Graph.new(data).send("to_#{format}")
7
+ end
8
+
9
+ context "generating pngs" do
10
+
11
+ let(:format) { 'png' }
12
+
13
+ context "for an empty bumpspark" do
14
+ let(:data) { [] }
15
+ it { should be_a_valid_png }
16
+ end
17
+
18
+ context "for a bumpspark with one datapoint" do
19
+ let(:data) { [1] }
20
+ it { should be_a_valid_png }
21
+ end
22
+
23
+ context "for a bumpspark with multiple datapoints" do
24
+ let(:data) { [1, 2, 3] }
25
+ it { should be_a_valid_png }
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ require 'bumpspark/helper'
4
+
5
+ describe Bumpspark::Helper do
6
+
7
+ let(:object) { Object.new }
8
+ before { object.extend(Bumpspark::Helper) }
9
+
10
+ context 'generating an image' do
11
+
12
+ it 'creates an image tag' do
13
+ object.should_receive(:tag) do |name, options|
14
+ expect(name).to eq(:img)
15
+ expect(options[:src]).to include("data:image/png;base64")
16
+ end
17
+ object.bumpspark_tag([1, 2, 3])
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ ENV["RAILS_ENV"] ||= 'test'
2
+ require_relative 'dummy/config/environment'
3
+ require 'rspec/rails'
4
+ require 'rspec/autorun'
5
+
6
+ Dir.glob('spec/support/**/*.rb') do |filename|
7
+ require File.expand_path(filename)
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.treat_symbols_as_metadata_keys_with_true_values = true
12
+ config.run_all_when_everything_filtered = true
13
+ config.filter_run :focus
14
+
15
+ config.mock_with :rspec
16
+
17
+ # Run specs in random order to surface order dependencies. If you find an
18
+ # order dependency and want to debug it, you can fix the order by providing
19
+ # the seed, which is printed after each run.
20
+ # --seed 1234
21
+ config.order = 'random'
22
+ end
@@ -0,0 +1,9 @@
1
+ require "chunky_png"
2
+
3
+ RSpec::Matchers.define :be_a_valid_png do |expected|
4
+ match do |actual|
5
+ datastream = ChunkyPNG::Datastream.from_blob(actual)
6
+ image = ChunkyPNG::Image.from_datastream(datastream)
7
+ image.height > 0 && image.width > 0
8
+ end
9
+ end
metadata CHANGED
@@ -1,114 +1,217 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bumpspark
3
- version: !ruby/object:Gem::Version
4
- version: 1.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Bruce Williams
8
9
  autorequire:
9
- bindir: bin
10
+ bindir: exe
10
11
  cert_chain: []
11
-
12
- date: 2009-10-22 00:00:00 -07:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: thoughtbot-shoulda
12
+ date: 2013-01-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
17
22
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: activesupport
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
27
38
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: actionpack
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: chunky_png
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
37
54
  type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: rmagick
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
47
70
  type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
55
- description: Generates transparent PNG "bumpspark"-style sparklines. Use from Ruby directly or as a Rails helper generating an image tag w/ built-in data, as conceived by whytheluckystiff.
56
- email: bruce@codefluency.com
57
- executables: []
58
-
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rails
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - '='
84
+ - !ruby/object:Gem::Version
85
+ version: 3.2.11
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - '='
92
+ - !ruby/object:Gem::Version
93
+ version: 3.2.11
94
+ description: Generates transparent PNG and Data URI bumpspark-style sparklines. Use
95
+ from Ruby directly or as a Rails helper.
96
+ email:
97
+ - brwcodes@gmail.com
98
+ executables:
99
+ - bumpspark
59
100
  extensions: []
60
-
61
- extra_rdoc_files:
62
- - LICENSE
63
- - README.markdown
64
- files:
101
+ extra_rdoc_files: []
102
+ files:
65
103
  - .document
66
104
  - .gitignore
67
- - LICENSE
68
- - README.markdown
105
+ - .rspec
106
+ - .ruby-version
107
+ - .rvmrc
108
+ - .travis.yml
109
+ - Gemfile
110
+ - LICENSE.txt
111
+ - README.md
69
112
  - Rakefile
70
113
  - TODO.markdown
71
- - VERSION
72
114
  - bumpspark.gemspec
115
+ - exe/bumpspark
73
116
  - lib/bumpspark.rb
117
+ - lib/bumpspark/formats/data_uri.rb
74
118
  - lib/bumpspark/formats/png.rb
75
119
  - lib/bumpspark/formats/string.rb
76
120
  - lib/bumpspark/graph.rb
121
+ - lib/bumpspark/helper.rb
122
+ - lib/bumpspark/railtie.rb
77
123
  - lib/bumpspark/scale.rb
78
- - lib/bumpspark_helper.rb
79
- - rails/init.rb
80
- - test/bumpspark_helper_test.rb
81
- - test/bumpspark_test.rb
82
- - test/test_helper.rb
83
- has_rdoc: true
124
+ - lib/bumpspark/version.rb
125
+ - spec/dummy/Rakefile
126
+ - spec/dummy/app/controllers/application_controller.rb
127
+ - spec/dummy/app/controllers/pages_controller.rb
128
+ - spec/dummy/app/helpers/application_helper.rb
129
+ - spec/dummy/app/helpers/pages_helper.rb
130
+ - spec/dummy/app/views/layouts/application.html.erb
131
+ - spec/dummy/app/views/pages/home.html.erb
132
+ - spec/dummy/config.ru
133
+ - spec/dummy/config/application.rb
134
+ - spec/dummy/config/boot.rb
135
+ - spec/dummy/config/database.yml
136
+ - spec/dummy/config/environment.rb
137
+ - spec/dummy/config/environments/development.rb
138
+ - spec/dummy/config/environments/test.rb
139
+ - spec/dummy/config/initializers/backtrace_silencers.rb
140
+ - spec/dummy/config/initializers/inflections.rb
141
+ - spec/dummy/config/initializers/mime_types.rb
142
+ - spec/dummy/config/initializers/secret_token.rb
143
+ - spec/dummy/config/initializers/session_store.rb
144
+ - spec/dummy/config/initializers/wrap_parameters.rb
145
+ - spec/dummy/config/locales/en.yml
146
+ - spec/dummy/config/routes.rb
147
+ - spec/dummy/log/.gitkeep
148
+ - spec/dummy/public/404.html
149
+ - spec/dummy/public/422.html
150
+ - spec/dummy/public/500.html
151
+ - spec/dummy/public/favicon.ico
152
+ - spec/dummy/public/robots.txt
153
+ - spec/dummy/script/rails
154
+ - spec/helpers/application_helper_spec.rb
155
+ - spec/lib/bumpspark/graph_spec.rb
156
+ - spec/lib/bumpspark/helper_spec.rb
157
+ - spec/spec_helper.rb
158
+ - spec/support/matchers/valid_png.rb
84
159
  homepage: http://github.com/bruce/bumpspark
85
160
  licenses: []
86
-
87
161
  post_install_message:
88
- rdoc_options:
89
- - --charset=UTF-8
90
- require_paths:
162
+ rdoc_options: []
163
+ require_paths:
91
164
  - lib
92
- required_ruby_version: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: "0"
97
- version:
98
- required_rubygems_version: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: "0"
103
- version:
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
104
177
  requirements: []
105
-
106
- rubyforge_project: codefluency
107
- rubygems_version: 1.3.5
178
+ rubyforge_project:
179
+ rubygems_version: 1.8.23
108
180
  signing_key:
109
181
  specification_version: 3
110
- summary: Generates "bumpspark"-style sparklines for Ruby & Rails
111
- test_files:
112
- - test/bumpspark_helper_test.rb
113
- - test/bumpspark_test.rb
114
- - test/test_helper.rb
182
+ summary: Generates bumpspark-style sparklines for Ruby & Rails
183
+ test_files:
184
+ - spec/dummy/Rakefile
185
+ - spec/dummy/app/controllers/application_controller.rb
186
+ - spec/dummy/app/controllers/pages_controller.rb
187
+ - spec/dummy/app/helpers/application_helper.rb
188
+ - spec/dummy/app/helpers/pages_helper.rb
189
+ - spec/dummy/app/views/layouts/application.html.erb
190
+ - spec/dummy/app/views/pages/home.html.erb
191
+ - spec/dummy/config.ru
192
+ - spec/dummy/config/application.rb
193
+ - spec/dummy/config/boot.rb
194
+ - spec/dummy/config/database.yml
195
+ - spec/dummy/config/environment.rb
196
+ - spec/dummy/config/environments/development.rb
197
+ - spec/dummy/config/environments/test.rb
198
+ - spec/dummy/config/initializers/backtrace_silencers.rb
199
+ - spec/dummy/config/initializers/inflections.rb
200
+ - spec/dummy/config/initializers/mime_types.rb
201
+ - spec/dummy/config/initializers/secret_token.rb
202
+ - spec/dummy/config/initializers/session_store.rb
203
+ - spec/dummy/config/initializers/wrap_parameters.rb
204
+ - spec/dummy/config/locales/en.yml
205
+ - spec/dummy/config/routes.rb
206
+ - spec/dummy/log/.gitkeep
207
+ - spec/dummy/public/404.html
208
+ - spec/dummy/public/422.html
209
+ - spec/dummy/public/500.html
210
+ - spec/dummy/public/favicon.ico
211
+ - spec/dummy/public/robots.txt
212
+ - spec/dummy/script/rails
213
+ - spec/helpers/application_helper_spec.rb
214
+ - spec/lib/bumpspark/graph_spec.rb
215
+ - spec/lib/bumpspark/helper_spec.rb
216
+ - spec/spec_helper.rb
217
+ - spec/support/matchers/valid_png.rb
@@ -1,74 +0,0 @@
1
- # Bumpspark
2
-
3
- Generate "bumpspark"-style sparklines from Ruby & Rails.
4
-
5
- Note: This library is based on _why's `bumpspark' code, originally discussed and
6
- collaborated on at [RedHanded] [1]. It has been refactored and built out as
7
- a gem suitable for inclusion in Rails projects (and standalone Ruby code).
8
-
9
- Bumpsparks are sparklines which show discrete data points and highlight
10
- extremes. If you like Tufte and _why, you'll probably like these.
11
-
12
- ## Credits
13
-
14
- Thanks to the various collaborators on _why's original post:
15
-
16
- * _why (concept, BMP implementation)
17
- * jzp (png)
18
- * MenTaLguY (transparency)
19
-
20
- ## Installation
21
-
22
- Since 1.1.0, bumpspark is only released on gemcutter. To install, you can setup gemcutter as your default gem source.
23
-
24
- $ gem install gemcutter
25
- $ gem tumble
26
-
27
- Then you can install it:
28
-
29
- $ gem install bumpspark
30
-
31
- You can also just get it in one line:
32
-
33
- $ gem install bumpspark -s http://gemcutter.org
34
-
35
- ## Usage
36
-
37
- ### From Rails
38
-
39
- 1. Include the gem as a gem dependency in `config/environment.rb`
40
- 2. Use `bumpspark_tag` from your views or helpers, passing it the data points
41
- you'd like graphed.
42
-
43
- <%= bumpspark_tag [12, 34, 12, 42, 12, 23] %>
44
-
45
- ## From Ruby
46
-
47
- Simply create a `Bumpspark::Graph` instance and call `to_png` on it.
48
-
49
- require 'bumpspark'
50
-
51
- graph = Bumpspark::Graph.new [12, 34, 12, 42, 12, 23]
52
-
53
- File.open('bumpspark.png', 'wb') do |file|
54
- file.write graph.to_png
55
- end
56
-
57
- ## Note on Patches/Pull Requests
58
-
59
- Please check the TODO file for information on things that need doing.
60
-
61
- * Fork the project.
62
- * Make your feature addition or bug fix.
63
- * Add tests for it. This is important so I don't break it in a
64
- future version unintentionally.
65
- * Commit, do not mess with rakefile, version, or history.
66
- (if you want to have your own version, that is fine but
67
- bump version in a commit by itself I can ignore when I pull)
68
- * Send me a pull request. Bonus points for topic branches.
69
-
70
- ## Copyright
71
-
72
- Copyright (c) 2009 Bruce Williams, et al. See LICENSE for details.
73
-
74
- [1]: http://redhanded.hobix.com/inspect/sparklinesForMinimalists.html