wnm_support 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -35,6 +35,66 @@ And then execute:
35
35
 
36
36
  [1,2,3,4].halved # => [ [1, 2], [3, 4] ]
37
37
 
38
+ ### Active record extensions
39
+
40
+
41
+ # helpers
42
+ class News < ActiveRecord::Base
43
+ attribute_accessor :name
44
+
45
+ def short_name
46
+ helpers.truncate(name) # you can access any view helper methods by calling helpers
47
+ end
48
+ end
49
+
50
+ # truncate
51
+ News.truncate # destroy all records in database, without calling any callbacks
52
+
53
+ # order be field
54
+ News.create!(:name => "first") # id => 1
55
+ News.create!(:name => "second") # id => 2
56
+ News.create!(:name => "third") # id => 3
57
+
58
+ news = News.order_by_field(:id, [2, 3, 1])
59
+ news[0] # news record with id = 2
60
+ news[1] # news record with id = 3
61
+ news[2] # news record with id = 1
62
+
63
+ # multi actions
64
+ News.multi # => [:destroy] # every model has this method
65
+
66
+ # destroy validation
67
+ item = News.create!(:name => "new item")
68
+ item.destroy # => false
69
+ item.can_destroy? # => false
70
+
71
+ class News < ActiveRecord::Base
72
+ def can_destroy?
73
+ name == "new item"
74
+ end
75
+ end
76
+
77
+ item = News.find_by_name("new item")
78
+ item.can_destroy? # => true
79
+ item.destroy # => true
80
+
81
+ ### View helpers
82
+
83
+ bool_to_human true # => "yes"
84
+ bool_to_human false # => "no"
85
+ bool_to_human nil # => "no"
86
+
87
+ bool_to_human_with_empty true # => "yes"
88
+ bool_to_human_with_empty false # => "no"
89
+ bool_to_human_with_empty nil # => ""
90
+
91
+
92
+ url = youtube_prepare_url("youtube.com/watch?v=lala")
93
+ url # => "youtube.com/v/lala"
94
+
95
+ video = youtube_video(url, 100, 200)
96
+ video # => <object width='100' height='200'><param url='youtube.com/v/lala'>...</object>
97
+
38
98
  ## Contributing
39
99
 
40
100
  1. Fork it
data/changelog.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 0.0.4
2
+ ## added
3
+ * view helper BoolToHuman
4
+ * view helper Youtube
5
+ * railtie load view helpers
6
+ * railtie load active record extensions
7
+ * readme section for active record extensions
8
+ * readme section for active record view helpers
9
+
1
10
  # 0.0.3
2
11
  * add support for active record extentions
3
12
  ** DestroyValidation
@@ -2,7 +2,7 @@ module WnmSupport
2
2
  module ActiveRecordExt
3
3
  module ViewHelpers
4
4
  def helpers
5
- #ActionController::Base.helpers
5
+ ActionController::Base.helpers
6
6
  end
7
7
  end
8
8
  end
@@ -0,0 +1,21 @@
1
+ module WnmSupport
2
+ module ViewHelpers
3
+ class Railtie < Rails::Railtie
4
+ initializer "wnm_support.view_helpers" do
5
+ ActionView::Base.send :include, BoolToHuman
6
+ ActionView::Base.send :include, Youtube
7
+ end
8
+
9
+ initializer "wnm_support.active_record_ext" do
10
+ ActiveSupport.on_load(:active_record) do
11
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::DestroyValidation
12
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::ViewHelpers
13
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MultiAction
14
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MysqlTruncate
15
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MysqlOrderByField
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+
@@ -1,3 +1,3 @@
1
1
  module WnmSupport
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,15 @@
1
+ module WnmSupport
2
+ module ViewHelpers
3
+ module BoolToHuman
4
+ def bool_to_human(value)
5
+ I18n.t(value == true ? "yes" : "no")
6
+ end
7
+
8
+ def bool_to_human_with_empty(value)
9
+ return "" if value.nil?
10
+
11
+ bool_to_human(value)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module WnmSupport
2
+ module ViewHelpers
3
+ module Youtube
4
+ def youtube_prepare_url(url)
5
+ url = url.to_s.gsub(/watch\?v=/, "v/").gsub(/&feature=.*/, "")
6
+ url << "?fs=1&amp;hl=sk_SK"
7
+ url
8
+ end
9
+
10
+ def youtube_video(url, width, height)
11
+ url = url.to_s
12
+ width = width.to_i.to_s
13
+ height = height.to_i.to_s
14
+ '<object width="'+width+'" height="'+height+'"><param name="movie" value="'+url+'"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="'+url+'" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'" allowscriptaccess="always" allowfullscreen="true"></embed></object>'.html_safe
15
+ end
16
+ end
17
+ end
18
+ end
data/lib/wnm_support.rb CHANGED
@@ -18,10 +18,7 @@ require "wnm_support/active_record_ext/multi_action"
18
18
  require "wnm_support/active_record_ext/mysql_truncate"
