class Bumble::CLI
Public Instance Methods
generate(entity)
click to toggle source
# File lib/bumble.rb, line 10 def generate(entity) puts "\e[1mBzz..\e[0m " # Create the data directory for model _root = FileUtils.pwd cap_entity = entity.capitalize puts "\n\e[4mModel\e[0m" ## underlines genereate_model(cap_entity) FileUtils.cd(_root) # Create presentors puts "\n\e[4mView-Presenter\e[0m" # underlines generate_vp(cap_entity) end
Private Instance Methods
create_activity(model)
click to toggle source
# File lib/bumble.rb, line 174 def create_activity(model) return "import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class #{model}Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //TODO setContentView(R.layout.activity_#{model}); } }" end
create_contract(model)
click to toggle source
# File lib/bumble.rb, line 92 def create_contract(model) return "//TODO set package \nimport java.util.List;\ninterface #{model}sContract { interface View { void show#{model}s(List<#{model}> tasks); void showLoadingError(); } interface Presenter { void result(int requestCode, int resultCode); void load#{model}s(boolean forceUpdate); void addNew#{model}(); } }" end
create_data_repo(model)
click to toggle source
# File lib/bumble.rb, line 115 def create_data_repo(model) src_interface = "#{model}sDataSource" repo_class= "#{model}sRepository" src_remote = "m#{model}sRemoteDataSource" src_local ="m#{model}sLocalDataSource" return "//TODO set package \n\nimport java.util.List;\npublic class #{repo_class} implements #{src_interface} { private static #{repo_class} INSTANCE = null; private final #{src_interface} #{src_remote}; private final #{src_interface} #{src_local}; public #{repo_class}(#{src_interface} mRemoteDataSource, #{src_interface} mLocalDataSource) { this.#{src_remote} = mRemoteDataSource; this.#{src_local} = mLocalDataSource; } public static #{repo_class} getInstance(#{src_interface} remoteSrc, #{src_interface} localSrc) { if (INSTANCE == null) { INSTANCE = new #{repo_class}(remoteSrc,localSrc); } return INSTANCE; } /* */ public static void destroyInstance() { INSTANCE = null; } }" end
create_data_src(model)
click to toggle source
# File lib/bumble.rb, line 149 def create_data_src(model) return "//TODO set package \nimport java.util.List;\n public interface #{model}sDataSource { interface Load#{model}sCallback { void onLoaded(List<#{model}> loaded); void onDataNotAvailable(); } interface Get#{model}Callback { void on#{model}Loaded(#{model} task); void onDataNotAvailable(); } void get#{model}s(Load#{model}sCallback callback); void get#{model}(String id, Get#{model}Callback callback); void save(#{model} saveItem); void delete#{model}(String id); void deleteAll#{model}s(); }" end
create_model(model)
click to toggle source
# File lib/bumble.rb, line 88 def create_model(model) return "//TODO set package\npublic class #{model} {\n//TODO \n}" end
generate_vp(entity)
click to toggle source
Creates contract with presenter and view in model/folder
# File lib/bumble.rb, line 38 def generate_vp(entity) make_dir(entity.downcase) FileUtils.cd(entity) contract = "#{entity}sContract.java" make_file(contract) write(contract,create_contract(entity)) end
genereate_model(entity)
click to toggle source
Creates directories: data/
source/ local/ remote/
# File lib/bumble.rb, line 55 def genereate_model(entity) datadir = "data" sourcedir = "source" localdir = "local" remotedir = "remote" ext = ".java" model_file ="#{entity}"+ext make_dir(datadir) FileUtils.cd(datadir) FileUtils.touch(model_file) write(model_file,create_model(entity)) # Create Repos and DAOs make_dir(sourcedir) FileUtils.cd(sourcedir) make_dir(localdir) make_dir(remotedir) # Write Interface entity_src ="#{entity}sDataSource.java" make_file(entity_src) write(entity_src,create_data_src(entity)) # Write Implementation Skeleton entity_repo = "#{entity}sRepository.java" make_file(entity_repo) write(entity_repo,create_data_repo(entity)) end
make_dir(dir)
click to toggle source
# File lib/bumble.rb, line 29 def make_dir(dir) FileUtils.mkdir(dir) unless File.exist? dir end
make_file(file)
click to toggle source
# File lib/bumble.rb, line 33 def make_file(file) FileUtils.touch(file) unless File.exist? file end
write(file,val)
click to toggle source
# File lib/bumble.rb, line 24 def write(file,val) puts(" \e[1mcreate\e[0m: "+file) File.open(file, 'w') { |file| file.write(val) } end