j2j 0.1.0 → 0.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84fd8b9d66de4ebe990dc1ad1a3e292e00160504
4
- data.tar.gz: 4343f9fffd5ce38e453026bf2ae6088af599d1e0
3
+ metadata.gz: f31a54131544c0d9cac9547e566d71a1ad62af81
4
+ data.tar.gz: f2c2a12b448256f333cc721e715471ba8fad3d7d
5
5
  SHA512:
6
- metadata.gz: 7eaeb5161c90b0880fb2888783fb938b0f6a423a470364b99bb1be95d4fd8d894f3fd16b0ef64fdb1e75609cdee2ed6a6769059e141588023d4edce9bed87b69
7
- data.tar.gz: 4a71c2f34ef25cb75013294a5e0d84fd08e160ef7dc0b6c1b23c063e7caf5e32e636a28c2cbc5349422561381b5c08b3b920d2035cc6ab4e454f89a247b70f4f
6
+ metadata.gz: 0ca8381d43e8d5e49197a4910097f09bca5cf92f60f036b4797ad3bda16c29cc7c209e0811b78634434bc531b9f710ce960411d33937a9c438e98bd5ebcc2e1a
7
+ data.tar.gz: 715cfdf1418cf60a3b80ba6a8abb67fae467f4a985f132086bcc2f6307d68df2ae6be0696f120beda444f91738ccc91ae25389f57d3afa074699451e79f4d68c
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ j2j
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.1
data/.travis.yml ADDED
@@ -0,0 +1,15 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - 2.2.1
6
+ before_install: gem install bundler -v 1.10.6
7
+
8
+ script: 'bundle exec rake'
9
+
10
+ notifications:
11
+ email:
12
+ recipients:
13
+ - cesar.manuel.ferreira@gmail.com
14
+ on_failure: change
15
+ on_success: never
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in j2j.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ guard 'rspec' do
2
+ # watch /lib/ files
3
+ watch(%r{^lib/(.+).rb$}) do |m|
4
+ "spec/#{m[1]}_spec.rb"
5
+ end
6
+
7
+ # watch /spec/ files
8
+ watch(%r{^spec/(.+).rb$}) do |m|
9
+ "spec/#{m[1]}.rb"
10
+ end
11
+ end
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 César Ferreira
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # J2j
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/j2j`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'j2j'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install j2j
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake false` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/j2j.
36
+
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'rspec/core/rake_task'
2
+ require 'bundler/gem_tasks'
3
+
4
+ # Default directory to look in is `/specs`
5
+ # Run with `rake spec`
6
+ RSpec::Core::RakeTask.new(:spec) do |task|
7
+ task.rspec_opts = ['--color', '--format', 'nested']
8
+ end
9
+
10
+ task :default => :spec
data/bin/j2j ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "j2j"
5
+
6
+ J2j::Cli.start(ARGV.dup.unshift("json"))
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
data/j2j.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'j2j/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "j2j"
8
+ spec.version = J2j::VERSION
9
+ spec.authors = ["cesar ferreira"]
10
+ spec.email = ["cesar.manuel.ferreira@gmail.com"]
11
+
12
+ spec.license = 'MIT'
13
+ spec.summary = %q{Convert any file.json to Classe.java files}
14
+ spec.description = %q{Convert any file.json to Classe.java files}
15
+ spec.homepage = "https://github.com/cesarferreira/j2j"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "bin"
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.10"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "guard"
25
+ spec.add_development_dependency "guard-rspec"
26
+ spec.add_development_dependency "coveralls"
27
+
28
+ spec.add_dependency 'pry-byebug', '~> 3.1'
29
+ spec.add_dependency 'thor', '~> 0.19.1'
30
+ spec.add_dependency 'colorize', '~> 0.7'
31
+ spec.add_dependency 'json', '~> 1.8.3'
32
+
33
+
34
+ end
@@ -0,0 +1,20 @@
1
+ #
2
+ # Set default values here, some can be overridden on command line
3
+ #
4
+ class Configurator
5
+ attr_accessor :package, :json_file, :top_level_class,
6
+ :output_directory,
7
+ :unknown_class,
8
+ :json_property_import, :json_serialize_import
9
+
10
+ def initialize
11
+
12
+ # If types cannot be inferred from example json, they will be represented with Object unless overridden.
13
+ # In which case, UNKNOWN will be used. This will prohibit the class from compiling.
14
+ self.unknown_class = "Object"
15
+
16
+ self.json_property_import = "import java.util.date;"
17
+ self.json_serialize_import = "import com.google.gson.annotations.SerializedName;"
18
+
19
+ end
20
+ end
@@ -0,0 +1,333 @@
1
+ require 'json'
2
+ require 'pry'
3
+
4
+ require_relative './configurator'
5
+ require_relative './field_details'
6
+
7
+
8
+ @java_classes = {}
9
+ @java_fields = {}
10
+ @java_lists = {}
11
+ @field_info = {}
12
+
13
+ ##
14
+ ## GET JAVA TYPES
15
+ ##
16
+ def get_java_type(value, field_details, key)
17
+ field_details.write_class_file = false
18
+ java_type = @config.unknown_class
19
+
20
+ if value.is_a?(Fixnum)
21
+ java_type = "Long"
22
+ elsif value.is_a?(Float)
23
+ java_type = "Double"
24
+ elsif value.is_a?(Array)
25
+ inner_value = get_java_type(value[0], field_details, key)
26
+ if inner_value == @config.unknown_class
27
+ inner_value = to_java_class_name(key)
28
+ if @do_chop
29
+ inner_value.chop!
30
+ end
31
+ inner_value = add_class_prefix_and_suffix(inner_value)
32
+ setup_data(value[0], key)
33
+ field_details.write_class_file = true
34
+ end
35
+ java_type = "List<" + inner_value + ">"
36
+ elsif value.is_a?(String)
37
+ java_type = "String"
38
+ elsif value.is_a?(TrueClass) || value.is_a?(FalseClass)
39
+ java_type = "Boolean"
40
+ end
41
+ return java_type;
42
+ end
43
+
44
+
45
+ ##
46
+ ## PROCESS ARRAY
47
+ ##
48
+ def process_array(value, field_details, key, parent)
49
+ field_details.type = "Array"
50
+ @java_classes[key] = parent
51
+ @java_lists[key] = parent
52
+ if value[0].is_a?(Hash)
53
+ setup_data(value[0], key)
54
+ else
55
+ field_details.array_type = get_java_type(value[0], field_details, key)
56
+ end
57
+ end
58
+
59
+
60
+ ##
61
+ ## SETUP THE DATA
62
+ ##
63
+ def setup_data(hash, parent)
64
+ @java_fields[parent] = []
65
+ hash.each do |key,value|
66
+ field_details = FieldDetails.new
67
+ field_details.field_name = key
68
+ field_details.parent = parent
69
+ field_details.write_class_file = true
70
+ if value.is_a?(Array)
71
+ process_array(value, field_details, key, parent)
72
+ elsif value.is_a?(Hash)
73
+ @java_classes[key] = parent
74
+ field_details.type = "Hash"
75
+ setup_data(value, key)
76
+ else
77
+ field_details.type = get_java_type(value, field_details, key)
78
+ end
79
+ @field_info[key] = field_details
80
+ @java_fields[parent] = @java_fields[parent] + [ key ]
81
+ end
82
+
83
+ end
84
+
85
+
86
+
87
+ ##
88
+ ## TO JAVA CLASS NAME
89
+ ##
90
+ def to_java_class_name(class_name)
91
+ java_class_name = ""
92
+ separator = false
93
+ first = true
94
+ class_name.each_char do |c|
95
+ if separator or first
96
+ java_class_name = java_class_name + c.to_s.upcase
97
+ separator = false
98
+ first = false
99
+ else
100
+ case c
101
+ when '-'
102
+ when '_'
103
+ separator = true
104
+ else
105
+ java_class_name = java_class_name + c
106
+ end
107
+ end
108
+ end
109
+
110
+ return java_class_name
111
+ end
112
+
113
+
114
+
115
+ ##
116
+ ## TO JAVA FIELD NAME
117
+ ##
118
+ def to_java_field_name(field_name)
119
+ java_field_name = ""
120
+ separator = false
121
+ first = true
122
+ leave_lowercase = false
123
+
124
+ field_name.each_char do |c|
125
+ if separator
126
+ if leave_lowercase
127
+ java_field_name = java_field_name + c
128
+ else
129
+ java_field_name = java_field_name + c.to_s.upcase
130
+ end
131
+ separator = false
132
+ else
133
+ case c
134
+ when '-'
135
+ when '_'
136
+ separator = true
137
+ leave_lowercase = false
138
+ if first
139
+ leave_lowercase = true
140
+ end
141
+ else
142
+ java_field_name = java_field_name + c
143
+ end
144
+ end
145
+ first = false
146
+ end
147
+
148
+ return java_field_name
149
+ end
150
+
151
+
152
+
153
+ ##
154
+ ## TO JAVA METHOD NAME
155
+ ##
156
+ def to_java_method_name(field_name)
157
+ java_method_name = ""
158
+ separator = false
159
+ first = true
160
+ field_name.each_char do |c|
161
+ if separator
162
+ java_method_name = java_method_name + c.to_s.upcase
163
+ separator = false
164
+ else
165
+ case c
166
+ when '-'
167
+ when '_'
168
+ separator = true
169
+ else
170
+ if first
171
+ java_method_name = java_method_name + c.to_s.upcase
172
+ else
173
+ java_method_name = java_method_name + c
174
+ end
175
+ end
176
+ end
177
+ first = false
178
+ end
179
+
180
+ return java_method_name
181
+ end
182
+
183
+
184
+ ##
185
+ ## WRITE FILE
186
+ ##
187
+ def write_file(value)
188
+
189
+ if value
190
+ return value.write_class_file
191
+ end
192
+ return true
193
+ end
194
+
195
+
196
+ ##
197
+ ## JAVA CLASS TO BE OUTPUTED
198
+ ##
199
+ def java_class_output(class_name, parent)
200
+
201
+ proper_class_name = to_java_class_name(class_name)
202
+ if @java_lists[class_name]
203
+ proper_class_name.chop! if @do_chop
204
+ end
205
+
206
+ field_list = ""
207
+ list_import = ""
208
+ json_property_import = ""
209
+ json_serialize_import = ""
210
+ getters_and_setters = ""
211
+
212
+ if @java_fields[class_name]
213
+ @java_fields[class_name].each do |field|
214
+ field_type = @field_info[field].type
215
+ method_name = to_java_method_name(field)
216
+ java_field = to_java_field_name(field)
217
+ if @java_fields[field]
218
+ field_type = to_java_class_name(field)
219
+ method_name = to_java_method_name(field_type)
220
+ end
221
+ if (@java_lists[field] and @java_lists[field] == class_name)
222
+ if @field_info[field].array_type
223
+ field_type = @field_info[field].array_type
224
+ elsif @do_chop
225
+ field_type.chop!
226
+ end
227
+ field_type = "List<#{field_type}>"
228
+ list_import = "import java.util.List;"
229
+
230
+ end
231
+ json_annotation = ""
232
+ if java_field != field
233
+ json_property_import = @config.json_property_import
234
+ json_annotation = " @SerializedName(\"#{field}\")\n"
235
+
236
+ end
237
+ field_list = field_list + json_annotation + " private #{field_type} #{java_field};\n"
238
+ getters_and_setters = getters_and_setters + <<GS
239
+
240
+ public #{field_type} get#{method_name}() {
241
+ return #{java_field};
242
+ }
243
+
244
+ public void set#{method_name}(#{field_type} #{java_field}) {
245
+ this.#{java_field} = #{java_field};
246
+ }
247
+ GS
248
+ end
249
+ end
250
+
251
+ doc = <<JCO
252
+ #{@java_class_header}
253
+ package #@package;
254
+
255
+ #{list_import}
256
+ #{json_property_import}
257
+ #{json_serialize_import}
258
+
259
+ /**
260
+ * Created with cesarferreira/j2j
261
+ */
262
+ public class #{proper_class_name} \{
263
+
264
+ #{field_list}
265
+ #{getters_and_setters}
266
+ \}
267
+ JCO
268
+
269
+ Dir.mkdir(@config.output_directory) if !File.exists?(@config.output_directory)
270
+
271
+ if !File.directory?(@config.output_directory)
272
+ puts "#{@config.output_directory} is not a directory!"
273
+ exit -1
274
+ end
275
+
276
+ # don't write java file files "primitive" array/list fields
277
+ if write_file(@field_info[class_name]) == true
278
+ File.open("#{@config.output_directory}/#{proper_class_name}.java", 'w') {|f| f.write(doc) }
279
+ end
280
+
281
+ end
282
+
283
+
284
+ ##
285
+ ## PARSE THE INCOMING PARAMS
286
+ ##
287
+ def parse_args(path, params)
288
+
289
+ ############################## TODO: analise path
290
+
291
+ @config.json_file = path
292
+ @config.package = params[:package]
293
+ @config.top_level_class = params[:root_class].gsub(/.java/,'')
294
+ @config.output_directory = params[:output]
295
+
296
+ end
297
+
298
+ ##
299
+ ## DO THE ACTUAL CONVERTING
300
+ ##
301
+ def convert(path, options)
302
+
303
+ @java_classes = {}
304
+ @java_fields = {}
305
+ @java_lists = {}
306
+ @field_info = {}
307
+
308
+ @do_chop = true
309
+ @config = Configurator.new
310
+
311
+ parse_args(path, options)
312
+
313
+ puts "Using JSON file: #{@config.json_file.green}"
314
+ puts "Using Java package: #{@config.package.green}"
315
+ puts "Using Java top level class: #{@config.top_level_class.green}"
316
+ puts "Using output directory: #{@config.output_directory.green}"
317
+
318
+ @package = @config.package
319
+
320
+ if !File.exists?(@config.json_file)
321
+ puts "JSON file: #{@config.json_file} does not exist!"
322
+ puts "Try -h flag for help"
323
+ exit -1
324
+ end
325
+
326
+ json_file_contents = IO.read(@config.json_file)
327
+ json = JSON.parse(json_file_contents)
328
+
329
+ @java_classes[@config.top_level_class] = "TOP_LEVEL_CLASS"
330
+ setup_data(json, @config.top_level_class)
331
+ @java_classes.each { |class_name,parent| java_class_output(class_name, parent) }
332
+
333
+ end
@@ -0,0 +1,3 @@
1
+ class FieldDetails
2
+ attr_accessor :parent, :type, :field_name, :array_type, :write_class_file
3
+ end
@@ -0,0 +1,3 @@
1
+ module J2j
2
+ VERSION = "0.1.1"
3
+ end
data/lib/j2j.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'thor'
2
+ require 'colorize'
3
+ require 'j2j/converter'
4
+ require 'j2j/version'
5
+ require 'thor/group'
6
+
7
+
8
+ module J2j
9
+ class Cli < Thor
10
+
11
+ include Thor::Actions
12
+
13
+ no_commands do
14
+ def log(str)
15
+ puts str if options[:verbose]
16
+ end
17
+ end
18
+
19
+
20
+ def self.source_root
21
+ File.dirname(__FILE__)
22
+ end
23
+
24
+ desc 'path/to/file.json', 'indicate the path to the file.json'
25
+ class_option :root_class, :aliases => '-r', :default => 'Example.java'
26
+ class_option :package, :aliases => '-p', :default => 'com.example'
27
+ class_option :output, :aliases => '-o', :description => 'Number to call', :default => 'out'
28
+ def json(path_to_json)
29
+ puts "JSON: #{path_to_json}"
30
+
31
+ convert(path_to_json, options)
32
+
33
+ end
34
+
35
+
36
+
37
+ # map %w[--version -v] => :__print_version
38
+ # desc "--version, -v", "print the version"
39
+ # def __print_version
40
+ # puts J2j::VERSION
41
+ # end
42
+
43
+ end
44
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: j2j
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - cesar ferreira
@@ -39,21 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec-nc
42
+ name: guard
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
@@ -67,7 +53,7 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: guard
56
+ name: guard-rspec
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: guard-rspec
70
+ name: coveralls
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -101,27 +87,13 @@ dependencies:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
89
  version: '3.1'
