constructor-core 0.7.7 → 0.7.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9933aa9d1ce8ad06cfa8604927e871d0c9ead905
4
- data.tar.gz: ad9ca5196e81c7a565667df5f8bfa4d11f95bd92
3
+ metadata.gz: b60b02c43e1d5689a737a60b3f9662664f4bae85
4
+ data.tar.gz: 308e0745ed8b560142e7e63a7a83aa694738d0a5
5
5
  SHA512:
6
- metadata.gz: 51a379033e13a11051890f30bba935e00a77250141c0257b8747b3d11b2064341d9d2a6496a0e2b3a460a2ea5d4c371f27d516b07637dd0a34ce509244e55a55
7
- data.tar.gz: d2ba5c770be9b0d8785127442efe2336060aa1af2e06a60862ae8b8aef6d13f9fe4823add2555e0d04338dfed943c8c91fc15ec8fe9fea578c507a86b8dca7ea
6
+ metadata.gz: 594eaf1aa5baa58848b1b7b7a5475a42f0d4c8571d4d1d589fed404c163969e24c1d6545e5e7659a5fc9d2c14f4131cbee2f2cfc016a7f2ec3e6d81ec57b2ab7
7
+ data.tar.gz: e1767bd18417967cd394d3ee96038322d987e9eeccdde773311a62d6358b39e776cb70b250618c86a801f37617fa91a01b35c6529f9dd736fac12ec12f83e1e2
@@ -1,7 +1,7 @@
1
1
  #= require constructor_core/jquery_bundle
2
2
  #= require constructor_core/bootstrap
3
3
  #= require ckeditor/ckeditor
4
- #= require constructor_core/urlify
4
+ #= require constructor_pages/urlify
5
5
  #= require_self
6
6
 
7
7
  $(document).ready ->
@@ -1,25 +1,7 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'devise'
2
4
  require 'bootstrap-sass'
3
5
  require 'font-awesome-sass-rails'
4
6
  require 'constructor_core/engine'
5
-
6
- class String
7
- def numeric?
8
- return true if self =~ /^\d+$/
9
- true if Float(self) rescue false
10
- end
11
-
12
- def boolean?
13
- if self =~ (/(true|yes)$/i) || self =~ (/(false|no)$/i)
14
- return true
15
- else
16
- return false
17
- end
18
- end
19
-
20
- def to_bool
21
- return true if self == true || self =~ (/(true|t|yes|y|1)$/i)
22
- return false if self == false || self.blank? || self =~ (/(false|f|no|n|0)$/i)
23
- raise ArgumentError.new("invalid value for Boolean: \"#{self}\"")
24
- end
25
- end
7
+ require 'constructor_core/string'
@@ -0,0 +1,25 @@
1
+ class String
2
+ def numeric?
3
+ return true if self =~ /^\d+$/
4
+ true if Float(self) rescue false
5
+ end
6
+
7
+ def boolean?
8
+ if self =~ (/(true|yes)$/i) || self =~ (/(false|no)$/i)
9
+ return true
10
+ else
11
+ return false
12
+ end
13
+ end
14
+
15
+ def to_boolean
16
+ return true if self == true || self =~ (/(true|t|yes|y|1)$/i)
17
+ return false if self == false || self.blank? || self =~ (/(false|f|no|n|0)$/i)
18
+ raise ArgumentError.new("invalid value for Boolean: \"#{self}\"")
19
+ end
20
+
21
+ def accusative
22
+ self.sub(/а$/, 'у').sub(/я$/, 'ю')
23
+ end
24
+
25
+ end
@@ -1,3 +1,3 @@
1
1
  module ConstructorCore
2
- VERSION = '0.7.7'
2
+ VERSION = '0.7.8'
3
3
  end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module ConstructorCore
6
+ describe 'String' do
7
+ describe '#accusative' do
8
+ it 'should convert word to accusative' do
9
+ 'проверка'.accusative.should == 'проверку'
10
+ 'стол'.accusative.should == 'стол'
11
+ 'категория'.accusative.should == 'категорию'
12
+ end
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: constructor-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.7
4
+ version: 0.7.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Zotov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-24 00:00:00.000000000 Z
11
+ date: 2013-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -95,7 +95,6 @@ files:
95
95
  - app/assets/javascripts/constructor_core/jquery_bundle.js.coffee
