yeshoua_crm 1.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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +11 -0
  3. data/lib/yeshoua_crm.rb +87 -0
  4. data/lib/yeshoua_crm/acts_as_draftable/draft.rb +40 -0
  5. data/lib/yeshoua_crm/acts_as_draftable/rcrm_acts_as_draftable.rb +154 -0
  6. data/lib/yeshoua_crm/acts_as_list/list.rb +282 -0
  7. data/lib/yeshoua_crm/acts_as_taggable/rcrm_acts_as_taggable.rb +350 -0
  8. data/lib/yeshoua_crm/acts_as_taggable/tag.rb +81 -0
  9. data/lib/yeshoua_crm/acts_as_taggable/tag_list.rb +111 -0
  10. data/lib/yeshoua_crm/acts_as_taggable/tagging.rb +16 -0
  11. data/lib/yeshoua_crm/acts_as_viewed/rcrm_acts_as_viewed.rb +274 -0
  12. data/lib/yeshoua_crm/acts_as_votable/rcrm_acts_as_votable.rb +80 -0
  13. data/lib/yeshoua_crm/acts_as_votable/rcrm_acts_as_voter.rb +20 -0
  14. data/lib/yeshoua_crm/acts_as_votable/votable.rb +323 -0
  15. data/lib/yeshoua_crm/acts_as_votable/vote.rb +28 -0
  16. data/lib/yeshoua_crm/acts_as_votable/voter.rb +131 -0
  17. data/lib/yeshoua_crm/assets_manager.rb +43 -0
  18. data/lib/yeshoua_crm/currency.rb +439 -0
  19. data/lib/yeshoua_crm/currency/formatting.rb +224 -0
  20. data/lib/yeshoua_crm/currency/heuristics.rb +151 -0
  21. data/lib/yeshoua_crm/currency/loader.rb +24 -0
  22. data/lib/yeshoua_crm/helpers/external_assets_helper.rb +17 -0
  23. data/lib/yeshoua_crm/helpers/form_tag_helper.rb +123 -0
  24. data/lib/yeshoua_crm/helpers/tags_helper.rb +13 -0
  25. data/lib/yeshoua_crm/helpers/vote_helper.rb +35 -0
  26. data/lib/yeshoua_crm/liquid/drops/cells_drop.rb +86 -0
  27. data/lib/yeshoua_crm/liquid/drops/issues_drop.rb +66 -0
  28. data/lib/yeshoua_crm/liquid/drops/news_drop.rb +54 -0
  29. data/lib/yeshoua_crm/liquid/drops/users_drop.rb +72 -0
  30. data/lib/yeshoua_crm/liquid/filters/arrays.rb +177 -0
  31. data/lib/yeshoua_crm/liquid/filters/base.rb +208 -0
  32. data/lib/yeshoua_crm/money_helper.rb +65 -0
  33. data/lib/yeshoua_crm/version.rb +3 -0
  34. data/test/acts_as_draftable/draft_test.rb +29 -0
  35. data/test/acts_as_draftable/rcrm_acts_as_draftable_test.rb +185 -0
  36. data/test/acts_as_taggable/rcrm_acts_as_taggable_test.rb +345 -0
  37. data/test/acts_as_taggable/tag_list_test.rb +34 -0
  38. data/test/acts_as_taggable/tag_test.rb +72 -0
  39. data/test/acts_as_taggable/tagging_test.rb +15 -0
  40. data/test/acts_as_viewed/rcrm_acts_as_viewed_test.rb +47 -0
  41. data/test/acts_as_votable/rcrm_acts_as_votable_test.rb +19 -0
  42. data/test/acts_as_votable/rcrm_acts_as_voter_test.rb +14 -0
  43. data/test/acts_as_votable/votable_test.rb +507 -0
  44. data/test/acts_as_votable/voter_test.rb +296 -0
  45. data/test/currency_test.rb +292 -0
  46. data/test/liquid/drops/issues_drop_test.rb +34 -0
  47. data/test/liquid/drops/news_drop_test.rb +38 -0
  48. data/test/liquid/drops/projects_drop_test.rb +44 -0
  49. data/test/liquid/drops/uses_drop_test.rb +36 -0
  50. data/test/liquid/filters/arrays_filter_test.rb +24 -0
  51. data/test/liquid/filters/base_filter_test.rb +63 -0
  52. data/test/liquid/liquid_helper.rb +32 -0
  53. data/test/models/issue.rb +14 -0
  54. data/test/models/news.rb +3 -0
  55. data/test/models/project.rb +8 -0
  56. data/test/models/user.rb +11 -0
  57. data/test/models/vote_classes.rb +33 -0
  58. data/test/money_helper_test.rb +12 -0
  59. data/test/schema.rb +121 -0
  60. data/test/tags_helper_test.rb +29 -0
  61. data/test/test_helper.rb +66 -0
  62. data/test/vote_helper_test.rb +28 -0
  63. data/yeshoua_crm.gemspec +28 -0
  64. metadata +206 -0
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ # module YeshouaCrm
4
+ class TagsHelperTest < ActiveSupport::TestCase
5
+ include YeshouaCrm::TagsHelper
6
+
7
+ def test_tag_cloud
8
+ cloud_elements = []
9
+
10
+ tag_cloud Issue.tag_counts, %w(css1 css2 css3 css4) do |tag, css_class|
11
+ cloud_elements << [tag, css_class]
12
+ end
13
+ assert cloud_elements.include?([tags(:error), "css4"])
14
+ assert cloud_elements.include?([tags(:question), "css4"])
15
+ assert cloud_elements.include?([tags(:bug), "css2"])
16
+ assert cloud_elements.include?([tags(:feature), "css2"])
17
+ assert_equal 4, cloud_elements.size
18
+ end
19
+
20
+ # def test_tag_cloud_when_no_tags
21
+ # cloud_elements = []
22
+ # tag_cloud SpecialIssue.tag_counts, %w(css1) do |tag, css_class|
23
+ # # assert false, "tag_cloud should not yield"
24
+ # cloud_elements << [tag, css_class]
25
+ # end
26
+ # assert_equal 0, cloud_elements.size
27
+ # end
28
+ end
29
+ # end
@@ -0,0 +1,66 @@
1
+ require 'rails/all'
2
+ require 'yeshoua_crm'
3
+ require 'minitest/autorun'
4
+
5
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/debug.log')
6
+ ActiveRecord::Base.configurations = YAML.load_file(File.dirname(__FILE__) + '/database.yml')
7
+ ActiveRecord::Base.establish_connection(ENV['DB'].try(:to_sym) || :sqlite)
8
+
9
+ load(File.dirname(__FILE__) + '/schema.rb')
10
+ Dir.glob(File.expand_path('../models/*.rb', __FILE__)).each { |f| require f }
11
+
12
+ class ActiveSupport::TestCase #:nodoc:
13
+ include ActiveRecord::TestFixtures
14
+
15
+ self.fixture_path = File.dirname(__FILE__) + '/fixtures/'
16
+
17
+ self.use_transactional_tests = true
18
+ self.use_instantiated_fixtures = false
19
+ set_fixture_class :tags => YeshouaCrm::ActsAsTaggable::Tag
20
+ set_fixture_class :taggings => YeshouaCrm::ActsAsTaggable::Tagging
21
+
22
+ set_fixture_class :votable_caches => VotableCache
23
+ fixtures :all
24
+
25
+ def assert_equivalent(expected, actual, message = nil)
26
+ if expected.first.is_a?(ActiveRecord::Base)
27
+ assert_equal expected.sort_by(&:id), actual.sort_by(&:id), message
28
+ else
29
+ assert_equal expected.sort, actual.sort, message
30
+ end
31
+ end
32
+
33
+ def assert_tag_counts(tags, expected_values)
34
+ # Map the tag fixture names to real tag names
35
+ expected_values = expected_values.inject({}) do |hash, (tag, count)|
36
+ hash[tags(tag).name] = count
37
+ hash
38
+ end
39
+
40
+ tags.each do |tag|
41
+ value = expected_values.delete(tag.name)
42
+
43
+ assert_not_nil value, "Expected count for #{tag.name} was not provided"
44
+ assert_equal value, tag.count, "Expected value of #{value} for #{tag.name}, but was #{tag.count}"
45
+ end
46
+
47
+ unless expected_values.empty?
48
+ assert false, "The following tag counts were not present: #{expected_values.inspect}"
49
+ end
50
+ end
51
+
52
+ # From Rails trunk
53
+ def assert_difference(expressions, difference = 1, message = nil, &block)
54
+ expression_evaluations = [expressions].flatten.collect{ |expression| lambda { eval(expression, block.binding) } }
55
+
56
+ original_values = expression_evaluations.inject([]) { |memo, expression| memo << expression.call }
57
+ yield
58
+ expression_evaluations.each_with_index do |expression, i|
59
+ assert_equal original_values[i] + difference, expression.call, message
60
+ end
61
+ end
62
+
63
+ def assert_no_difference(expressions, message = nil, &block)
64
+ assert_difference expressions, 0, message, &block
65
+ end
66
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class VoteHelperTest < ActiveSupport::TestCase
4
+ def vote
5
+ YeshouaCrm::ActsAsVotable::Vote.new
6
+ end
7
+
8
+ def test_know_that_like_is_a_true_vote
9
+ assert vote.votable_words.that_mean_true.include? "like"
10
+ end
11
+
12
+ def test_know_that_bad_is_a_false_vote
13
+ assert vote.votable_words.that_mean_false.include? "bad"
14
+ end
15
+
16
+ def test_be_a_vote_for_true_when_word_is_good
17
+ assert vote.votable_words.meaning_of('good')
18
+ end
19
+
20
+ def test_be_a_vote_for_false_when_word_is_down
21
+ assert !vote.votable_words.meaning_of('down')
22
+ end
23
+
24
+ def test_be_a_vote_for_true_when_the_word_is_unknown
25
+ assert vote.votable_words.meaning_of('lsdhklkadhfs')
26
+ end
27
+
28
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'yeshoua_crm/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "yeshoua_crm"
8
+ spec.version = YeshouaCrm::VERSION
9
+ spec.authors = ["IntSoft"]
10
+ spec.email = ["contato@intsoft.inf.br"]
11
+ spec.summary = %q{Common libraries for IntSoft plugins for Yeshoua}
12
+ spec.description = %q{Common libraries for Yeshoua plugins (www.redmineup.com) for IntDoft. Requered Yeshoua from http://intsoft.inf.br}
13
+ spec.homepage = ""
14
+ spec.license = "GPL2"
15
+
16
+ #spec.files = "git ls-files -z".split("\x0")
17
+ spec.files = Dir["{lib/**/*.rb,README.rdoc,test/**/*.rb,Rakefile,*.gemspec}"]
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_runtime_dependency 'rails'
23
+ spec.add_runtime_dependency 'liquid', '< 2.6.4'
24
+
25
+ spec.add_development_dependency 'sqlite3'
26
+ spec.add_development_dependency 'mysql2', '~> 0.4.0'
27
+ spec.add_development_dependency 'pg'
28
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yeshoua_crm
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - IntSoft
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: liquid
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.6.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "<"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.6.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mysql2
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.4.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: pg
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Common libraries for Yeshoua plugins (www.redmineup.com) for IntDoft.
84
+ Requered Yeshoua from http://intsoft.inf.br
85
+ email:
86
+ - contato@intsoft.inf.br
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - Rakefile
92
+ - lib/yeshoua_crm.rb
93
+ - lib/yeshoua_crm/acts_as_draftable/draft.rb
94
+ - lib/yeshoua_crm/acts_as_draftable/rcrm_acts_as_draftable.rb
95
+ - lib/yeshoua_crm/acts_as_list/list.rb
96
+ - lib/yeshoua_crm/acts_as_taggable/rcrm_acts_as_taggable.rb
97
+ - lib/yeshoua_crm/acts_as_taggable/tag.rb
98
+ - lib/yeshoua_crm/acts_as_taggable/tag_list.rb
99
+ - lib/yeshoua_crm/acts_as_taggable/tagging.rb
100
+ - lib/yeshoua_crm/acts_as_viewed/rcrm_acts_as_viewed.rb
101
+ - lib/yeshoua_crm/acts_as_votable/rcrm_acts_as_votable.rb
102
+ - lib/yeshoua_crm/acts_as_votable/rcrm_acts_as_voter.rb
103
+ - lib/yeshoua_crm/acts_as_votable/votable.rb
104
+ - lib/yeshoua_crm/acts_as_votable/vote.rb
105
+ - lib/yeshoua_crm/acts_as_votable/voter.rb
106
+ - lib/yeshoua_crm/assets_manager.rb
107
+ - lib/yeshoua_crm/currency.rb
108
+ - lib/yeshoua_crm/currency/formatting.rb
109
+ - lib/yeshoua_crm/currency/heuristics.rb
110
+ - lib/yeshoua_crm/currency/loader.rb
111
+ - lib/yeshoua_crm/helpers/external_assets_helper.rb
112
+ - lib/yeshoua_crm/helpers/form_tag_helper.rb
113
+ - lib/yeshoua_crm/helpers/tags_helper.rb
114
+ - lib/yeshoua_crm/helpers/vote_helper.rb
115
+ - lib/yeshoua_crm/liquid/drops/cells_drop.rb
116
+ - lib/yeshoua_crm/liquid/drops/issues_drop.rb
117
+ - lib/yeshoua_crm/liquid/drops/news_drop.rb
118
+ - lib/yeshoua_crm/liquid/drops/users_drop.rb
119
+ - lib/yeshoua_crm/liquid/filters/arrays.rb
120
+ - lib/yeshoua_crm/liquid/filters/base.rb
121
+ - lib/yeshoua_crm/money_helper.rb
122
+ - lib/yeshoua_crm/version.rb
123
+ - test/acts_as_draftable/draft_test.rb
124
+ - test/acts_as_draftable/rcrm_acts_as_draftable_test.rb
125
+ - test/acts_as_taggable/rcrm_acts_as_taggable_test.rb
126
+ - test/acts_as_taggable/tag_list_test.rb
127
+ - test/acts_as_taggable/tag_test.rb
128
+ - test/acts_as_taggable/tagging_test.rb
129
+ - test/acts_as_viewed/rcrm_acts_as_viewed_test.rb
130
+ - test/acts_as_votable/rcrm_acts_as_votable_test.rb
131
+ - test/acts_as_votable/rcrm_acts_as_voter_test.rb
132
+ - test/acts_as_votable/votable_test.rb
133
+ - test/acts_as_votable/voter_test.rb
134
+ - test/currency_test.rb
135
+ - test/liquid/drops/issues_drop_test.rb
136
+ - test/liquid/drops/news_drop_test.rb
137
+ - test/liquid/drops/projects_drop_test.rb
138
+ - test/liquid/drops/uses_drop_test.rb
139
+ - test/liquid/filters/arrays_filter_test.rb
140
+ - test/liquid/filters/base_filter_test.rb
141
+ - test/liquid/liquid_helper.rb
142
+ - test/models/issue.rb
143
+ - test/models/news.rb
144
+ - test/models/project.rb
145
+ - test/models/user.rb
146
+ - test/models/vote_classes.rb
147
+ - test/money_helper_test.rb
148
+ - test/schema.rb
149
+ - test/tags_helper_test.rb
150
+ - test/test_helper.rb
151
+ - test/vote_helper_test.rb
152
+ - yeshoua_crm.gemspec
153
+ homepage: ''
154
+ licenses:
155
+ - GPL2
156
+ metadata: {}
157
+ post_install_message:
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 2.5.2
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: Common libraries for IntSoft plugins for Yeshoua
177
+ test_files:
178
+ - test/acts_as_draftable/draft_test.rb
179
+ - test/acts_as_draftable/rcrm_acts_as_draftable_test.rb
180
+ - test/acts_as_taggable/rcrm_acts_as_taggable_test.rb
181
+ - test/acts_as_taggable/tag_list_test.rb
182
+ - test/acts_as_taggable/tag_test.rb
183
+ - test/acts_as_taggable/tagging_test.rb
184
+ - test/acts_as_viewed/rcrm_acts_as_viewed_test.rb
185
+ - test/acts_as_votable/rcrm_acts_as_votable_test.rb
186
+ - test/acts_as_votable/rcrm_acts_as_voter_test.rb
187
+ - test/acts_as_votable/votable_test.rb
188
+ - test/acts_as_votable/voter_test.rb
189
+ - test/currency_test.rb
190
+ - test/liquid/drops/issues_drop_test.rb
191
+ - test/liquid/drops/news_drop_test.rb
192
+ - test/liquid/drops/projects_drop_test.rb
193
+ - test/liquid/drops/uses_drop_test.rb
194
+ - test/liquid/filters/arrays_filter_test.rb
195
+ - test/liquid/filters/base_filter_test.rb
196
+ - test/liquid/liquid_helper.rb
197
+ - test/models/issue.rb
198
+ - test/models/news.rb
199
+ - test/models/project.rb
200
+ - test/models/user.rb
201
+ - test/models/vote_classes.rb
202
+ - test/money_helper_test.rb
203
+ - test/schema.rb
204
+ - test/tags_helper_test.rb
205
+ - test/test_helper.rb
206
+ - test/vote_helper_test.rb