constructor-core 0.7.7 → 0.7.8

Sign up to get free protection for your applications and to get access to all the features.
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
-