florrick 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/lib/florrick/builder.rb +14 -8
- data/lib/florrick/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d99e1315bb37101ae10cb3e6dbbb72abc0af64e5
|
4
|
+
data.tar.gz: 8373a863cb8713c6bddeb554cfa0f127acfa21e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86cae527b35f612d7cbf198c0e0756c33410f9e2aa06cb10b1306d46113a3693702a4b53f5e9788e92efdc3080e0984f95f58f573b8c0d4588ded828b8de81e0
|
7
|
+
data.tar.gz: 9ffeda401001ade5e88b2b67dbf4d8c95889d173e0dcc2b8416ded9e96a895a03088c1cbf7d907451789bcc67779e6eb0cb1d16b80cdfa6521e3ff6c17fa6bf7
|
data/lib/florrick/builder.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module Florrick
|
2
2
|
class Builder
|
3
|
-
|
3
|
+
|
4
4
|
VALID_EXPORT_TYPES = [String, Numeric, Date, Time]
|
5
|
-
|
5
|
+
|
6
6
|
attr_reader :original_string, :objects
|
7
7
|
|
8
8
|
def initialize(string, objects = {})
|
@@ -12,15 +12,21 @@ module Florrick
|
|
12
12
|
|
13
13
|
def output
|
14
14
|
string = @original_string.dup
|
15
|
-
string.gsub(/(\{\{([(\w+)\.]+)\}\})/) do
|
15
|
+
string.gsub(/(\{\{([(\w+)\.]+)(?>\ ?\|\ ?([\w\-\+\ \!\?\[\]\(\)]+))?\}\})/) do
|
16
|
+
original_string = $1
|
17
|
+
fallback_string = $3
|
16
18
|
parts = $2.split('.')
|
17
19
|
final_string = nil
|
18
20
|
previous_object = @objects[parts.shift.to_sym]
|
19
|
-
|
21
|
+
|
22
|
+
if previous_object.nil?
|
23
|
+
final_string = fallback_string || original_string
|
24
|
+
end
|
25
|
+
|
20
26
|
until final_string
|
21
27
|
# get the latest part
|
22
28
|
if var = parts.shift
|
23
|
-
# if the previous object is suitable for string interpolation, we can
|
29
|
+
# if the previous object is suitable for string interpolation, we can
|
24
30
|
# pass the var to it and get out a string or an integer.
|
25
31
|
if previous_object.respond_to?(:string_interpolation_value_for)
|
26
32
|
if previous_object.class.string_interpolation_for?(var)
|
@@ -33,14 +39,14 @@ module Florrick
|
|
33
39
|
previous_object = previous_object.send(var)
|
34
40
|
else
|
35
41
|
# can't do this :(
|
36
|
-
final_string =
|
42
|
+
final_string = fallback_string || original_string
|
37
43
|
end
|
38
44
|
elsif VALID_EXPORT_TYPES.any? { |t| previous_object.is_a?(t)}
|
39
45
|
previous_object = Florrick::Formatter.convert(var, previous_object)
|
40
46
|
else
|
41
47
|
# does not respond to string_interpolation_value_for and isn't a valid object,
|
42
48
|
# we can't do anything here just return the passed value.
|
43
|
-
final_string =
|
49
|
+
final_string = fallback_string || original_string
|
44
50
|
end
|
45
51
|
else
|
46
52
|
# we're at the end now, if we can return the previous object, lets do it otherwise
|
@@ -48,7 +54,7 @@ module Florrick
|
|
48
54
|
if VALID_EXPORT_TYPES.any? { |t| previous_object.is_a?(t)}
|
49
55
|
final_string = previous_object.to_s
|
50
56
|
else
|
51
|
-
final_string =
|
57
|
+
final_string = fallback_string || original_string
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
data/lib/florrick/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: florrick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cooke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Rails extension for providing awesome user-initiated string interpolation
|
14
14
|
email:
|
@@ -26,7 +26,8 @@ files:
|
|
26
26
|
- lib/florrick/railtie.rb
|
27
27
|
- lib/florrick/version.rb
|
28
28
|
homepage: https://github.com/adamcooke/florrick
|
29
|
-
licenses:
|
29
|
+
licenses:
|
30
|
+
- MIT
|
30
31
|
metadata: {}
|
31
32
|
post_install_message:
|
32
33
|
rdoc_options: []
|
@@ -44,9 +45,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
45
|
version: '0'
|
45
46
|
requirements: []
|
46
47
|
rubyforge_project:
|
47
|
-
rubygems_version: 2.2.
|
48
|
+
rubygems_version: 2.2.2
|
48
49
|
signing_key:
|
49
50
|
specification_version: 4
|
50
51
|
summary: A Rails extension for providing awesome user-initiated string interpolation
|
51
52
|
test_files: []
|
52
|
-
has_rdoc:
|