anychart_xml_builder 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'rake'
4
4
  begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
- gem.version = "0.0.6"
7
+ gem.version = "0.0.7"
8
8
  gem.name = "anychart_xml_builder"
9
9
  gem.summary = %Q{AnyChart (http://anychart.com/home/) XML Builders}
10
10
  gem.description = %Q{This gem provides you the methods to easily generate the XML necessary for AnyChart}
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{anychart_xml_builder}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["jduarte"]
12
- s.date = %q{2010-03-08}
12
+ s.date = %q{2011-01-17}
13
13
  s.description = %q{This gem provides you the methods to easily generate the XML necessary for AnyChart}
14
14
  s.email = %q{jose.fduarte@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -29,6 +29,8 @@ Gem::Specification.new do |s|
29
29
  "lib/column_bar.rb",
30
30
  "lib/init.rb",
31
31
  "lib/pie.rb",
32
+ "lib/xml_sections/chart_title.rb",
33
+ "lib/xml_sections/legend.rb",
32
34
  "test/helper.rb",
33
35
  "test/test_anychart_xml_builder.rb",
34
36
  "test/xml/sample_165.rb",
@@ -37,7 +39,7 @@ Gem::Specification.new do |s|
37
39
  s.homepage = %q{http://github.com/jduarte/anychart_xml_builder}
38
40
  s.rdoc_options = ["--charset=UTF-8"]
39
41
  s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.3.5}
42
+ s.rubygems_version = %q{1.3.7}
41
43
  s.summary = %q{AnyChart (http://anychart.com/home/) XML Builders}
42
44
  s.test_files = [
43
45
  "test/helper.rb",
@@ -50,7 +52,7 @@ Gem::Specification.new do |s|
50
52
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
51
53
  s.specification_version = 3
52
54
 
53
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
56
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
55
57
  s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.1"])
56
58
  else
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'action_view'
2
3
 
3
4
  module ActionView #:nodoc:
@@ -10,14 +11,17 @@ module ActionView #:nodoc:
10
11
 
11
12
  module InstanceMethods
12
13
  @@default_options = {
13
- :anychart_swf_path => '/anychart_swfs/AnyChart.swf',
14
- :anychart_swf_preloader => '/anychart_swfs/Preloader.swf',
15
- :div_id => 'anychart'
14
+ :anychart_swf_path => '/anychart/swf/AnyChart.swf',
15
+ :anychart_swf_preloader => '/anychart/swf/Preloader.swf',
16
+ :table_id => 'anychart_table_wrap',
17
+ :td_id => "anychart_#{ActiveSupport::SecureRandom.hex}"
16
18
  }
17
19
 
18
20
  def anychart(xml, options={})
19
21
  opts = @@default_options.merge(options)
20
- "<div id='#{opts[:div_id]}'>
22
+
23
+ "<table class='anychart_graph_wrap' cellpadding='0' cellspacing='0' style='width:100%;height:100%;'><tr>
24
+ <td id='#{opts[:td_id]}' style='height:100%;width:100%;' colspan='2'>
21
25
  <noscript>
22
26
  <object id='chart'
23
27
  name='chart'
@@ -50,22 +54,21 @@ module ActionView #:nodoc:
50
54
  document.write('</center>');
51
55
  //]]>
52
56
  </script>
53
-
57
+ </td></tr></table>
54
58
  <script type='text/javascript' language='JavaScript'>
55
59
  //<![CDATA[
56
60
  var chartSample = new AnyChart('#{opts[:anychart_swf_path]}','#{opts[:anychart_swf_preloader]}');
57
61
  chartSample.width = '100%';
58
62
  chartSample.height = '100%';
59
63
  chartSample.setXMLFile('#{xml}');
60
- chartSample.write('#{opts[:div_id]}');
64
+ chartSample.write('#{opts[:td_id]}');
61
65
  //init();
62
66
  //]]>
63
- </script>
64
- </div>"
67
+ </script>".html_safe
65
68
  end
66
69
  end
67
70
  end
68
71
  end
69
72
  end
70
73
 
71
- ActionView::Base.send(:include, ActionView::Helpers::AppletHelper)
74
+ ActionView::Base.send(:include, ActionView::Helpers::AnychartHelper)
@@ -1,10 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'nokogiri'
3
+
4
+ [:legend,:chart_title].each do |section_type|
5
+ require "xml_sections/#{section_type}"
6
+ end
7
+
2
8
  require 'column_bar'
3
9
  require 'pie'
4
10
  require 'anychart_xml_builder'
5
11
 
12
+
13
+ require 'anychart/anychart_helpers'
14
+
6
15
  module Anychart
7
16
  module XML
8
17
 
9
18
  end
10
- end
19
+ end
data/lib/column_bar.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # -*- encoding : utf-8 -*-
2
+
1
3
  module Anychart
2
4
  module XML
3
5
  module ColumnBar
@@ -6,25 +8,29 @@ module Anychart
6
8
  # :tooltip => "{%Name} - {%YValue}",
7
9
  # :chart => {
8
10
  # :title => "Multi-Series: with Simple Legend",
9
- # :legend => "{%Icon} {%Name} ({%Value})",
11
+ # :legend => {
12
+ # :format => "{%Icon} {%Name} ({%Value})",
13
+ # :position => "Bottom",
14
+ # :title => "lalala"
15
+ # },
10
16
  # :axes => {
11
17
  # :y => "{%Value}{numDecimals:0}"
12
18
  # }
13
- # },
14
- # :data => {
15
- # :series => [
16
- # {:name => "Series 1",
17
- # :points => [ {:name => "P1", :value => "12"},
18
- # {:name => "P2", :value => "24"}
19
- # ]
20
- # },
21
- # {:name => "Series 2",
22
- # :points => [ {:name => "P1", :value => "23"},
23
- # {:name => "P2", :value => "45"}
24
- # ]
25
- # }
26
- # ]
27
- # }
19
+ # },
20
+ # :data => {
21
+ # :series => [
22
+ # {:name => "Series 1",
23
+ # :points => [ {:name => "P1", :value => "12"},
24
+ # {:name => "P2", :value => "24"}
25
+ # ]
26
+ # },
27
+ # {:name => "Series 2",
28
+ # :points => [ {:name => "P1", :value => "23"},
29
+ # {:name => "P2", :value => "45"}
30
+ # ]
31
+ # }
32
+ # ]
33
+ # }
28
34
 
29
35
  @@default_xml_options = {
30
36
  :animation => true,
@@ -70,28 +76,8 @@ module Anychart
70
76
  }
71
77
 
72
78
  xml.chart_settings {
73
- if p[:chart][:title]
74
- xml.title(:enabled => "true") {
75
- xml.text_ p[:chart][:title]
76
- }
77
- end # title
78
-
79
- if p[:chart][:legend]
80
- xml.legend(:enabled => "true", :position => "Right", :align => "Near") {
81
- xml.format p[:chart][:legend][:format] if p[:chart][:legend][:format]
82
- xml.template {}
83
- if p[:chart][:legend][:title]
84
- xml.title(:enabled => "true") { p[:chart][:legend][:title] }
85
- else
86
- xml.title(:enabled => "false") {}
87
- end
88
-
89
- xml.columns_separator(:enabled => "false") {}
90
- xml.background {
91
- xml.inside_margin(:left => "10", :right => "10") {}
92
- }
93
- }
94
- end
79
+ Anychart::XML.chart_title(xml,p) # title
80
+ Anychart::XML.legend(xml,p) # legend
95
81
 
96
82
  xml.axes {
97
83
  if p[:chart][:axes][:y]
@@ -133,4 +119,4 @@ module Anychart
133
119
  end
134
120
  end
135
121
  end
136
- end
122
+ end
data/lib/init.rb CHANGED
@@ -1 +1,2 @@
1
- require 'anychart'
1
+ # -*- encoding : utf-8 -*-
2
+ require 'anychart'
data/lib/pie.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module Anychart
2
3
  module XML
3
4
  module Pie
@@ -5,24 +6,24 @@ module Anychart
5
6
  #
6
7
  # options = {:type => :doughnut,
7
8
  # :tooltip => "${%Value}{scale:(1000)(1000)(1000)|( th)( mil)( bil),numDecimals:2}",
8
- # :chart => {
9
- # :title => "ACME Corp. apparel sales through different retail channels",
10
- # :legend => true,
11
- # :label => "{%YPercentOfSeries}{numDecimals:1}%",
12
- # :marker => true
13
- # },
14
- # :data => {
15
- # :series => [
16
- # {:name => "Year 2003",
17
- # :points => [ {:name => "Department Store", :value => "6371664"},
18
- # {:name => "Discount Stores", :value => "7216301"},
19
- # {:name => "Men's/Women's Stores", :value => "1486621"},
20
- # {:name => "Juvenile Specialty Stores", :value => "786622"},
21
- # {:name => "All other outlets", :value => "900000", :color => "DarkSeaGreen"}
22
- # ]
23
- # }
24
- # ]
25
- # }
9
+ # :chart => {
10
+ # :title => "ACME Corp. apparel sales through different retail channels",
11
+ # :legend => true,
12
+ # :label => "{%YPercentOfSeries}{numDecimals:1}%",
13
+ # :marker => true
14
+ # },
15
+ # :data => {
16
+ # :series => [
17
+ # {:name => "Year 2003",
18
+ # :points => [ {:name => "Department Store", :value => "6371664"},
19
+ # {:name => "Discount Stores", :value => "7216301"},
20
+ # {:name => "Men's/Women's Stores", :value => "1486621"},
21
+ # {:name => "Juvenile Specialty Stores", :value => "786622"},
22
+ # {:name => "All other outlets", :value => "900000", :color => "DarkSeaGreen"}
23
+ # ]
24
+ # }
25
+ # ]
26
+ # }
26
27
  # }
27
28
 
28
29
  @@default_xml_options = {
@@ -44,125 +45,95 @@ module Anychart
44
45
  }
45
46
  }
46
47
 
47
- def self.xml(options={})
48
- p = @@default_xml_options.merge(options)
49
-
50
- validate_options(p)
51
-
52
- builder = Nokogiri::XML::Builder.new do |xml|
53
- xml.anychart {
54
- xml.settings {
55
- xml.animation(:enabled => "True") if p[:animation]
56
- }
48
+ def self.xml(options={})
49
+ p = @@default_xml_options.merge(options)
50
+
51
+ validate_options(p)
52
+
53
+ builder = Nokogiri::XML::Builder.new do |xml|
54
+ xml.anychart {
55
+ xml.settings {
56
+ xml.animation(:enabled => "True") if p[:animation]
57
+ }
58
+
59
+ xml.charts {
60
+ xml.chart(:plot_type => p[:type].to_s.capitalize) {
57
61
 
58
- xml.charts {
59
- xml.chart(:plot_type => p[:type].to_s.capitalize) {
60
-
61
- xml.data_plot_settings(:enable_3d_mode => "false") {
62
- xml.pie_series {
63
- if p[:tooltip]
64
- xml.tooltip_settings(:enabled => "True") {
65
- xml.format p[:tooltip]
66
- xml.position(:anchor => "CenterTop", :padding => "10") {}
67
- }
68
- else
69
- xml.tooltip_settings(:enabled => "False") {}
70
- end
71
-
72
- # XML Labels que aparecem no interior da Pie/Doughnut
73
- if p[:chart][:label]
74
- xml.label_settings(:enabled => "true") {
75
- xml.position(:anchor => "Center", :valign => "Center", :halign => "Center", :padding => "0") {}
76
- xml.background(:enabled => "false") {}
77
- xml.font(:size => "11", :color => "White") {
78
- xml.effects {
79
- xml.drop_shadow(:enabled => "true", :distance => "1", :opacity => "0.9", :blur_x => "2", :blur_y => "2") {}
80
- }
81
- }
82
- xml.format p[:chart][:label]
83
- }
84
- end # label_settings
85
-
86
- if p[:chart][:marker]
87
- xml.marker_settings(:enabled => "true") {
88
- xml.marker(:type => "None") {}
89
- xml.states {
90
- xml.hover {
91
- xml.marker(:type => "Circle", :anchor => "CenterTop")
92
- }
93
- }
94
- }
95
- end # marker_settings
96
-
97
- } # pie_series
98
-
99
- } # data_plot_settings
100
-
101
- xml.chart_settings {
102
- if p[:chart][:title]
103
- xml.title(:enabled => "true", :padding => "10") {
104
- xml.text_ p[:chart][:title]
62
+ xml.data_plot_settings(:enable_3d_mode => "false") {
63
+ xml.pie_series {
64
+ if p[:tooltip]
65
+ xml.tooltip_settings(:enabled => "True") {
66
+ xml.format p[:tooltip]
67
+ xml.position(:anchor => "CenterTop", :padding => "10") {}
105
68
  }
106
- end # title
69
+ else
70
+ xml.tooltip_settings(:enabled => "False") {}
71
+ end
107
72
 
108
- if p[:chart][:legend]
109
- xml.legend(:enabled => "true", :position => "Right", :align => "Near", :ignore_auto_item => "true") {
110
- xml.format p[:chart][:legend][:format] if p[:chart][:legend].kind_of?(Hash) and p[:chart][:legend][:format]
111
-
112
- xml.template {}
113
-
114
- if p[:chart][:legend].kind_of?(Hash) and p[:chart][:legend][:title]
115
- xml.title(:enabled => "true") { p[:chart][:legend][:title] }
116
- else
117
- xml.title(:enabled => "false") {}
118
- end
119
-
120
- xml.columns_separator(:enabled => "false") { }
121
-
122
- xml.items {
123
- xml.item(:source => "Points") { }
124
- }
125
-
126
- xml.background {
127
- xml.inside_margin(:left => "10", :right => "10") { }
73
+ # XML Labels que aparecem no interior da Pie/Doughnut
74
+ if p[:chart][:label]
75
+ xml.label_settings(:enabled => "true") {
76
+ xml.position(:anchor => "Center", :valign => "Center", :halign => "Center", :padding => "0") {}
77
+ xml.background(:enabled => "false") {}
78
+ xml.font(:size => "11", :color => "White") {
79
+ xml.effects {
80
+ xml.drop_shadow(:enabled => "true", :distance => "1", :opacity => "0.9", :blur_x => "2", :blur_y => "2") {}
81
+ }
128
82
  }
83
+ xml.format p[:chart][:label]
129
84
  }
130
- end # legend
131
-
132
- } # chart_settings
85
+ end # label_settings
133
86
 
134
- xml.data {
135
- series = (p[:data][:series].kind_of?(Array) ? p[:data][:series] : [p[:data][:series]])
136
-
137
- series.each do |serie|
138
- xml.series(:name => serie[:name], :type => "Pie") {
139
- # Os varios pontos
140
- serie[:points].each do |point|
141
- pt = {:name => point[:name].to_s, :y => point[:value].to_s}
142
- pt.merge!({:color => point[:color].to_s}) if point[:color]
143
- xml.point(pt)
144
- end
145
- }
146
- end # series
147
-
148
- } # data
87
+ if p[:chart][:marker]
88
+ xml.marker_settings(:enabled => "true") {
89
+ xml.marker(:type => "None") {}
90
+ xml.states {
91
+ xml.hover {
92
+ xml.marker(:type => "Circle", :anchor => "CenterTop")
93
+ }
94
+ }
95
+ }
96
+ end # marker_settings
149
97
 
150
- } # chart
98
+ } # pie_series
99
+
100
+ } # data_plot_settings
101
+
102
+ xml.chart_settings {
103
+ Anychart::XML.chart_title(xml,p) # title
104
+ Anychart::XML.legend(xml,p) # legend
105
+ } # chart_settings
151
106
 
152
- } # charts
153
-
154
- } # anychart
155
- end
156
-
157
- builder.to_xml.gsub(/>[ \t\r\n]+</, '><')
158
- end
107
+ xml.data {
108
+ series = (p[:data][:series].kind_of?(Array) ? p[:data][:series] : [p[:data][:series]])
109
+
110
+ series.each do |serie|
111
+ xml.series(:name => serie[:name], :type => "Pie") {
112
+ # Os varios pontos
113
+ serie[:points].each do |point|
114
+ pt = {:name => point[:name].to_s, :y => point[:value].to_s}
115
+ pt.merge!({:color => point[:color].to_s}) if point[:color]
116
+ xml.point(pt)
117
+ end
118
+ }
119
+ end # series
120
+
121
+ } # data
122
+
123
+ } # chart
124
+
125
+ } # charts
159
126
 
160
- def self.validate_options(options)
161
- raise "type must be :pie or :doughnut" unless options[:type] == :pie or options[:type] == :doughnut
127
+ } # anychart
162
128
  end
163
129
 
130
+ builder.to_xml.gsub(/>[ \t\r\n]+</, '><')
164
131
  end
165
132
 
166
- end
167
-
168
- end
133
+ def self.validate_options(options)
134
+ raise "type must be :pie or :doughnut" unless options[:type] == :pie or options[:type] == :doughnut
135
+ end
136
+
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,11 @@
1
+ module Anychart
2
+ module XML
3
+ def self.chart_title(xml,p,opts={})
4
+ if p[:chart][:title].present?
5
+ xml.title(:enabled => "true", :padding => "10") {
6
+ xml.text_ p[:chart][:title]
7
+ }
8
+ end # title
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ module Anychart
2
+ module XML
3
+ def self.legend(xml,p,options={})
4
+ if p[:chart][:legend].present?
5
+ legend_position = p[:chart][:legend][:position] || "Bottom"
6
+ xml.legend(:enabled => "true", :position => legend_position, :align => "Near", :ignore_auto_item => "true") {
7
+ xml.format(p[:chart][:legend][:format]) if p[:chart][:legend][:format].present?
8
+ xml.template {}
9
+
10
+ if p[:chart][:legend][:title].present?
11
+ xml.title(:enabled => "true") { p[:chart][:legend][:title] }
12
+ else
13
+ xml.title(:enabled => "false") {}
14
+ end
15
+
16
+ xml.columns_separator(:enabled => "false") {}
17
+ xml.background {
18
+ xml.inside_margin(:left => "10", :right => "10") {}
19
+ }
20
+ }
21
+ end # legend
22
+ end
23
+ end
24
+ end
data/test/helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'rubygems'
2
3
  require 'test/unit'
3
4
  require 'shoulda'
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'helper'
2
3
  require 'xml/sample_71'
3
4
  require 'xml/sample_165'
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class Sample165
2
3
  def self.xml
3
4
  "<?xml version=\"1.0\"?><anychart>
@@ -60,4 +61,4 @@ class Sample165
60
61
  </charts>
61
62
  </anychart>\n"
62
63
  end
63
- end
64
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class Sample71
2
3
  def self.xml
3
4
  "<?xml version=\"1.0\"?><anychart>
@@ -49,4 +50,4 @@ class Sample71
49
50
  </charts>
50
51
  </anychart>\n"
51
52
  end
52
- end
53
+ end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anychart_xml_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 7
9
+ version: 0.0.7
5
10
  platform: ruby
6
11
  authors:
7
12
  - jduarte
@@ -9,29 +14,37 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-08 00:00:00 +00:00
17
+ date: 2011-01-17 00:00:00 +00:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: thoughtbot-shoulda
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
23
30
  version: "0"
24
- version:
31
+ type: :development
32
+ version_requirements: *id001
25
33
  - !ruby/object:Gem::Dependency
26
34
  name: nokogiri
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 4
44
+ - 1
33
45
  version: 1.4.1
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  description: This gem provides you the methods to easily generate the XML necessary for AnyChart
36
49
  email: jose.fduarte@gmail.com
37
50
  executables: []
@@ -43,7 +56,6 @@ extra_rdoc_files:
43
56
  - README.rdoc
44
57
  files:
45
58
  - .document
46
- - .gitignore
47
59
  - .project
48
60
  - LICENSE
49
61
  - README.rdoc
@@ -54,6 +66,8 @@ files:
54
66
  - lib/column_bar.rb
55
67
  - lib/init.rb
56
68
  - lib/pie.rb
69
+ - lib/xml_sections/chart_title.rb
70
+ - lib/xml_sections/legend.rb
57
71
  - test/helper.rb
58
72
  - test/test_anychart_xml_builder.rb
59
73
  - test/xml/sample_165.rb
@@ -63,26 +77,30 @@ homepage: http://github.com/jduarte/anychart_xml_builder
63
77
  licenses: []
64
78
 
65
79
  post_install_message:
66
- rdoc_options:
67
- - --charset=UTF-8
80
+ rdoc_options: []
81
+
68
82
  require_paths:
69
83
  - lib
70
84
  required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
71
86
  requirements:
72
87
  - - ">="
73
88
  - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
74
91
  version: "0"
75
- version:
76
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
77
94
  requirements:
78
95
  - - ">="
79
96
  - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
80
99
  version: "0"
81
- version:
82
100
  requirements: []
83
101
 
84
102
  rubyforge_project:
85
- rubygems_version: 1.3.5
103
+ rubygems_version: 1.3.7
86
104
  signing_key:
87
105
  specification_version: 3
88
106
  summary: AnyChart (http://anychart.com/home/) XML Builders
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC