bumblemvp 1.0.3 → 1.0.4
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 +4 -4
- data/README.md +6 -4
- data/lib/bumble.rb +46 -20
- data/lib/bumble/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b31ed29db6a63c0ff890a89eedb06e8505e02c60
|
|
4
|
+
data.tar.gz: 7c4398037537b4406e1c86d021a962828d4f27b0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 797abaa8b7e84ee8fdab1634277a198992b976b93ca0582be5b62cb993e6cafdd571492fbf89cbc56353a5f83d24ef8c7ad2d1269dbf3b6907c09d78e4ede9bd
|
|
7
|
+
data.tar.gz: 1555d2815a005eaaba6512ef2bfd0d4aaf7fc263d1467d7cbedba3b65cde071fbb7130c49aaec40ff3e162ac518704f45bb20a95a652d2139f316e1ad7414f0d
|
data/README.md
CHANGED
|
@@ -12,10 +12,12 @@ $ gem install bumblemvp
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
-
Say you want to create an entity like a Task for your To-do app
|
|
15
|
+
Say you want to create an entity like a Task for your To-do app.
|
|
16
|
+
#### Make sure your in your java files folder of your project in command line
|
|
17
|
+
(I haven't figured out a clever way create files from the app/ root. Pull requests welcome 😀)
|
|
16
18
|
|
|
17
19
|
```
|
|
18
|
-
bumble generate
|
|
20
|
+
bumble generate User
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
This generates a new package for the Task entity, as well as sets up some basic skeleton interfaces for the View and Presenters objects
|
|
@@ -27,11 +29,11 @@ This generates a new package for the Task entity, as well as sets up some basic
|
|
|
27
29
|
├── User.java
|
|
28
30
|
└── source
|
|
29
31
|
├── UserDataSource.java
|
|
30
|
-
├──
|
|
32
|
+
├── UserRepository.java
|
|
31
33
|
├── local
|
|
32
34
|
└── remote
|
|
33
35
|
```
|
|
34
|
-
|
|
36
|
+
|
|
35
37
|
Bumble was developed using [Google's Samples](https://github.com/googlesamples/android-architecture/tree/todo-mvp/)
|
|
36
38
|
|
|
37
39
|
## Development
|
data/lib/bumble.rb
CHANGED
|
@@ -12,11 +12,11 @@ module Bumble
|
|
|
12
12
|
# Create the data directory for model
|
|
13
13
|
_root = FileUtils.pwd
|
|
14
14
|
cap_entity = entity.capitalize
|
|
15
|
-
puts "\n\e[4mModel\e[0m"
|
|
15
|
+
puts "\n\e[4mModel\e[0m" ## underlines
|
|
16
16
|
genereate_model(cap_entity)
|
|
17
17
|
FileUtils.cd(_root)
|
|
18
18
|
# Create presentors
|
|
19
|
-
puts "\n\e[4mView-Presenter\e[0m"
|
|
19
|
+
puts "\n\e[4mView-Presenter\e[0m" # underlines
|
|
20
20
|
generate_vp(cap_entity)
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -34,15 +34,17 @@ module Bumble
|
|
|
34
34
|
FileUtils.touch(file) unless File.exist? file
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
+
## Creates contract with presenter and view in model/folder
|
|
37
38
|
def generate_vp(entity)
|
|
38
39
|
|
|
39
40
|
make_dir(entity.downcase)
|
|
40
41
|
FileUtils.cd(entity)
|
|
41
42
|
|
|
42
|
-
contract = "#{entity}
|
|
43
|
-
make_file(contract)
|
|
43
|
+
contract = "#{entity}sContract.java"
|
|
44
44
|
|
|
45
|
+
make_file(contract)
|
|
45
46
|
write(contract,create_contract(entity))
|
|
47
|
+
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
# Creates directories:
|
|
@@ -73,22 +75,22 @@ module Bumble
|
|
|
73
75
|
make_dir(remotedir)
|
|
74
76
|
|
|
75
77
|
# Write Interface
|
|
76
|
-
entity_src ="#{entity}
|
|
78
|
+
entity_src ="#{entity}sDataSource.java"
|
|
77
79
|
make_file(entity_src)
|
|
78
80
|
write(entity_src,create_data_src(entity))
|
|
79
81
|
|
|
80
82
|
# Write Implementation Skeleton
|
|
81
|
-
entity_repo = "#{entity}
|
|
83
|
+
entity_repo = "#{entity}sRepository.java"
|
|
82
84
|
make_file(entity_repo)
|
|
83
85
|
write(entity_repo,create_data_repo(entity))
|
|
84
86
|
end
|
|
85
87
|
|
|
86
88
|
def create_model(model)
|
|
87
|
-
return "
|
|
89
|
+
return "//TODO set package\npublic class #{model} {\n//TODO \n}"
|
|
88
90
|
end
|
|
89
91
|
|
|
90
92
|
def create_contract(model)
|
|
91
|
-
return "
|
|
93
|
+
return "//TODO set package \nimport java.util.List;\ninterface #{model}sContract {
|
|
92
94
|
|
|
93
95
|
interface View {
|
|
94
96
|
|
|
@@ -110,18 +112,28 @@ module Bumble
|
|
|
110
112
|
}"
|
|
111
113
|
end
|
|
112
114
|
|
|
113
|
-
def
|
|
114
|
-
|
|
115
|
+
def create_data_repo(model)
|
|
116
|
+
src_interface = "#{model}sDataSource"
|
|
117
|
+
repo_class= "#{model}sRepository"
|
|
118
|
+
src_remote = "m#{model}sRemoteDataSource"
|
|
119
|
+
src_local ="m#{model}sLocalDataSource"
|
|
120
|
+
return "//TODO set package \n\nimport java.util.List;\npublic class #{repo_class} implements #{src_interface} {
|
|
121
|
+
|
|
122
|
+
private static #{repo_class} INSTANCE = null;
|
|
115
123
|
|
|
116
|
-
private
|
|
124
|
+
private final #{src_interface} #{src_remote};
|
|
117
125
|
|
|
118
|
-
private final #{
|
|
126
|
+
private final #{src_interface} #{src_local};
|
|
119
127
|
|
|
120
|
-
|
|
128
|
+
public #{repo_class}(#{src_interface} mRemoteDataSource, #{src_interface} mLocalDataSource) {
|
|
129
|
+
this.#{src_remote} = mRemoteDataSource;
|
|
130
|
+
this.#{src_local} = mLocalDataSource;
|
|
131
|
+
}
|
|
121
132
|
|
|
122
|
-
public static #{
|
|
133
|
+
public static #{repo_class} getInstance(#{src_interface} remoteSrc,
|
|
134
|
+
#{src_interface} localSrc) {
|
|
123
135
|
if (INSTANCE == null) {
|
|
124
|
-
INSTANCE = new #{
|
|
136
|
+
INSTANCE = new #{repo_class}(remoteSrc,localSrc);
|
|
125
137
|
}
|
|
126
138
|
return INSTANCE;
|
|
127
139
|
}
|
|
@@ -134,8 +146,8 @@ module Bumble
|
|
|
134
146
|
}"
|
|
135
147
|
end
|
|
136
148
|
|
|
137
|
-
def
|
|
138
|
-
return "public interface #{model}sDataSource {
|
|
149
|
+
def create_data_src(model)
|
|
150
|
+
return "//TODO set package \nimport java.util.List;\n public interface #{model}sDataSource {
|
|
139
151
|
|
|
140
152
|
interface Load#{model}sCallback {
|
|
141
153
|
|
|
@@ -151,12 +163,26 @@ module Bumble
|
|
|
151
163
|
void onDataNotAvailable();
|
|
152
164
|
}
|
|
153
165
|
|
|
154
|
-
void get#{model}s(Load#{model}sCallback callback)
|
|
155
|
-
void get#{model}(String id, Get#{model}Callback callback)
|
|
156
|
-
void save(#{model} saveItem)
|
|
166
|
+
void get#{model}s(Load#{model}sCallback callback);
|
|
167
|
+
void get#{model}(String id, Get#{model}Callback callback);
|
|
168
|
+
void save(#{model} saveItem);
|
|
157
169
|
void delete#{model}(String id);
|
|
158
170
|
void deleteAll#{model}s();
|
|
159
171
|
}"
|
|
160
172
|
end
|
|
173
|
+
|
|
174
|
+
def create_activity(model)
|
|
175
|
+
return "import android.support.v7.app.AppCompatActivity;
|
|
176
|
+
import android.os.Bundle;
|
|
177
|
+
|
|
178
|
+
public class #{model}Activity extends AppCompatActivity {
|
|
179
|
+
|
|
180
|
+
@Override
|
|
181
|
+
protected void onCreate(Bundle savedInstanceState) {
|
|
182
|
+
super.onCreate(savedInstanceState);
|
|
183
|
+
//TODO setContentView(R.layout.activity_#{model});
|
|
184
|
+
}
|
|
185
|
+
}"
|
|
186
|
+
end
|
|
161
187
|
end
|
|
162
188
|
end
|
data/lib/bumble/version.rb
CHANGED