str2duck 1.0.1 → 1.1.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjQ5OTVjODIxNWFiMDUwMmNiNmE3YzRjNDA1NzQ1MDFiNTkyYzMzOQ==
4
+ MjBlZjU1NjdmZDdiMjAyZDBkMGJlNzQyMWZjZGMxOTZiNmZlYjUzOQ==
5
5
  data.tar.gz: !binary |-
6
- ZGM1M2Q4ZjdjOGVhODM2MmFkMTViM2QyNjJkZWVkYjBkMWJjN2I3Zg==
6
+ NzI5OWJhODk0MTUwNWY5YmEzODhkMzJkYmRiYWQ3ZTExZGJiMzA3MQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NzFhODk0YWNjNzFjYjI2YjgyNmI2ZGE5MTBmNTE5YTQ3MjY2MzIxMzNkMGZh
10
- ZWNjYjVlMjIwOGZmOGY1YzY5YmE1ZTI1MDIwMzg2MGM4OWFlNjU1M2RiOTEz
11
- NzRmYTA0MmFiMzgzNjQ4YjdmNzIyNTMzYTVjZDBhMGRkM2NkNTE=
9
+ YjNiMDdlN2JiZTExMGUxZGJiN2RjMWIxMzZlNjc1NjkxOWE3ZjVhNTUyYTIz
10
+ NGU4Mjg0OWY3OWE5MjViZmIwYWY5MzY3MTY0MGYwZTAwOTgyYTk0Y2M0ZDhk
11
+ ZTYxZmFlYTA5MTY3MTgwYjhjMDNiNzVjOTljNDU4MDFkZTIzYmM=
12
12
  data.tar.gz: !binary |-
13
- Zjg4MDc4MDg5YmE0MTk3ZmQwOWMxOWRkMDFlYzFkOWJiZGM1MThkNWU3NDY1
14
- YWNjN2I0ZjM2MjJiOGMxYWZmNDA3NWM4MWJiNDdmMGU1OTk3MWU2ZTkzMGZl
15
- Zjg5NGUzNThiMTM0NGE0YmIxZjA4MzczNGFlMGE1ODg4N2VjMWI=
13
+ NTE3YThjOTFhNWM2YTlhMTY2MWViZWVmZTRkNjU4NTc4NWMxMzkzYmYwNjBl
14
+ NjE5ZjE4MmM2MTdlOGQ3MjdjODBmNmI0MGFhMTg5YTIzMTBjM2U1M2JlNTcx
15
+ MjA5MmEwNzgzMjFhNDUxN2Y0YzMzOWVjZjVmZmEyM2I0NTU1NTk=
data/README.md CHANGED
@@ -36,4 +36,9 @@ like:
36
36
 
37
37
  ```
38
38
 
39
- Happy parsing!
39
+ Happy parsing!
40
+
41
+
42
+ ### TODO
43
+ use safe yaml parsing
44
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.1
data/examples/sample.rb CHANGED
@@ -10,7 +10,9 @@ require_relative "../lib/str2duck"
10
10
  "123.432",
11
11
  "true",
12
12
  "false",
13
- "some string data"
13
+ "some string data",
14
+ "{\"hello\":\"world\"}",
15
+ "--- hello\n..."
14
16
  ].each do |object|
15
17
  puts object.duck,object.duck.class,""
16
18
  end
data/examples/test.rb ADDED
@@ -0,0 +1,36 @@
1
+ require_relative "../lib/str2duck"
2
+
3
+ require 'debugger'
4
+ debugger
5
+ [
6
+ "false"
7
+ ].each do |object|
8
+ puts object.duck,object.duck.class,""
9
+ end
10
+
11
+ #begin
12
+ #
13
+ # require File.join 'active_support','time'
14
+ #
15
+ # puts "but if you load the Active support gem like when you do anyway in Rails, the duck will be more with time formats flexible"
16
+ #
17
+ # [
18
+ # "2011-03-12",
19
+ # "2007-07-20 18:59:27 +0200",
20
+ # "2010-10-30 18:02:56 +0200",
21
+ # "2012-09-12T14:49:50+02:00",
22
+ # "123",
23
+ # "asd",
24
+ # "123.432",
25
+ # "true",
26
+ # "false",
27
+ # "some string data"
28
+ # ].each do |object|
29
+ # puts object.duck,object.duck.class,""
30
+ # end
31
+ #
32
+ # puts "Sun, 28 Aug 2005".duck.class
33
+ # puts "Fri, 25 Jan 2013 20:02:15 +0100".duck.class
34
+ #
35
+ #rescue LoadError
36
+ #end
@@ -73,6 +73,21 @@ module Str2Duck
73
73
  nil
74
74
  end
75
75
 
76
+ def json obj
77
+ if Str2Duck::Regexp.json?(obj)
78
+ return JSON.parse(obj)
79
+ end
80
+ nil
81
+ end
82
+
83
+ # damn, this thing eats almost everything...
84
+ def yaml obj
85
+ if Str2Duck::Regexp.yaml?(obj)
86
+ return YAML.load(obj)
87
+ end
88
+ nil
89
+ end
90
+
76
91
  end
77
92
  end
78
93
  end
@@ -5,7 +5,7 @@ module Str2Duck
5
5
  raise ArgumentError,"invalid input, must be string!" if string_data_obj.class != String
6
6
  return_value= nil
7
7
 
8
- Str2Duck::Format.singleton_methods.each do |method_name|
8
+ [ :datetime, :date, :time, :true, :false, :float, :integer, :json, :yaml ].each do |method_name|
9
9
  return_value ||= Str2Duck::Format.__send__ method_name, string_data_obj
10
10
  end
11
11
 
@@ -1,6 +1,10 @@
1
1
  #encoding: UTF-8
2
2
  module Str2Duck
3
3
  module Regexp
4
+
5
+ require 'json'
6
+ require 'yaml'
7
+
4
8
  @@year = '\d+'
5
9
  class << self
6
10
 
@@ -50,7 +54,7 @@ module Str2Duck
50
54
  end
51
55
 
52
56
  def false? obj
53
- return Str2Duck.return_value_parse obj =~ /^true$/
57
+ return Str2Duck.return_value_parse obj =~ /^false$/
54
58
  end
55
59
 
56
60
  def float? obj
@@ -61,6 +65,24 @@ module Str2Duck
61
65
  return Str2Duck.return_value_parse obj =~ /^\d+$/
62
66
  end
63
67
 
68
+ def json? obj
69
+ begin
70
+ JSON.parse(obj)
71
+ return true
72
+ rescue ::JSON::ParserError
73
+ return false
74
+ end
75
+ end
76
+
77
+ def yaml? obj
78
+ begin
79
+ YAML.load(obj)
80
+ return true
81
+ rescue ::Psych::SyntaxError,::ArgumentError
82
+ return false
83
+ end
84
+ end
85
+
64
86
  end
65
87
  end
66
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: str2duck
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
@@ -25,6 +25,7 @@ files:
25
25
  - VERSION
26
26
  - dump/find_regexp.rb
27
27
  - examples/sample.rb
28
+ - examples/test.rb
28
29
  - files.rb
29
30
  - lib/str2duck.rb
30
31
  - lib/str2duck/format.rb