lib/togostanza/cli.rb in togostanza-2.1.1 vs lib/togostanza/cli.rb in togostanza-2.1.2
- old
+ new
@@ -138,11 +138,10 @@
end
def replace_description
name1_chopped = chop_slash(name1)
name2_chopped = chop_slash(name2)
-
gsub_file("#{files_name(name1_chopped)}/#{files_name(name1_chopped)}.gemspec", files_name(name1_chopped), files_name(name2_chopped))
gsub_file("#{files_name(name1_chopped)}/lib/#{files_name(name1_chopped)}.rb", classes_name(name1_chopped), classes_name(name2_chopped))
unless File.exist?("#{files_name(name1_chopped)}/metadata.json")
template 'metadata.json.erb', "#{files_name(name1_chopped)}/metadata.json"
@@ -196,10 +195,63 @@
def titles(name)
stanzas_id(name).titleize
end
end
+ class GenspecUpdater < Thor::Group
+ include Thor::Actions
+ include Thor::Shell
+
+ argument :name, type: :string
+
+ def self.source_root
+ File.expand_path('../../../templates/stanza', __FILE__)
+ end
+
+ def check_exist
+ unless File.exist?("#{file_name}")
+ say("This provider doesn't have #{file_name}")
+ exit
+ end
+ unless File.exist?("#{file_name}/metadata.json")
+ template 'metadata.json.erb', "#{file_name}/metadata.json"
+ say("metadata.json has just made.")
+ end
+ end
+
+ def replace_description
+ unless File.read("#{file_name}/#{file_name}.gemspec").include?("require\s'json'")
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "\nrequire\s'json'\n", :after=>"$LOAD_PATH.unshift(lib)\sunless\s$LOAD_PATH.include?(lib)\n")
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "metadata\s=\sopen('./metadata.json')\sdo\s|io|\n", :after=>"\nrequire\s'json'\n")
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "\s\sJSON.load\(io\)\nend\n", :after=>"metadata\s=\sopen('./metadata.json')\sdo\s|io|\n")
+ end
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.authors.*\n/, "spec.authors = Array(metadata['author'])\n")
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.email.*\n/, "spec.email = Array(metadata['address'])\n")
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.summary.*\n/, "spec.summary = metadata['label']\n")
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.description.*\n/, "spec.description = metadata['definition']\n")
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.license.*\n/, "spec.license = metadata['license']\n")
+ end
+
+ private
+
+ def chop_slash
+ if name[-1] == '/'
+ name.chop
+ else
+ name
+ end
+ end
+
+ def stanza_id
+ chop_slash.underscore.sub(/_stanza$/, '')
+ end
+
+ def file_name
+ stanza_id + '_stanza'
+ end
+ end
+
class NameRegister < Thor::Group
include Thor::Actions
argument :name
@@ -234,9 +286,13 @@
register NameModifier, 'modify', 'modify OLD_NAME NEW_NAME', 'Modify a name of stanza'
end
class Stanza < Thor
register StanzaRemover, 'remove', 'remove NAME', 'Remove the stanza'
+ end
+
+ class Stanza < Thor
+ register GenspecUpdater, 'genspec_update', 'genspec_update NAME', 'Update genspec format for togostanza ver 2.0.0'
end
class Root < Thor
register NameRegister, 'name' , 'name NAME' , 'register your name'
end