19
19
  require "wnm_support/active_record_ext/mysql_order_by_field"
20
20
 
21
- class ActiveRecord::Base
22
- include WnmSupport::ActiveRecordExt::DestroyValidation
23
- include WnmSupport::ActiveRecordExt::ViewHelpers
24
- include WnmSupport::ActiveRecordExt::MultiAction
25
- include WnmSupport::ActiveRecordExt::MysqlTruncate
26
- include WnmSupport::ActiveRecordExt::MysqlOrderByField
27
- end
21
+ require "wnm_support/view_helpers/bool_to_human"
22
+ require "wnm_support/view_helpers/youtube"
23
+
24
+ require "wnm_support/railtie" if defined?(Rails)
@@ -1,5 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::DestroyValidation
4
+
3
5
  class Item < ActiveRecord::Base
4
6
  include ActiveRecordNoTable
5
7
  end
@@ -1,5 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MultiAction
4
+
3
5
  class Item < ActiveRecord::Base
4
6
  include ActiveRecordNoTable
5
7
  end
@@ -1,5 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MysqlOrderByField
4
+
3
5
  class News < ActiveRecord::Base
4
6
 
5
7
  end
@@ -1,5 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::MysqlTruncate
4
+
3
5
  class News < ActiveRecord::Base
4
6
 
5
7
  end
@@ -1,5 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
+ ActiveRecord::Base.send :include, WnmSupport::ActiveRecordExt::ViewHelpers
4
+
3
5
  class Item < ActiveRecord::Base
4
6
  include ActiveRecordNoTable
5
7
  end
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ class MyHelper
4
+ include WnmSupport::ViewHelpers::BoolToHuman
5
+ end
6
+
7
+ describe WnmSupport::ViewHelpers::BoolToHuman do
8
+ let(:helper) { MyHelper.new }
9
+
10
+ describe "bool_to_human" do
11
+ it "should call translate with yes if value is true" do
12
+ I18n.should_receive(:t).with("yes").and_return("yes")
13
+
14
+ helper.bool_to_human(true).should eq "yes"
15
+ end
16
+
17
+ it "should call translate with no if value is false" do
18
+ I18n.should_receive(:t).with("no").and_return("no")
19
+
20
+ helper.bool_to_human(false).should eq "no"
21
+ end
22
+
23
+ it "should call translate with no if value is nil" do
24
+ I18n.should_receive(:t).with("no").and_return("no")
25
+
26
+ helper.bool_to_human(nil).should eq "no"
27
+ end
28
+ end
29
+
30
+ describe "bool_to_human_with_empty" do
31
+ it "should return empty string if value is nil" do
32
+ helper.bool_to_human_with_empty(nil).should eq ""
33
+ end
34
+
35
+ it "should call bool_to_human if value is true" do
36
+ helper.should_receive(:bool_to_human).with(true).and_return("yes")
37
+ helper.bool_to_human_with_empty(true).should eq "yes"
38
+ end
39
+
40
+ it "should call bool_to_human if value is false" do
41
+ helper.should_receive(:bool_to_human).with(false).and_return("no")
42
+ helper.bool_to_human_with_empty(false).should eq "no"
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,49 @@
1
+ require "spec_helper"
2
+
3
+ class MyHelper
4
+ include WnmSupport::ViewHelpers::Youtube
5
+ end
6
+
7
+ describe WnmSupport::ViewHelpers::Youtube do
8
+ let(:helper) { MyHelper.new }
9
+
10
+ describe "youtube_prepare_url" do
11
+ it "should change watch?v= to v/" do
12
+ url = "youtube.com/watch?v=lala"
13
+ helper.youtube_prepare_url(url).should include("youtube.com/v/lala")
14
+ end
15
+
16
+ it "should strip out useless params" do
17
+ url = "youtube.com/watch?v=lala&feature=hocico"
18
+ helper.youtube_prepare_url(url).should include("youtube.com")
19
+ helper.youtube_prepare_url(url).should_not include("&feature=")
20
+ helper.youtube_prepare_url(url).should_not include("hocico")
21
+ end
22
+
23
+ it "should add special params " do
24
+ url = "youtube.com/watch?v=lala"
25
+ helper.youtube_prepare_url(url).should include("?fs=1&amp;hl=sk_SK")
26
+ end
27
+ end
28
+
29
+ describe "youtube_video" do
30
+ it "create flash object" do
31
+ url = "youtube.com/watch?v=lala"
32
+ video = helper.youtube_video(url, 100, 200)
33
+ video.should include("<object")
34
+ video.should include("youtube.com")
35
+ end
36
+
37
+ it "should include given width" do
38
+ video = helper.youtube_video("", 100, 200)
39
+ video.should include('width="100"')
40
+ end
41
+
42
+ it "should include given height" do
43
+ video = helper.youtube_video("", 100, 200)
44
+ video.should include('height="200"')
45
+ end
46
+ end
47
+
48
+
49
+ end
data/wnm_support.gemspec CHANGED
@@ -7,18 +7,20 @@ Gem::Specification.new do |gem|
7
7
  gem.name = "wnm_support"