104
- type: :development
90
+ type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
96
  version: '3.1'
111
- - !ruby/object:Gem::Dependency
112
- name: coveralls
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
97
  - !ruby/object:Gem::Dependency
126
98
  name: thor
127
99
  requirement: !ruby/object:Gem::Requirement
@@ -164,14 +136,34 @@ dependencies:
164
136
  - - "~>"
165
137
  - !ruby/object:Gem::Version
166
138
  version: 1.8.3
167
- description: Write a longer description or delete this line.
139
+ description: Convert any file.json to Classe.java files
168
140
  email:
169
141
  - cesar.manuel.ferreira@gmail.com
170
- executables: []
142
+ executables:
143
+ - j2j
144
+ - setup
171
145
  extensions: []
172
146
  extra_rdoc_files: []
173
- files: []
174
- homepage: http://cesarferreira.com
147
+ files:
148
+ - ".coveralls.yml"
149
+ - ".gitignore"
150
+ - ".ruby-gemset"
151
+ - ".ruby-version"
152
+ - ".travis.yml"
153
+ - Gemfile
154
+ - Guardfile
155
+ - LICENSE
156
+ - README.md
157
+ - Rakefile
158
+ - bin/j2j
159
+ - bin/setup
160
+ - j2j.gemspec
161
+ - lib/j2j.rb
162
+ - lib/j2j/configurator.rb
163
+ - lib/j2j/converter.rb
164
+ - lib/j2j/field_details.rb
165
+ - lib/j2j/version.rb
166
+ homepage: https://github.com/cesarferreira/j2j
175
167
  licenses:
176
168
  - MIT
177
169
  metadata: {}
@@ -194,5 +186,5 @@ rubyforge_project:
194
186
  rubygems_version: 2.4.7
195
187
  signing_key:
196
188
  specification_version: 4
197
- summary: Write a short summary, because Rubygems requires one.
189
+ summary: Convert any file.json to Classe.java files
198
190
  test_files: []