96
96
  - app/assets/javascripts/constructor_core/keys_snippet.js
97
97
  - app/assets/javascripts/constructor_core/retina.js
98
- - app/assets/javascripts/constructor_core/urlify.js
99
98
  - app/assets/stylesheets/constructor_core/application.css.scss
100
99
  - app/assets/stylesheets/constructor_core/main.css.scss
101
100
  - app/controllers/constructor_core/application_controller.rb
@@ -130,7 +129,9 @@ files:
130
129
  - db/migrate/2_add_default_user.rb
131
130
  - lib/constructor-core.rb
132
131
  - lib/constructor_core/engine.rb
132
+ - lib/constructor_core/string.rb
133
133
  - lib/constructor_core/version.rb
134
+ - spec/lib/constructor_core/string_spec.rb
134
135
  - vendor/assets/javascripts/.gitkeep
135
136
  - vendor/assets/javascripts/ckeditor/ckeditor.js
136
137
  - vendor/assets/javascripts/ckeditor/config.js
@@ -302,5 +303,5 @@ rubygems_version: 2.0.3
302
303
  signing_key:
303
304
  specification_version: 4
304
305
  summary: Constructor Core
305
- test_files: []
306
- has_rdoc:
306
+ test_files:
307
+ - spec/lib/constructor_core/string_spec.rb
@@ -1,82 +0,0 @@
1
- var RUSSIAN_MAP = {
2
- 'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh',
3
- 'з':'z', 'и':'i', 'й':'y', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o',
4
- 'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'ts',
5
- 'ч':'ch', 'ш':'sh', 'щ':'sch', 'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu',
6
- 'я':'ya',
7
- 'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh',
8
- 'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O',
9
- 'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'Ts',
10
- 'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sch', 'Ъ':'', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu',
11
- 'Я':'Ya'
12
- }
13
-
14
- var ALL_DOWNCODE_MAPS=new Array()
15
- ALL_DOWNCODE_MAPS[0]=RUSSIAN_MAP
16
-
17
- var Downcoder = new Object();
18
- Downcoder.Initialize = function()
19
- {
20
- if (Downcoder.map) // already made
21
- return ;
22
- Downcoder.map ={}
23
- Downcoder.chars = '' ;
24
- for(var i in ALL_DOWNCODE_MAPS)
25
- {
26
- var lookup = ALL_DOWNCODE_MAPS[i]
27
- for (var c in lookup)
28
- {
29
- Downcoder.map[c] = lookup[c] ;
30
- Downcoder.chars += c ;
31
- }
32
- }
33
- Downcoder.regex = new RegExp('[' + Downcoder.chars + ']|[^' + Downcoder.chars + ']+','g') ;
34
- }
35
-
36
- downcode= function( slug )
37
- {
38
- Downcoder.Initialize() ;
39
- var downcoded =""
40
- var pieces = slug.match(Downcoder.regex);
41
- if(pieces)
42
- {
43
- for (var i = 0 ; i < pieces.length ; i++)
44
- {
45
- if (pieces[i].length == 1)
46
- {
47
- var mapped = Downcoder.map[pieces[i]] ;
48
- if (mapped != null)
49
- {
50
- downcoded+=mapped;
51
- continue ;
52
- }
53
- }
54
- downcoded+=pieces[i];
55
- }
56
- }
57
- else
58
- {
59
- downcoded = slug;
60
- }
61
- return downcoded;
62
- }
63
-
64
-
65
- function URLify(s, num_chars) {
66
- // changes, e.g., "Petty theft" to "petty_theft"
67
- // remove all these words from the string before urlifying
68
- s = downcode(s);
69
- removelist = ["a", "an", "as", "at", "before", "but", "by", "for", "from",
70
- "is", "in", "into", "like", "of", "off", "on", "onto", "per",
71
- "since", "than", "the", "this", "that", "to", "up", "via",
72
- "with"];
73
- r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
74
- s = s.replace(r, '');
75
- // if downcode doesn't hit, the char will be stripped here
76
- s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
77
- s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
78
- s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
79
- s = s.toLowerCase(); // convert to lowercase
80
- return s.substring(0, num_chars);// trim to first num_chars chars
81
- }
82
-