8
8
  gem.version = WnmSupport::VERSION
9
9
  gem.authors = ["Miroslav Hettes"]
10
- gem.email = ["mirrec@gmail.com"]
10
+ gem.email = ["hettes@webynamieru.sk"]
11
11
  gem.description = %q{Extend core methods in Rails}
12
- gem.summary = %q{Extend core method in Rails}
13
- gem.homepage = "https://bitbucket.org/mirrec/wnm_support"
12
+ gem.summary = %q{Extend core methods in Rails}
13
+ gem.homepage = "https://github.com/mirrec/wnm_support"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_runtime_dependency "activesupport"
21
- gem.add_runtime_dependency "activerecord"
20
+ gem.add_runtime_dependency "activesupport", ">= 3.0"
21
+ gem.add_runtime_dependency "activerecord", ">= 3.0"
22
+ gem.add_runtime_dependency "actionpack", ">= 3.0"
23
+
22
24
  gem.add_development_dependency "rspec"
23
25
  gem.add_development_dependency "rake"
24
26
  gem.add_development_dependency "active_record_no_table"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wnm_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2012-10-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: '0'
29
+ version: '3.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: activerecord
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: '3.0'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,23 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: '3.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: actionpack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: rspec
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +125,7 @@ dependencies:
109
125
  version: '0'
110
126
  description: Extend core methods in Rails
111
127
  email:
112
- - mirrec@gmail.com
128
+ - hettes@webynamieru.sk
113
129
  executables: []
114
130
  extensions: []
115
131
  extra_rdoc_files: []
@@ -137,11 +153,14 @@ files:
137
153
  - lib/wnm_support/core_ext/to_boolean.rb
138
154
  - lib/wnm_support/core_ext/to_integer.rb
139
155
  - lib/wnm_support/core_ext/unicode.rb
156
+ - lib/wnm_support/railtie.rb
140
157
  - lib/wnm_support/version.rb
158
+ - lib/wnm_support/view_helpers/bool_to_human.rb
159
+ - lib/wnm_support/view_helpers/youtube.rb
141
160
  - spec/spec_helper.rb
142
161
  - spec/wnm_support/activer_record_ext/destroy_validation_spec.rb
143
162
  - spec/wnm_support/activer_record_ext/multi_action_spec.rb
144
- - spec/wnm_support/activer_record_ext/mysql_order_by_filed_spec.rb
163
+ - spec/wnm_support/activer_record_ext/mysql_order_by_field_spec.rb
145
164
  - spec/wnm_support/activer_record_ext/mysql_truncate_spec.rb
146
165
  - spec/wnm_support/activer_record_ext/view_helpers_spec.rb
147
166
  - spec/wnm_support/core_ext/array_spec.rb
@@ -151,8 +170,10 @@ files:
151
170
  - spec/wnm_support/core_ext/nil_class_spec.rb
152
171
  - spec/wnm_support/core_ext/string_spec.rb
153
172
  - spec/wnm_support/core_ext/true_class_spec.rb
173
+ - spec/wnm_support/view_helpers/bool_to_human_spec.rb
174
+ - spec/wnm_support/view_helpers/youtube_spec.rb
154
175
  - wnm_support.gemspec
155
- homepage: https://bitbucket.org/mirrec/wnm_support
176
+ homepage: https://github.com/mirrec/wnm_support
156
177
  licenses: []
157
178
  post_install_message:
158
179
  rdoc_options: []
@@ -175,12 +196,12 @@ rubyforge_project:
175
196
  rubygems_version: 1.8.24
176
197
  signing_key:
177
198
  specification_version: 3
178
- summary: Extend core method in Rails
199
+ summary: Extend core methods in Rails
179
200
  test_files:
180
201
  - spec/spec_helper.rb
181
202
  - spec/wnm_support/activer_record_ext/destroy_validation_spec.rb
182
203
  - spec/wnm_support/activer_record_ext/multi_action_spec.rb
183
- - spec/wnm_support/activer_record_ext/mysql_order_by_filed_spec.rb
204
+ - spec/wnm_support/activer_record_ext/mysql_order_by_field_spec.rb
184
205
  - spec/wnm_support/activer_record_ext/mysql_truncate_spec.rb
185
206
  - spec/wnm_support/activer_record_ext/view_helpers_spec.rb
186
207
  - spec/wnm_support/core_ext/array_spec.rb
@@ -190,3 +211,5 @@ test_files:
190
211
  - spec/wnm_support/core_ext/nil_class_spec.rb
191
212
  - spec/wnm_support/core_ext/string_spec.rb
192
213
  - spec/wnm_support/core_ext/true_class_spec.rb
214
+ - spec/wnm_support/view_helpers/bool_to_human_spec.rb
215
+ - spec/wnm_support/view_helpers/youtube_spec.rb