leenookx-json-mangler 0.2.1 → 0.2.2

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -1 +1 @@
1
- { "results": {"doc": {"title": "A test document", "author": "My Name", "published": "1999", "keywords": ["rubbish", "nonsense"]} } }
1
+ { "results": {"title": "A test document", "author": "My Name", "published": "1999", "keywords": ["rubbish", "nonsense"]} }
data/json-mangler.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{json-mangler}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["lee nookx"]
@@ -51,10 +51,11 @@ Gem::Specification.new do |s|
51
51
  "lib/json-mangler/json_mangler.rb",
52
52
  "test/test_json_mangler.rb"
53
53
  ]
54
+ s.has_rdoc = true
54
55
  s.homepage = %q{http://github.com/leenookx/json-mangler}
55
56
  s.rdoc_options = ["--charset=UTF-8"]
56
57
  s.require_paths = ["lib"]
57
- s.rubygems_version = %q{1.3.4}
58
+ s.rubygems_version = %q{1.3.1}
58
59
  s.summary = %q{JSON data format mangling tools.}
59
60
  s.test_files = [
60
61
  "test/test_json_mangler.rb"
@@ -62,7 +63,7 @@ Gem::Specification.new do |s|
62
63
 
63
64
  if s.respond_to? :specification_version then
64
65
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
65
- s.specification_version = 3
66
+ s.specification_version = 2
66
67
 
67
68
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
68
69
  else
@@ -74,16 +74,22 @@ class JSONExtractor
74
74
  res = parse_value
75
75
 
76
76
  # If we're in data matching mode and the data associated
77
- # will this object matches what we are looking for...
78
- if @mode == 2 and res == @searchval
79
- if @capture_depth > 0
80
- # Set the 'upward' depth to be captured.
81
- @current_depth = @capture_depth
82
-
83
- # Force the capturing of this object.
84
- @force_capture = true
77
+ # will this object matches what we are looking for, but
78
+ # make sure that we don't re-force the capture if one is
79
+ # already in progress.
80
+ if @mode == 2 and res == @searchval
81
+ if !@force_capture
82
+ if @capture_depth > 0
83
+ # Set the 'upward' depth to be captured.
84
+ @current_depth = @capture_depth
85
+
86
+ # Force the capturing of this object.
87
+ @force_capture = true
88
+ else
89
+ capture = true
90
+ end
85
91
  else
86
- capture = true
92
+ @current_depth = @current_depth - 1
87
93
  end
88
94
  end
89
95
 
@@ -103,12 +109,19 @@ class JSONExtractor
103
109
  end
104
110
  end
105
111
 
112
+ # Are there more pairs associated with this
113
+ # object?
106
114
  more_pairs = @input.scan(/\s*,\s*/)
107
115
  if more_pairs
116
+ # yes, so write out a comma.
108
117
  output << ", "
109
118
  else
119
+ # Do we need to force capturing of the entire
120
+ # object?
110
121
  if @force_capture and @current_depth == 0
111
122
  last_pos = @input.pos
123
+
124
+ puts "Full object capture: " + start_pos.to_s + " -> " + last_pos.to_s
112
125
 
113
126
  cur_pos = start_pos
114
127
  @input.pos = cur_pos
@@ -119,6 +132,7 @@ class JSONExtractor
119
132
 
120
133
  @force_capture = false
121
134
  else
135
+ # No, we need to 'descend' further
122
136
  @current_depth = @current_depth - 1
123
137
  end
124
138
  end
@@ -164,6 +178,7 @@ class JSONExtractor
164
178
  # If we're in data matching mode and this matches the
165
179
  # value that we are searching for...
166
180
  if @mode == 2 and string == @searchval and @capture_depth > 0
181
+ puts "marked"
167
182
  @force_capture = true
168
183
  @current_depth = @capture_depth
169
184
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leenookx-json-mangler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - lee nookx
@@ -56,9 +56,8 @@ files:
56
56
  - lib/json-mangler/json_extractor.rb
57
57
  - lib/json-mangler/json_mangler.rb
58
58
  - test/test_json_mangler.rb
59
- has_rdoc: false
59
+ has_rdoc: true
60
60
  homepage: http://github.com/leenookx/json-mangler
61
- licenses:
62
61
  post_install_message:
63
62
  rdoc_options:
64
63
  - --charset=UTF-8
@@ -79,9 +78,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
78
  requirements: []
80
79
 
81
80
  rubyforge_project:
82
- rubygems_version: 1.3.5
81
+ rubygems_version: 1.2.0
83
82
  signing_key:
84
- specification_version: 3
83
+ specification_version: 2
85
84
  summary: JSON data format mangling tools.
86
85
  test_files:
87
86
  - test/test_json_mangler.rb